Episode ini membahas observability cluster Ceph: Ceph dashboard, Prometheus exporter, dan Grafana dashboards, pengumpulan metrik health, OSD, pool, dan RGW, alerting untuk event cluster dan anomali performa, serta manajemen log dan audit trail.

Selamat datang di episode 11 series Belajar Ceph! Cluster yang aman dan cepat masih menyisakan satu pertanyaan besar: bagaimana kalian tahu kondisinya setiap saat? Episode ini membahas monitoring & observability — cara membuat cluster Ceph transparan sehingga masalah terlihat sebelum menjadi bencana.
Observability bukan sekadar dashboard yang bagus. Dia adalah kemampuan untuk menjawab pertanyaan seperti: kenapa latency naik? OSD mana yang mulai melambat? Berapa kapasitas yang tersisa untuk pool X? Tanpa metrik dan log yang baik, semua pertanyaan itu hanya bisa dijawab dengan menebak.
Di akhir episode ini kalian akan bisa memakai Ceph dashboard, mengumpulkan metrik via Prometheus, menyusun dashboard Grafana, mengonfigurasi alerting, serta membaca log untuk keperluan troubleshooting dan audit. Mari kita mulai.
Ceph dashboard terintegrasi langsung dengan cephadm dan aktif secara default setelah bootstrap. Untuk deployment yang belum mengaktifkannya:
ceph mgr module enable dashboard
ceph mgr services
ceph dashboard create-self-signed-certceph mgr module enable dashboard mengaktifkan modul dashboard di MGR, sementara ceph mgr services menampilkan URL yang bisa diakses. Dashboard biasanya berjalan di port 8443 dengan HTTPS.
Dashboard menyajikan gambaran keseluruhan cluster dalam satu halaman: health, kapasitas per pool, status OSD, aktivitas client, dan metrik performa seperti IOPS serta latency. Kalian juga bisa melakukan beberapa operasi dasar seperti melihat log daemon dan memeriksa status PG.
ceph dashboard ac-user-set-password admin password-baruceph dashboard ac-user-set-password mengganti password user dashboard. Ganti password default segera setelah bootstrap dan batasi akses dashboard hanya dari network internal.
Ceph menyediakan endpoint Prometheus melalui MGR. Aktifkan modulnya lalu verifikasi endpoint metrik:
ceph mgr module enable prometheus
curl -s http://mgr-host:9283/metrics | headceph mgr module enable prometheus menjalankan exporter pada port 9283 di setiap MGR aktif. Endpoint /metrics menyajikan metrik dalam format yang dipahami Prometheus, termasuk ceph_cluster_total_used_bytes dan ceph_osd_up.
Beberapa metrik yang selalu pantau adalah health status, jumlah PG dalam kondisi degraded atau stale, latency OSD commit, IOPS dan throughput, kapasitas per pool, serta jumlah object. Metrik-metrik ini menjadi dasar alert yang akan kita susun.
cephadm bisa mendeploy Grafana secara otomatis bersama stack monitoring:
ceph orch apply prometheus
ceph orch apply grafana
ceph orch apply alertmanagerceph orch apply prometheus mendeploy Prometheus, Grafana, dan Alertmanager sebagai daemon terkelola. Ceph secara otomatis menyediakan dashboard Grafana bawaan yang sudah dikonfigurasi untuk menampilkan metrik Ceph.
Dashboard Grafana Ceph bawaan memiliki panel untuk kapasitas, IOPS, latency, dan kesehatan PG. Saat ada anomali, panel latency dan PG akan menunjukkan pola yang khas: misalnya latency naik bersamaan dengan jumlah PG degraded — itu indikasi recovery sedang berjalan.
Ceph daemons --> Prometheus exporter --> Prometheus --> Grafana
|--> Alertmanager --> notifikasiAlur di atas menunjukkan perjalanan metrik dari daemon Ceph hingga notifikasi alert. Grafana untuk visualisasi, Alertmanager untuk mengirim notifikasi.
Alert yang baik hanya memperingatkan hal yang bisa ditindaklanjuti. Aturan dasar yang umum dipakai:
CephHealthError: cluster HEALTH_ERR selama lebih dari satu menit.CephPGsInactive: ada PG inactive atau stale.CephOSDDownHigh: lebih dari satu OSD down dalam waktu lama.CephMonDownQuorumAtRisk: MON down mendekati batas quorum.Alert rules ditulis dalam format Prometheus. Contoh sederhana untuk OSD down:
groups:
- name: ceph
rules:
- alert: CephOSDDown
expr: ceph_osd_up == 0
for: 10m
labels:
severity: warning
annotations:
summary: "OSD {{ $labels.osd }} down selama 10 menit"Rule di atas memicu alert bila ada OSD yang down lebih dari 10 menit. Tempatkan file rule di direktori yang di-scrape Prometheus dan reload konfigurasi.
Alertmanager mengarahkan notifikasi ke email, Slack, atau webhook sesuai konfigurasi alertmanager.yml. Ceph memakai konfigurasi yang ditempatkan di ceph orch alertmanager config untuk menyuntikkan route dan receiver. Mulailah dengan satu receiver ke channel chat tim, lalu tambah escalation untuk severity yang lebih tinggi.
Setiap daemon menghasilkan log yang tersimpan di /var/log/ceph pada node masing-masing. Log OSD paling sering menjadi sumber troubleshooting karena berisi error I/O dan event peering:
journalctl -u ceph-osd@0 --since "10 min ago"journalctl -u ceph-osd@0 membaca log OSD 0 dari systemd journal. Untuk mencari error, filter dengan kata kunci seperti ERR atau WARN. Log audit terpusat bisa dibangun dengan mengarahkan journal ke forwarder seperti Loki atau syslog eksternal.
Untuk keperluan compliance, aktifkan audit logging pada RGW yang mencatat operasi per user dan bucket:
ceph config set rgw rgw_log_operations true
ceph config set rgw rgw_log_http_headers truergw_log_operations mencatat setiap operasi object dan bucket ke log. Dengan audit trail ini, kalian bisa menjawab pertanyaan "siapa yang mengakses object mana dan kapan" — hal yang wajib ada untuk storage multi-tenant di lingkungan yang diaudit.
Di episode ini kalian sudah memahami cara membangun observability untuk cluster Ceph: memakai Ceph dashboard, mengumpulkan metrik dengan Prometheus module, menyusun dashboard Grafana, mengonfigurasi alerting untuk event cluster dan anomali performa, serta mengelola log daemon dan audit trail untuk troubleshooting dan compliance.
Inti yang harus dibawa pulang:
Di episode 12 selanjutnya kita akan membahas high availability & fault tolerance — redundansi untuk MON, MGR, MDS, dan RGW, failure domain CRUSH dan isolasi host atau device, penanganan OSD failure dan penggantian disk, serta operasi heal, backfill, dan scrub. Saatnya membuat cluster kalian tahan banting!