카테고리 없음

Prometheus: 구성 및 운영 가이드

idea9329 2024. 11. 18. 15:52
반응형

 

Prometheus는 오픈 소스 모니터링 및 경고 도구로, 시계열 데이터베이스를 기반으로 시스템 및 애플리케이션의 메트릭을 수집, 분석, 시각화합니다. 이 가이드는 Prometheus의 구성 및 운영을 단계별로 설명합니다.


1. Prometheus란?

Prometheus는 다음과 같은 주요 기능을 제공합니다:

  • 데이터 수집: 다양한 애플리케이션 및 시스템에서 메트릭 수집.
  • 시계열 데이터 저장: 효율적인 데이터 저장소를 제공.
  • 쿼리 및 분석: PromQL(Prometheus Query Language)을 사용해 데이터를 쿼리.
  • 경고 시스템: 조건에 따라 경고를 생성.

Prometheus는 Pull 기반으로 작동하며, 메트릭을 수집하기 위해 애플리케이션에 Exporter를 사용합니다.


2. Prometheus 설치

1) 사전 요구사항

  • 운영체제: Linux, macOS, 또는 Docker.
  • CPU 및 메모리: 소규모 클러스터에는 최소 2 vCPU와 4GB 메모리 권장.

2) Prometheus 설치


3. 기본 구성

Prometheus의 핵심은 prometheus.yml 파일입니다. 기본 설정 예제는 다음과 같습니다:

global:
  scrape_interval: 15s   # 메트릭 수집 주기
  evaluation_interval: 15s  # 규칙 평가 주기

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  • scrape_interval: 메트릭 수집 주기.
  • job_name: 작업의 이름.
  • targets: 메트릭을 수집할 대상(예: Prometheus 서버 자체).

4. Exporter 설정

Prometheus는 다양한 Exporter를 통해 메트릭을 수집합니다.

1) Node Exporter (시스템 메트릭)

Node Exporter는 CPU, 메모리, 디스크 사용량 등의 메트릭을 제공합니다.

2) Kubernetes Metrics (kube-state-metrics)

  • Kubernetes 클러스터의 메트릭 수집을 위해 kube-state-metrics와 cAdvisor를 사용.
  • Helm 설치:
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm install prometheus prometheus-community/prometheus

5. 경고 및 알림 구성

Prometheus는 Alertmanager를 통해 경고를 처리하고 알림을 보냅니다.

1) Alertmanager 설치

  • Docker로 설치:
  • docker run -d --name alertmanager -p 9093:9093 prom/alertmanager
  • Alertmanager 구성 파일(alertmanager.yml):
  • global: smtp_smarthost: 'smtp.example.com:587' smtp_from: 'alert@example.com' route: receiver: 'email-alert' receivers: - name: 'email-alert' email_configs: - to: 'user@example.com'

2) Prometheus와 Alertmanager 통합

  • Prometheus 설정(prometheus.yml):
    alerting:
      alertmanagers:
        - static_configs:
            - targets: ['localhost:9093']

6. 시각화

Prometheus는 기본적인 시각화 기능을 제공하지만, Grafana와 통합하면 더욱 강력한 대시보드를 사용할 수 있습니다.

Grafana 설치

  • Docker:
    docker run -d --name=grafana -p 3000:3000 grafana/grafana

Prometheus와 통합

  1. Grafana 웹 UI에 접속: http://localhost:3000
  2. 데이터 소스 추가: Prometheus
  3. URL: http://localhost:9090

대시보드 생성

  • 기존 대시보드 가져오기:
    1. Grafana에서 "Import" 클릭.
    2. Grafana Dashboards에서 대시보드 ID 복사.
    3. Prometheus 데이터 소스 선택 후 "Import".

7. 트러블슈팅

1) Prometheus 작동 문제

  • 서비스 상태 확인:
    systemctl status prometheus
  • 로그 확인:
    journalctl -u prometheus

2) 메트릭 수집 문제

  • 대상에 접근 가능 여부 확인:
    curl http://<target>:<port>/metrics

3) 경고 설정 문제

  • Alertmanager와 연결 여부 확인:
    curl http://localhost:9093

결론

Prometheus는 시스템과 애플리케이션 모니터링의 핵심 도구로, 다양한 환경에서 효율적으로 동작합니다. 설치와 기본 구성부터 시작해 Exporter 추가, Alertmanager 설정, Grafana 통합까지 학습하면 Prometheus의 모든 기능을 활용할 수 있습니다. 이를 통해 시스템 안정성을 유지하고 성능을 최적화하세요.

반응형