Skip to main content
Dasbor monitoring yang indah tidak ada gunanya jika tim insinyur harus menatap layar monitor selama 24 jam nonstop. Ketika server mengalami kegagalan, sistem harus secara proaktif membangunkan tim yang sedang bertugas (On-Call Engineer). Prometheus Alertmanager adalah komponen resmi yang menangani peringatan (alerts) yang dikirimkan oleh Prometheus server, melakukan deduplikasi, pengelompokan (grouping), peredaman (silencing), dan meneruskannya ke berbagai saluran komunikasi seperti Telegram, Discord, Slack, atau Email.

Alur Kerja Alerting di Prometheus

  1. Prometheus: Mengevaluasi ekspresi PromQL secara periodik. Jika nilai metrik melebihi batas batas ambang selama durasi tertentu (misal CPU > 90% selama 2 menit), Prometheus menandai statusnya menjadi FIRING dan mengirim data ke Alertmanager.
  2. Alertmanager:
    • Grouping: Jika ada 10 server mati bersamaan di satu subnet, Alertmanager tidak mengirim 10 notifikasi terpisah yang membombardir HP admin (alert fatigue), melainkan merangkumnya menjadi 1 notifikasi terpadu.
    • Inhibition: Jika server host utama mati, Alertmanager otomatis membisukan (mute) notifikasi dari kontainer-kontainer kecil di dalamnya.
    • Silencing: Mematikan sementara notifikasi tertentu saat tim sedang melakukan jadwal perawatan terencana (maintenance window).

1. Menulis Aturan Peringatan (alert_rules.yml)

Buat berkas aturan peringatan untuk Prometheus bernama alert_rules.yml:

2. Konfigurasi Alertmanager (alertmanager.yml)

Berikut contoh konfigurasi lengkap alertmanager.yml yang menghubungkan saluran Telegram Bot, Discord Webhook, Slack, dan Email (SMTP):

3. Langkah Mendapatkan Kredensial Notifikasi

Cara Membuat Telegram Bot & Chat ID:

  1. Buka aplikasi Telegram, cari akun resmi @BotFather.
  2. Ketik /newbot, ikuti petunjuk hingga kamu mendapatkan Bot Token HTTP API (contoh: 678910:AAH...).
  3. Buat grup Telegram baru untuk tim DevOps kamu, lalu masukkan bot tersebut ke dalam grup.
  4. Jadikan bot sebagai admin grup.
  5. Kirim satu pesan sembarang di grup tersebut (misal: β€œHalo bot”).
  6. Buka URL ini di browser untuk mendapatkan Chat ID grup: https://api.telegram.org/bot<TOKEN_KAMU>/getUpdates
  7. Cari nilai "chat":{"id": -100xxxxxxx}. Angka minus tersebut adalah chat_id grupmu.

Cara Mendapatkan Discord Webhook URL:

  1. Buka aplikasi Discord pada server milikmu.
  2. Klik ikon gerigi (Settings) pada channel teks yang diinginkan (misal #alerts-devops).
  3. Pilih menu Integrations β†’\to klik Webhooks β†’\to klik New Webhook.
  4. Beri nama (misal: Prometheus Bot), lalu klik Copy Webhook URL.

4. Pengujian Nyata: Memastikan Pesan Terkirim

Untuk membuktikan bahwa sistem peringatan bekerja sempurna dan notifikasi masuk ke Telegram/Discord:
  1. Daftarkan target dummy di prometheus.yml yang mengarah ke port mati:
  2. Reload konfigurasi Prometheus (curl -X POST http://localhost:9090/-/reload).
  3. Dalam waktu 1 menit, Prometheus mendeteksi target up == 0.
  4. Buka dasbor web Alertmanager di http://ip-server:9093, kamu akan melihat alert berstatus Firing (InstanceDown).
  5. Bukti Terkirim: Ponselmu akan bergetar dan grup Telegram/Discord akan menerima pesan:
    πŸ”₯ [ALERT - MASALAH TERDETEKSI] πŸ”₯
    Peringatan: Server Instance 127.0.0.1:9999 Mengalami Kerusakan (DOWN)
    Tingkat: critical
    Deskripsi: Target 127.0.0.1:9999 dari job test_dummy tidak merespons selama lebih dari 1 menit.
  6. Hapus target dummy tersebut, lalu reload Prometheus. Dalam waktu singkat, Alertmanager secara otomatis mengirim pesan pemulihan berwarna hijau:
    βœ… [RESOLVED - MASALAH PULIH] βœ…
Last modified on October 26, 2026