Prometheus


Prometheus - 프로메테우스

Prometheus(프로메테우스)는 오픈 소스 모니터링 및 경보(Alerting) 시스템으로, 특히 시계열(Time Series) 데이터 수집과 저장에 특화되어 있습니다.   CNCF(Cloud Native Computing Foundation)의 프로젝트로, Kubernetes 환경에서도 널리 사용됩니다.
기본 포트: 9090

1. 📌 Prometheus의 주요 특징

  • 시계열 데이터 저장: 메트릭(metric)을 시간 기준으로 저장하며, 각 데이터는 타임스탬프와 함께 저장됩니다.
  • Pull 방식 데이터 수집: Prometheus는 모니터링 대상(서버, 애플리케이션 등)의 /metrics 엔드포인트에 주기적으로 HTTP 요청을 보내 데이터를 가져옵니다 (Pull 방식).     * 필요 시 Pushgateway를 통해 Push 방식도 가능.
  • 자체 쿼리 언어(PromQL): 복잡한 데이터 분석과 시각화를 가능하게 하는 강력한 쿼리 언어를 제공합니다.
  • 경보(Alerting) 시스템: 조건에 따라 Alertmanager와 연동해 이메일, Slack, PagerDuty 등으로 알림을 보낼 수 있습니다.
  • Grafana와 통합: 수집된 메트릭을 Grafana에서 시각화할 수 있습니다.

2. 🧱 Prometheus 아키텍처 구성 요소

  • Prometheus 서버: 메트릭 수집, 저장, 쿼리 처리
  • Exporter: 메트릭 데이터를 노출하는 프로그램 (예: Node Exporter, MySQL Exporter 등)
  • Pushgateway: Push 방식으로 데이터를 전달할 수 있도록 중간 다리 역할
  • Alertmanager: 알림을 관리하고 전송 (Slack, 이메일 등으로)
  • Grafana: 시각화 도구 (Prometheus 데이터를 보기 좋게 표현)

3. 🧰 사용 예시

  • CPU, 메모리, 네트워크 사용량 수집 및 시각화
  • Kubernetes 클러스터 모니터링
  • 웹 애플리케이션의 요청 수, 응답 시간, 에러율 추적
  • 마이크로서비스 간 지연 시간 모니터링

4. ✅ Prometheus가 적합한 상황

  • 클라우드 네이티브/컨테이너 환경에서의 모니터링
  • 복잡한 시스템 구성 요소들의 상태 추적
  • 실시간 메트릭 수집 및 분석

5. ⚙️ 다운로드(설치), 실행

📥 다운로드(설치) - Prometheus Release 확인

  • $ cd /app
  • $ mkdir prometheus && cd prometheus
  • $ wget https://github.com/prometheus/prometheus/releases/download/v3.4.0/prometheus-3.4.0.linux-amd64.tar.gz -> 112M
  • $ tar -xvzf prometheus-3.4.0.linux-amd64.tar.gz -> 압축 풀기
  • $ mv prometheus-3.4.0.linux-amd64 prometheus-3.4.0 -> 이름 변경
  • $ ll prometheus-3.4.0 -> 실행 파일: prometheus (크기: 148M)
  • $ ln -s prometheus-3.4.0/prometheus prometheus
    $ ln -s prometheus-3.4.0/promtool promtool
    -> 링크 만들기: 다른 버전을 받으면 링크만 수정한다. 시스템 서비스 등록은 수정하지 않는다.
    $cp prometheus-3.4.0/prometheus.yml . -> 설정 파일(yml)을 복사한다.
  • $ mkdir data -> prometheus 실행 시 data dir를 지정한다.
  • prometheus dir 최종 상태

⚙️ Prometheus 설정 파일 확인

cat /app/prometheus/prometheus.yml

🖥️ 시스템 서비스 등록

sudo vi /usr/lib/systemd/system/prometheus.service

  • sudo systemctl daemon-reload -> 설정 reload
  • sudo systemctl start prometheus -> 시작(실행)
  • sudo systemctl enable prometheus -> 자동 실행 등록
  • sudo systemctl stop prometheus -> 중지(shutdown)
  • sudo systemctl status prometheus -> 상태 확인

⚓ 9090 포트 허용

  1. sudo vi /etc/sysconfig/iptables -> 아래 내용 저장
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT
  2. sudo systemctl restart iptables
  3. sudo iptables -L -n | grep 9090 -> iptables 설정 확인
    target prot opt source destination
    ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9090
  4. sudo netstat -tulnp | grep 9090 -> netstat 확인
    tcp6 0 0 :::9100 :::* LISTEN 21305/prometheus
  5. 포트 관련 추가로 필요한 설정이 있으면 해주세요.

🌐 브라우저 ➡ 실행 화면 확인

http://IP:9090 -> 기본 화면


메뉴: Status > Target health
• prometheus.yml에 등록된 job(job_name)을 볼 수 있다.
• 두 번째 prometheus는 프로메테우스 자체 실행 지표(metric) 데이터이다.
• http 주소를 클릭하면 데이터를 볼 수 있다.


Email 답글이 올라오면 이메일로 알려드리겠습니다.