개발

시스템 모니터링(Prometheus + Grafana)

피터JK 2025. 9. 17. 14:30
728x90

🏗️ 기본 구조

  1. Prometheus 서버 1대
    • 모든 서버에서 메트릭을 수집하는 중앙 저장소 역할
    • prometheus.yml 설정에서 여러 서버의 Exporter 주소를 등록
  2. Node Exporter (각 서버 설치)
    • 각 서버에서 CPU, 메모리, 디스크, 네트워크 등 기본 메트릭을 제공
    • 보통 :9100 포트로 메트릭 노출
    • Prometheus가 주기적으로 스크랩
  3. Grafana 서버 1대
    • Prometheus를 데이터 소스로 연결
    • 시각화 대시보드 구성
  4. (선택) Alertmanager
    • 특정 임계치 이상일 때 알림 (Slack, 이메일, 카카오톡 Webhook 등)

⚙️ 설치 절차 (운영 서버 다수 기준)

1. Prometheus 설치 (중앙 서버 1대)

# Linux
wget https://github.com/prometheus/prometheus/releases/download/v2.55.0/prometheus-2.55.0.linux-amd64.tar.gz
tar xvf prometheus-*.tar.gz
cd prometheus-*
./prometheus --config.file=prometheus.yml

prometheus.yml 예시:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['server1:9100', 'server2:9100', 'server3:9100']

2. Node Exporter 설치 (각 서버)

wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz
tar xvf node_exporter-*.tar.gz
cd node_exporter-*
./node_exporter &
  • 백그라운드 실행하거나 systemd 서비스 등록
  • http://<서버IP>:9100/metrics 로 확인 가능

3. Grafana 설치 (별도 서버 1대 권장)

# CentOS / RHEL
sudo yum install https://dl.grafana.com/oss/release/grafana-11.1.4-1.x86_64.rpm
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
  • 접속: http://<grafana-server>:3000 (기본 ID/PW: admin/admin)
  • Data Source → Prometheus 추가 (http://prometheus-server:9090)
  • Dashboard Import (공식 템플릿 ID 1860 → Node Exporter Full)

📊 장점

  • 서버 수가 늘어나도 Exporter만 추가 설치하면 확장 가능
  • Grafana 템플릿 많아서 바로 운영 적용 가능
  • 장기 데이터 저장 가능

⚠️ 유의사항

  • 서버가 수십~수백 대 이상이면 → Prometheus 단일 서버 한계 → ThanosVictoriaMetrics 같은 확장 솔루션 고려
  • 보안 환경에서는 Exporter 포트(9100 등) → 방화벽 정책 조정 필요
  • 운영 자동화를 위해 Ansible 같은 툴로 Exporter 배포하면 편함

👉 요약

  • 운영 서버 다수라면 → 각 서버에 Node Exporter 설치
  • 중앙에서 Prometheus + Grafana로 통합 모니터링
  • 설치 난이도: 중간 (1~2일이면 기본 구축 완료 가능)

 

728x90