Membangun observability lengkap untuk Ceph: dashboard Ceph, integrasi Prometheus dengan ServiceMonitor, dashboard Grafana resmi, alerting untuk OSD down dan kapasitas, serta sentralisasi log MON/OSD/MDS/RGW ke Loki atau EFK.

Upgrade sudah tertata (episode 17). Episode 18 membangun sistem mata: monitoring & observability untuk Ceph. Tanpa ini, OSD yang down, PG yang missing, atau kapasitas yang menipis baru terasa saat — sudah terlambat.
Mengapa penting? Ceph menampilkan sinyal sebelum masalah parah: health warning, saturasi OSD, PG backfill. Alat observability menangkap sinyal itu dan mengubahnya menjadi alert — bukan diagnosis setelah krisis.
Dashboard Ceph (episode 6) adalah tempat pertama melihat kondisi:
Cek segmented: Performance → Client melihat latency client. Ini cepat untuk gambaran umum.
Rook men-deploy rook-ceph-mgr-prometheus sebagai target scrape. Gunakan ServiceMonitor:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: rook-ceph-mgr
namespace: rook-ceph
spec:
selector:
matchLabels:
app: rook-ceph-mgr
rook_cluster: rook-ceph
namespaceSelector:
matchNames: [rook-ceph]
endpoints:
- port: http-metrics
path: /metrics
scheme: httpMetrik yang berguna:
| Metrik | Arti |
|---|---|
ceph_health_status | Health status cluster |
ceph_osd_up | Status up/down tiap OSD |
ceph_pg_* | PG states (active, degraded, stuck) |
ceph_osd_used_bytes / ceph_osd_total_bytes | Kapasitas per OSD |
ceph_cluster_total_used_bytes | Utilisasi total |
Rook membawa dashboard resmi (di deploy mendokumentasikannya) — import JSON ke Grafana dengan datasource Prometheus. Panel: overview cluster, OSD utilization, PG states, latency graph.
peering, degraded, stuck).apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: ceph-alerts
namespace: monitoring
spec:
groups:
- name: ceph
rules:
- alert: CephOSDDown
expr: ceph_osd_up == 0
for: 5m
labels:
severity: critical
annotations:
summary: "OSD {{ $labels.osd }} down"
- alert: CephCapacityHigh
expr: ceph_osd_used_bytes / ceph_osd_total_bytes > 0.8
for: 10m
labels:
severity: warning
annotations:
summary: "Kapasitas OSD > 80%"
- alert: CephPGStuck
expr: ceph_pg_stuck != 0
for: 10m
labels:
severity: warning
annotations:
summary: "PG stuck (peering/backfill)"Alertmanager meneruskan ke channel:
receivers:
- name: slack
slack_configs:
- channel: "#ceph-alerts"
send_resolved: trueAlert penting yang harus dipasang sejak awal: OSD down, health warning, PG missing/backfill, kapasitas >80%.
Log MON/OSD/MDS/RGW per Pod:
kubectl -n rook-ceph logs rook-ceph-osd-0 | tail -50Untuk forensik, kumpulkan log ke Loki atau EFK:
/var/log/ceph atau log Pod.Tujuan: ketika alert berbunyi, bisa menelusuri "kenapa OSD 2 crash" dari log — bukan sekadar tahu "OSD 2 crash".
Tip
Mulai dari satu set kecil PrometheusRule (OSD down + kapasitas + PG stuck). Tambahkan alert lain setelah nyaman. Alert yang terlalu banyak malah menimbulkan "alert fatigue" — bisa membuat yang kritis terlewat.
Inti yang harus dibawa pulang:
Di episode 19 selanjutnya kita akan membahas performance & failure domain — benchmark block dan object, memahami failureDomain host/rack/region, opsi NVMe-oF untuk low latency, serta tuning latency jaringan. Sampai jumpa di episode 19!