Episode ini membahas alerting dan health checks untuk Kafka: strategi pemeriksaan liveness broker, metrik kesehatan cluster, alert kritis seperti under-replicated partition, controller flapping, dan lag spike, serta integrasi ke PagerDuty, Slack, dan webhook kustom.

Monitoring memberi kalian data; alerting yang mengubah data menjadi tindakan. Tanpa alert yang baik, metrik hanya menumpuk di dashboard — masalah nyata baru terdeteksi ketika pengguna melaporkan. Episode 23 ini membahas cara membangun sistem alerting yang efektif untuk Kafka: health checks, alert kritis, dan integrasi ke kanal notifikasi.
Kunci alerting yang baik bukan kuantitas, melainkan selektivitas. Alert harus menandakan sesuatu yang benar-benar membutuhkan tindakan, menghindari alert fatigue, dan menyediakan konteks yang cukup untuk respons cepat.
Pemeriksaan dasar: apakah broker merespons? Gunakan CLI untuk menguji koneksi dan API:
bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092 --version-checkkafka-broker-api-versions.sh --version-check memastikan broker merespons versi API. Untuk pemeriksaan berkala, jalankan perintah ini secara cron dan beri tahu jika gagal — ini memverifikasi koneksi TCP, protokol, dan handler sekaligus.
Selain liveness per broker, pantau kesehatan agregat:
acks=all tidak gagal.Threshold yang disarankan:
Aturan Prometheus yang umum:
- alert: KafkaUnderReplicatedPartitions
expr: kafka_server_replicamanager_underreplicatedpartitions > 0
for: 5m
- alert: KafkaOfflinePartitions
expr: kafka_controller_kafkacontroller_offlinepartitionscount > 0
for: 1mfor: 5m memberi toleransi transisi agar alert tidak membanjiri saat rebalance normal. Aturan ini hanya memicu ketika kondisi bertahan melewati durasi.
Untuk kejadian kritis, integrasi on-call: Prometheus Alertmanager mengirim alert ke PagerDuty atau OpsGenie, yang melakukan eskalasi ke tim yang berjaga. Buat severity yang jelas: critical (halaman on-call) versus warning (email/Slack), sehingga hanya masalah nyata yang membangunkan orang.
Kanal non-kritis atau notifikasi gabungan dikirim ke Slack:
receivers:
- name: "slack-ops"
slack_configs:
- channel: "#kafka-alerts"
send_resolved: trueslack_configs mengarahkan notifikasi ke kanal tertentu dengan send_resolved: true agar tim tahu masalah sudah selesai. Sertakan konteks alert — broker mana, metrik apa, sejak kapan — dalam pesan.
Untuk kebutuhan khusus, Alertmanager bisa memanggil webhook kustom. Ini membuka otomatisasi remediasi: webhook memicu script yang menyelidiki broker bermasalah, mengumpulkan thread dump, atau mengeksekusi aksi perbaikan standar. Mulai dari investigasi otomatis yang aman, lalu perluas ke remediasi setelah aksi terbukti andal.
Tip
Setiap alert harus memiliki runbook: penjelasan apa artinya, bagaimana menyelidiki, dan langkah mitigasi. Alert tanpa runbook hanya menambah kebisingan. Buat runbook untuk semua alert kritis sebelum mengaktifkannya.
Di episode 23 ini kalian sudah memahami strategi health check broker dan cluster, alert kritis untuk under-replicated partition, offline partition, controller flapping, dan lag spike, serta integrasi alert ke PagerDuty, Slack, dan webhook kustom.
Inti yang harus dibawa pulang:
for duration untuk menghindari alert fatigue saat rebalance normal.Di episode 24 selanjutnya kita akan membedah replication dan high availability — leader dan follower replica, In-Sync Replicas, high watermark, unclean leader election, min.insync.replicas, dan rack awareness untuk isolasi failure domain.