Belajar Keepalived - Monitoring & Alerting
Episode 20 of 23

Belajar Keepalived - Monitoring & Alerting

Episode ini membangun observabilitas HA: memantau status Keepalived dengan exporter Prometheus dan log, menyusun alerting untuk perubahan state, VIP hilang, dan backend tidak sehat, serta merancang dashboard operasional untuk status high availability.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

HA yang tidak teramati adalah HA yang tidak bisa dipertanggungjawabkan. Episode 20 membangun observabilitas lengkap: bagaimana memantau status Keepalived dengan Prometheus exporter, menyusun alerting untuk perubahan state dan VIP hilang, serta merancang dashboard yang menunjukkan kesehatan HA sekilas.

Tujuannya sederhana: insiden harus terdeteksi lebih awal dari keluhan pengguna. Dengan metrik yang benar dan alert yang tepat sasaran, tim kalian tahu persis kapan MASTER berpindah, kapan VIP tidak ada, dan kapan backend tidak sehat.

Memantau Status Keepalived

Ekspor Metrik ke Prometheus

Keepalived tidak menyediakan endpoint metrik Prometheus bawaan, tapi komunitas menyediakan keepalived_exporter yang membaca status daemon:

Deploy keepalived_exporter
services:
  keepalived-exporter:
    image: ghcr.io/philips-software/keepalived-exporter:latest
    network_mode: host
    container_name: keepalived-exporter
    restart: unless-stopped

Service keepalived-exporter berjalan dengan network_mode: host agar bisa berinteraksi dengan status Keepalived di host. Exporter ini mengekspos metrik seperti status instance VRRP dan jumlah transisi state.

Metrik yang Bermakna

Metrik yang paling berguna untuk dipantau:

  • State instance VRRP: apakah node menjadi MASTER atau BACKUP.
  • VIP aktif: apakah virtual IP benar-benar terpasang di interface.
  • Health check script: hasil script terakhir, sukses atau gagal.
  • Real server LVS: ketersediaan tiap backend.

Semua metrik ini sebaiknya diekspos dengan label nama instance dan node agar dashboard bisa mengelompokkannya dengan mudah.

Alerting pada Perubahan State

Alert Transisi MASTER

Transisi ke MASTER tidak selalu buruk — bisa jadi inilah yang benar. Tapi harus terlihat. Kirim alert setiap kali state berubah:

Alert transisi state
groups:
  - name: keepalived
    rules:
      - alert: KeepalivedMasterChanged
        expr: changes(vrrp_state_master{instance="lb01"}[5m]) > 0
        for: 1m
        labels:
          severity: warning
        annotations:
          summary: "MASTER berubah di lb01"

Rule changes(vrrp_state_master[5m]) > 0 memicu alert saat metrik MASTER berubah dalam 5 menit. Ini menangkap failover yang terjadi tanpa dijadwalkan.

Alert VIP Hilang

Skenario paling kritis: tidak ada node yang memegang VIP. Alert ini harus cepat dan berprioritas tinggi:

Alert VIP hilang
      - alert: KeepalivedVipLost
        expr: vrrp_vip_active == 0
        for: 30s
        labels:
          severity: critical
        annotations:
          summary: "Tidak ada node yang memegang VIP"

vrrp_vip_active == 0 berarti VIP tidak terpasang di node mana pun yang diekspos. Alert critical dengan for: 30s memastikan tidak ada false positive karena jeda transisi.

Alerting untuk Backend Tidak Sehat

Mengandalkan Metrik LVS

Backend yang tidak sehat harus terlihat bahkan sebelum failover VIP terjadi:

Alert backend tidak sehat
      - alert: LvsBackendDown
        expr: ipvs_healthy_real_server == 0
        for: 2m
        labels:
          severity: warning
        annotations:
          summary: "Semua backend pada {{ $labels.vip }} tidak sehat"

ipvs_healthy_real_server == 0 menunjukkan tidak ada real server yang sehat pada sebuah VIP. Alert warning memberi waktu tim bertindak sebelum layanan betul-betul mati.

Menghindari Noise Alert

Terlalu banyak alert membuat tim mati rasa. Gunakan for yang wajar, buat severity bertingkat, dan gabungkan beberapa kondisi. Satu alert yang berarti lebih baik dari sepuluh alert yang diabaikan.

Dashboard Operasional untuk HA

Panel yang Wajib Ada

Dashboard Grafana untuk HA sebaiknya menampilkan:

  • Peta state MASTER/BACKUP per node dan per instance.
  • Riwayat perubahan state dalam 24 jam.
  • Jumlah transisi failover per periode.
  • Status health check dan ketersediaan backend.
  • Latensi failover hasil pengukuran rutin.

Dengan panel-panel ini, satu pandangan sudah menjawab pertanyaan: apakah HA berfungsi, dan apakah ada yang baru saja berpindah?

Menggabungkan dengan Log

Metrik memberi tren, log memberi detail. Hubungkan keduanya di satu tempat:

Loki pipeline log keepalived
sudo systemctl status keepalived --no-pager | grep "active"
sudo journalctl -u keepalived --no-pager | tail -20

Output journalctl -u keepalived bisa dialirkan ke Loki atau sistem log terpusat lain. Ketika alert memicu, operator langsung membuka log untuk memahami konteks transisi.

Penutup

Episode 20 membuat HA kalian transparan: metrik dari keepalived_exporter masuk ke Prometheus, alerting menangkap perubahan state dan VIP hilang serta backend tidak sehat, dan dashboard menampilkan kesehatan HA dalam satu layar.

Inti yang harus dibawa pulang:

  • Gunakan keepalived_exporter untuk mengekspos metrik status VRRP dan IPVS.
  • Alert transisi MASTER menangkap failover yang tidak dijadwalkan.
  • Alert VIP hilang adalah prioritas tertinggi, dengan for singkat.
  • Alert backend tidak sehat mencegah kejutan sebelum layanan mati.
  • Dashboard menampilkan state, transisi, health check, dan latensi failover.
  • Gabungkan metrik dengan log untuk konteks insiden yang lengkap.

Di episode 21 selanjutnya kita membahas SLOs, runbooks, dan operational readiness — mendefinisikan target ketersediaan VIP dan waktu failover, menyusun runbook untuk insiden, serta memastikan kesiapan operasional untuk maintenance.