Prometheus stack 으로 서버 시스템 모니터링 하기
개요
본 문서에서는 Helm 차트를 이용해 Prometheus Stack을 설치하고, Kubernetes 기반 시스템의 상태를 효율적으로 모니터링하는 방법을 소개합니다.
Prometheus, Grafana, Alertmanager 등을 포함한 통합 모니터링 스택을 통해 클러스터의 리소스 사용량, 네트워크 트래픽, 애플리케이션 성능 등을 직관적으로 시각화하고, 운영 안정성을 높일 수 있습니다.
헬름차트 정보
NAME CHART VERSION APP VERSION DESCRIPTION
prometheus/kube-prometheus-stack 75.15.1 v0.83.0 kube-prometheus-stack collects Kubernetes manif...
values.yaml 수정내용 요약
설치
설치체크
그라파나 admin 암호확인
그라파나 웹 접속하기
기본으로 제공되는 대시보드
노드의 지표의 가시화된 내용을 확인 할 수 있다.
api 서버의 상태체크
대시보드의 요약
🔔 Alertmanager / Overview
-
alertmanager-mixin태그 -
Alertmanager의 상태, 알림 수신/전송 상태 등을 보여줌
🌐 CoreDNS
-
coredns,dns태그 -
클러스터 DNS 성능 및 쿼리 상태를 모니터링
🔐 etcd
-
etcd-mixin태그 -
Kubernetes에서 사용하는 etcd의 성능, 용량, 상태 등을 시각화
📊 Grafana Overview
-
기본 Grafana 자체의 상태 요약 대시보드
🧩 Kubernetes 관련 대시보드 (kubernetes-mixin 태그)
⛓️ Compute 리소스
-
Multi-Cluster, Cluster, Namespace(Pods/Workloads), Node, Pod, Workload
-
CPU, 메모리 사용량을 다양한 단위 (클러스터, 네임스페이스, 노드, 파드) 기준으로 분석 가능
⚙️ 시스템 구성 요소
-
API Server, Controller Manager, Kubelet, Proxy, Scheduler
-
Kubernetes 핵심 컴포넌트들의 상태 및 성능 모니터링
🌐 네트워킹
-
Cluster, Namespace (Pods/Workloads), Pod, Workload
-
각 단위별 네트워크 트래픽 (송수신 바이트, 패킷 등) 확인 가능
📦 Persistent Volumes
-
PV 사용량, 바인딩 상태, 사용률 등의 정보를 확인
🖥️ Node Exporter 관련 (node-exporter-mixin 태그)
-
AIX, MacOS, Nodes, USE Method (Cluster/Node)
-
서버 OS별 메트릭, 리소스 사용 현황
-
USE Method는 Utilization, Saturation, Errors 기반의 성능 분석
📈 Prometheus / Overview (prometheus-mixin)
-
Prometheus 자체의 상태 (target, rule, alert 상태 등) 시각화
그라파나 메뉴의 요약
🔸 기본 메뉴
-
Home
기본 대시보드 페이지로 이동합니다. -
Bookmarks
즐겨찾기한 대시보드나 항목들을 확인할 수 있습니다. -
Starred
별표 표시한 대시보드 목록입니다. -
Dashboards
생성된 대시보드를 열람하고 새로 만들 수 있습니다. -
Explore
쿼리를 실시간으로 작성하고 시각화할 수 있는 탐색 기능입니다. 임시 시각화나 데이터 분석에 활용됩니다.
🔸 관찰(Observability) 관련 메뉴
-
Drilldown
특정 데이터나 그래프에서 더 자세한 하위 데이터를 탐색할 수 있는 기능입니다. (ex: 클릭 → 세부 페이지로 이동) -
Metrics
Prometheus 등에서 수집된 메트릭 데이터를 확인할 수 있습니다. -
Logs
Loki 등의 데이터 소스에서 수집된 로그를 확인할 수 있습니다. -
Traces
분산 추적 데이터를 확인할 수 있으며, Tempo 같은 추적 시스템과 연동됩니다. -
Profiles
시스템의 성능 프로파일링 데이터를 시각화합니다. Grafana Pyroscope 등을 사용할 때 보입니다.
🔸 Alerting (알림)
-
Alert rules
조건에 따라 경고(Alert)를 발생시키는 규칙 설정 화면입니다. -
Contact points
알림을 받을 연락 수단 (이메일, Slack, Webhook 등)을 설정합니다. -
Notification policies
알림 정책을 관리하고 어느 상황에서 어떤 연락처로 보낼지를 결정합니다. -
Silences
일시적으로 알림을 차단(silence)할 수 있는 설정입니다. 예: 점검 기간 중 경고 발생 방지. -
Active notifications
현재 활성화되어 있는 알림 상태를 확인할 수 있습니다. -
Recently deleted
최근 삭제된 알림이나 규칙을 확인할 수 있습니다.
🔸 설정 및 관리
-
Settings
전체 Grafana 인스턴스의 설정을 구성할 수 있는 메뉴입니다. -
Connections
외부 시스템과의 연결을 관리합니다.-
Add new connection
새로운 데이터 소스나 외부 시스템을 연결할 수 있습니다. -
Data sources
Prometheus, Loki, InfluxDB 등 다양한 데이터 소스를 등록하고 관리할 수 있습니다.
-
-
Administration
사용자, 팀, 조직, 보안 및 라이선스 등 관리 기능을 설정할 수 있습니다.
MySQL 연동
✅ ① metrics.serviceMonitor.enabled: true
MySQL exporter에서 노출한 /metrics endpoint를 Prometheus가 수집할 수 있도록 ServiceMonitor를 생성해야 합니다.
metrics:
enabled: true # MySQL exporter 활성화 (chart에 따라 위치 다를 수 있음)
serviceMonitor:
enabled: true
namespace: monitoring # Prometheus가 있는 네임스페이스
interval: 30s
scrapeTimeout: 10s
selector: {}
labels:
release: prometheus # Prometheus가 탐지할 label (Prometheus 설정과 일치해야 함)
selector와 labels는 Prometheus Operator의 prometheus.spec.serviceMonitorSelectorMatchLabels 와 매칭되어야 합니다.🚨 3. 알람 설정 예시 (prometheusRule)
MySQL이 다운되었는지 감지하는 Rule을 작성할 수 있습니다.
prometheusRule:
enabled: true
namespace: monitoring
additionalLabels:
release: prometheus
rules:
- alert: MysqlDown
expr: absent(up{job="mysql"} == 1)
for: 2m
labels:
severity: critical
service: mysql
annotations:
summary: "MySQL instance is down"
message: "MySQL instance {{ $labels.instance }} is not responding to Prometheus scrape."
up{job="mysql"}이 존재하지 않으면, 즉 mysql-exporter가 응답하지 않으면 트리거됩니다.📊 4. Grafana에서 시각화
MySQL Exporter가 제공하는 메트릭(mysql_global_status_*, mysql_slave_*, mysql_perf_schema_* 등)을 기반으로 하는 대시보드를 Grafana에서 수동 또는 JSON으로 불러올 수 있습니다.
-
Grafana Dashboard ID:
-
예시로 MySQL Exporter for Prometheus Dashboard #7362 를 가져올 수 있습니다.
-
Data Source를 Prometheus로 연결하고 importer로 적용.
🔄 5. 종합 적용 흐름 요약
마무리하며,
위에서 소개한 대시보드는 클러스터 운영의 전반적인 상태를 직관적으로 파악할 수 있도록 도와줍니다.
이후 단계에서는 모니터링 가시화 요구사항을 더욱 정교하게 반영하거나, 시스템의 안정성 및 성능 가속화를 위한 설정, 보안 정책 강화를 위한 추가 구성이 필요할 수 있습니다.
특히, Alertmanager를 연동한 알람 설정을 통해 주요 지표의 이상 징후를 빠르게 감지하고 대응 체계를 마련하는 것도 중요한 운영 요소입니다.
환경에 맞는 최적화와 보완 작업을 통해 보다 효과적이고 신뢰성 있는 모니터링 체계를 구축하시기 바랍니다.
댓글
댓글 쓰기