prometheus
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 포트 허용
- sudo vi /etc/sysconfig/iptables -> 아래 내용 저장
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT - sudo systemctl restart iptables
- 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 - sudo netstat -tulnp | grep 9090 -> netstat 확인
tcp6 0 0 :::9100 :::* LISTEN 21305/prometheus - 포트 관련 추가로 필요한 설정이 있으면 해주세요.
🌐 브라우저 ➡ 실행 화면 확인
http://IP:9090 -> 기본 화면

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

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