Home Lab 모니터링 스택 구축 회고 — Prometheus + Grafana + Loki
본 글은 작성 중입니다 (placeholder). 향후 실제 운영 데이터(스크린샷, 알람 룰, 장애 사례)를 추가해 정식 회고 글로 확장 예정입니다.
배경
3-노드 홈랩(Athena, Hades, Daedalus)을 운영하면서 다음 문제를 자주 겪었습니다.
- VM 게스트 OS가 죽어도 알 길이 없음 → 다음 날 SSH 접속 시도하다가 발견
- ZFS 풀 사용량이 임계치를 넘은 채로 며칠간 방치된 사례
- GPU 온도가 단발성으로 튀어도 로그가 휘발됨
“운영 중이다”라고 말하려면 관측(observability) 이 먼저 갖춰져야 한다는 걸 받아들이고 모니터링 스택을 도입했습니다.
스택 선택 과정
| 후보 | 채택 여부 | 사유 |
|---|---|---|
| Zabbix | ❌ | 학습 곡선·UI 부담, 컨테이너 친화적이지 않음 |
| Netdata | △ | 노드별 단일 대시보드는 좋지만 장기 보존·알람 룰 통합이 약함 |
| Prometheus + Grafana + Loki | ✅ | 사실상 표준, 대부분의 채용 공고와 동일 |
| Datadog/New Relic | ❌ | 비용, 자체 학습 목적과 어긋남 |
아키텍처 (예정)
[node_exporter / cadvisor / nvidia_smi_exporter] ─┐
├─→ Prometheus (Hades)
[promtail (각 노드)] ──→ Loki (Hades) ─────────────┘
↓
Grafana (Hades)
↓
Alertmanager → Discord webhook
TODO (다음 글들에서 다룰 예정)
- node_exporter 설치 및 systemd 유닛 작성
- NVIDIA Tesla P100 메트릭 수집 설정 (
nvidia_gpu_exporter) - ZFS 풀 사용률 알람 임계치 정의 (warning 70% / critical 85%)
- Loki에 ESXi syslog 포워딩
- Alertmanager → Discord webhook 연동
- 첫 한 달 운영하면서 받은 false-positive 알람 정리
- 실제 장애를 잡아낸 첫 케이스 회고
메모
모니터링은 “쌓는 것”이 아니라 “지우는 것”이라는 말이 맞다. 알람 1주일 받아보면 90%는 노이즈고, 그걸 거르는 과정이 진짜 작업.