Prometheus — 모니터링

최신 도구 가이드 / 모니터링 / prometheus.html

모니터링원문등록 2026-10-18

서버·애플리케이션 지표를 수집해 시계열로 저장하고 경고를 보내는 CNCF 표준 모니터링 시스템입니다.

기본 정보

프로그램 이름Prometheus (프로메테우스)
한 줄 소개서버·애플리케이션 지표를 수집해 시계열로 저장하고 경고를 보내는 CNCF 표준 모니터링 시스템입니다.
개발·유지CNCF / Prometheus Authors
공식 홈페이지https://prometheus.io/
공식 문서https://prometheus.io/docs/
공식 다운로드https://prometheus.io/download/
지원 운영체제Linux, macOS, Windows, FreeBSD 등 (단일 바이너리)
라이선스Apache-2.0
안정 버전3.15.0 (2026-09-25 출시) — 확인일 2026-10-18
GitHub 저장소https://github.com/prometheus/prometheus
분류모니터링 (태그: 모니터링, 메트릭, 경고, 시계열, CNCF)

이 프로그램은 무엇인가?

Prometheus는 서버·컨테이너·애플리케이션에서 나오는 수치 지표(metric)를 주기적으로 받아 시계열 데이터베이스에 저장하는 오픈소스 모니터링 시스템입니다. CPU·메모리 같은 시스템 지표뿐 아니라 앱이 직접 노출하는 비즈니스 지표까지 함께 수집합니다.

CNCF 졸업 프로젝트로, 컨테이너·Kubernetes 환경의 표준으로 자리 잡았습니다. 내장 UI로 조회할 수 있고, 대시보드는 Grafana와 결합해 쓰는 경우가 많습니다. 경고는 내장 룰 언어(PromQL)로 정의하고 Alertmanager로 전달합니다.

어떤 문제를 해결하는가?

  • ('서버 모니터링에서', 'CPU·디스크·프로세스 상태를 시간 흐름으로 봐야 할 때', '지표를 시계열로 저장해 추이·이상 탐지가 가능합니다.')
  • ('장애 대응에서', '임계값 초과 시 알림이 필요할 때', 'PromQL 룰로 경고 조건을 정의해 알림을 보냅니다.')
  • ('컨테이너 환경에서', 'Pod·노트 단위 지표를 모아야 할 때', '서비스 디스커버리로 대상을 자동 등록합니다.')

주요 기능

Pull 기반 수집

대상이 노출하는 /metrics 엔드포인트를 주기적으로 수집

  • 활용 상황: HTTP 메트릭 수집
  • 얻는 결과: 대상 등록·해제가 간단
  • 제한 사항: Pull이 어려운 환경은 Pushgateway 필요.

PromQL 질의

시계열 데이터를 질의·집계하는 자체 언어

  • 활용 상황: 그래프·경고 룰
  • 얻는 결과: 레이블 기반 집계·비율 계산
  • 제한 사항: PromQL 학습 곡선이 있습니다.

경고 룰·Alertmanager

임계값·이상 패턴으로 경고 발생 후 그룹화·중복 제거

  • 활용 상황: 장애 알림
  • 얻는 결과: 채팅·이메일·PagerDuty로 전달
  • 제한 사항: 경고 과다는 알림 피로를 유발할 수 있습니다.

서비스 디스커버리

DNS·Kubernetes·Consul 등으로 대상 자동 발견

  • 활용 상황: 동적 환경
  • 얻는 결과: 수동 등록 없이 대상 관리
  • 제한 사항: 디스커버리 설정 오류는 수집 누락으로 이어집니다.

설치 및 실행

Linux (바이너리)

공식 다운로드에서 해당 아키텍처 바이너리를 내려받아 실행합니다.

wget https://github.com/prometheus/prometheus/releases/download/v3.15.0/prometheus-3.15.0.linux-amd64.tar.gz
tar xvf prometheus-3.15.0.linux-amd64.tar.gz
cd prometheus-3.15.0.linux-amd64
./prometheus --config.file=prometheus.yml

Linux (systemd)

설치 후 서비스 단위 파일로 상주시킵니다.

sudo useradd --no-create-home --shell /bin/false prometheus
sudo cp prometheus /usr/local/bin/
sudo cp prometheus.yml /etc/prometheus/
# /etc/systemd/system/prometheus.service 작성 후
sudo systemctl enable --now prometheus

Docker

공식 이미지로 빠르게 실행합니다.

docker run -d -p 9090:9090 \
  -v ./prometheus.yml:/etc/prometheus/prometheus.yml \
  prom/prometheus

실제 사용 예제

노드 지표 수집

node_exporter를 설치하고 prometheus.yml에 타깃으로 등록합니다.

$ ./node_exporter &
# prometheus.yml
scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

PromQL 질의

UI(localhost:9090)에서 PromQL로 지표를 조회합니다.

node_cpu_seconds_total{mode="idle"}
100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

경고 룰 정의

경고 룰을 파일에 두고 reload로 적용합니다.

groups:
- name: alerts
  rules:
  - alert: HighCpu
    expr: 100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m]))*100) > 85
    for: 5m

장점과 한계

장점

  • 무료·오픈소스(Apache-2.0), 단일 바이너리로 배포 간편
  • Pull 모델·서비스 디스커버리로 컨테이너 환경에 적합
  • PromQL·경고 룰 언어로 유연한 질의·알림
  • Grafana 등 시각화 도구와의 결합이 매우 잘 되어 있음

사용 전에 고려할 점

  • 장기·대용량 시계열은 로컬 스토리지 한계가 있어 Thanos·Cortex 등 연동이 필요할 수 있습니다.
  • Pull 모델 특성상 NAT·방화벽 뒤 대상은 Pushgateway 등 우회가 필요합니다.
  • PromQL·경고 룰 작성에 학습이 필요합니다.

비슷한 프로그램과 비교

프로그램특징이런 경우에 적합
Grafana대시보드·시각화 전문(데이터 소스로 Prometheus 사용)지표 시각화·공유
Zabbix에이전트 기반 종합 모니터링이벤트·설정 관리 중심 환경
Datadog상용 SaaS 모니터링구축 부담 없이 상용 기능이 필요할 때

공식 자료 및 추가 학습

버전·지원 환경 정보는 2026-10-18 기준으로 공식 사이트에서 확인한 값입니다. 설치 명령은 사용하는 배포판과 버전에 따라 달라질 수 있으므로 공식 설치 문서를 함께 확인하세요.

실제 실행 화면

아래는 사용 흐름을 이해하기 위해 만든 합성 예시 화면입니다(실제 실행 결과 아님). 화면은 합성 예시이며 실제 실행 결과가 아닙니다.

Prometheus 예시: 서버 시작 로그, health 체크

실제 운영 중인 서버

이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.