Integrasi Prometheus Alertmanager - Peringatan di Ponsel
Arahkan peringatan Prometheus Alertmanager ke Echobell dan dapatkan notifikasi push atau panggilan telepon untuk insiden server dan infrastruktur.
Prometheus bersama Alertmanager adalah tumpukan pemantauan dan peringatan open-source yang banyak dipakai. Dengan mengintegrasikan Alertmanager ke Echobell, Anda bisa menerima notifikasi instan di ponsel (termasuk peringatan peka waktu atau bergaya panggilan) setiap kali aturan peringatan Anda menyala.
Prasyarat
- Akun Echobell dengan setidaknya satu saluran yang sudah dibuat
- Instalasi Prometheus + Alertmanager yang sedang berjalan
- Akses untuk mengubah konfigurasi Alertmanager Anda (alertmanager.yml)
Ringkasan Penyiapan
- Buat saluran Echobell
- Konfigurasikan templat notifikasi (dan Templat Tautan opsional)
- Pilih metode integrasi:
- Webhook lewat webhook receiver Alertmanager (disarankan)
- Email lewat email receiver Alertmanager (alternatif)
- Buat atau perbarui aturan peringatan
- Uji dan sempurnakan
Panduan Langkah demi Langkah
Buat Saluran Echobell
- Buka aplikasi Echobell
- Buat saluran baru (misalnya, "Prometheus Alerts")
- Pilih warna agar mudah dikenali
Konfigurasikan Templat Notifikasi
Payload webhook Alertmanager berisi field terstruktur seperti status, commonLabels, commonAnnotations, externalURL, dan array alerts. Anda bisa merujuk field-field ini langsung di templat Echobell.
Templat yang disarankan:
Templat judul:
{{commonLabels.alertname}} - {{status}}
Templat isi:
🔔 Alert: {{commonLabels.alertname}}
📊 Severity: {{commonLabels.severity}}
🖥️ Instance: {{alerts[0].labels["instance"]}}
⏰ Starts: {{alerts[0].startsAt}}
ℹ️ Summary: {{commonAnnotations.summary}}
🧾 Description: {{commonAnnotations.description}}
Templat Tautan opsional (Pengaturan Lanjutan):
{{alerts[0].generatorURL || externalURL}}
Ini menampilkan tautan langsung ke grafik atau dasbor yang sedang menyala di dalam catatan peringatan Anda. Kalau generatorURL tidak ada, nilainya jatuh ke externalURL.
Metode Integrasi A — Webhook (Disarankan)
- Di saluran Echobell Anda, salin URL Webhook dari bagian Pemicu
- Di Alertmanager, tambahkan webhook receiver yang mengirim POST ke URL itu
Contoh alertmanager.yml minimal:
route:
receiver: echobell-webhook
receivers:
- name: echobell-webhook
webhook_configs:
- url: "https://hook.echobell.one/t/<channel-token>"
send_resolved: true
http_config:
follow_redirects: trueCatatan:
- send_resolved: true juga akan memberi tahu saat peringatan pulih (status menjadi resolved)
- Echobell membaca body JSON apa adanya, jadi templat di atas akan dirender dengan benar
Metode Integrasi B — Email (Alternatif)
Kalau Anda lebih suka atau memang harus memakai email, gunakan email receiver Alertmanager dan kirim ke alamat email yang terikat pada saluran tersebut.
- Di Echobell, salin alamat email saluran dari bagian Pemicu
- Konfigurasikan email receiver di Alertmanager dan pakai templat sederhana
Contoh potongan konfigurasi:
receivers:
- name: echobell-email
email_configs:
- to: "PASTE_CHANNEL_EMAIL_ADDRESS"
send_resolved: true
subject: "{{ .CommonLabels.alertname }} - {{ .Status }}"
html: |
<p><strong>Summary:</strong> {{ .CommonAnnotations.summary }}</p>
<p>{{ .CommonAnnotations.description }}</p>
<p>
<a href='{{ (index .Alerts 0).GeneratorURL }}' target='_blank' rel='noopener'>Open in Prometheus</a>
</p>Di templat Echobell untuk pemicu email, Anda bisa memakai variabel seperti subject, text, dan html yang disediakan Echobell secara otomatis.
Buat Contoh Aturan Peringatan
Berikut contoh aturan sederhana untuk menguji alurnya:
groups:
- name: example
rules:
- alert: HighCPU
expr: avg(rate(process_cpu_seconds_total[5m])) > 0.8
for: 2m
labels:
severity: critical
annotations:
summary: "High CPU usage"
description: "CPU has been over 80% for 2 minutes"Begitu peringatan ini menyala, Alertmanager akan mengirim peristiwanya ke receiver yang Anda konfigurasikan dan Echobell akan memberi tahu para pelanggan saluran tersebut.
Menguji Integrasi
- Turunkan ambang batas untuk sementara atau buat peringatan uji coba yang cepat menyala
- Pastikan Anda menerima notifikasi Echobell saat peringatan itu menyala
- Kalau Anda memakai Templat Tautan, buka catatannya lalu ketuk tautannya
- Pulihkan peringatan tersebut dan pastikan Anda menerima notifikasi pemulihannya (kalau diaktifkan)
Memilih Jenis Notifikasi
- Peka Waktu: gangguan produksi yang kritis, insiden setingkat paging
- Panggilan: gangguan parah yang mengharuskan Anda terbangun atau menembus mode fokus
- Normal: peringatan rutin, peringatan ringan, atau pemberitahuan informatif
Praktik Terbaik
- Buat templat yang ringkas tetapi informatif (nama peringatan, tingkat keparahan, instance, ringkasan)
- Gunakan Templat Tautan untuk langsung melompat ke grafik atau dasbor yang relevan
- Kelompokkan dan arahkan peringatan di Alertmanager agar tidak berisik dan melelahkan
- Sertakan label severity dan pakai jenis notifikasi Echobell yang sesuai tingkat urgensinya
- Jaga URL webhook Echobell Anda seperti rahasia; ganti kalau sampai bocor
Pemecahan Masalah
Kalau peringatan tidak muncul di Echobell:
- Pastikan URL webhook atau alamat email salurannya benar
- Pastikan saluran Echobell aktif dan punya pelanggan
- Periksa log Alertmanager untuk melihat kesalahan pengiriman
- Pastikan route di alertmanager.yml benar-benar mengarah ke receiver yang dimaksud
- Uji dengan satu aturan peringatan sederhana
- Kalau memakai email, pastikan pengaturan SMTP Anda berfungsi dan emailnya benar-benar terkirim
Privasi dan Penanganan Data
Echobell mengutamakan privasi:
- Isi notifikasi tetap berada di perangkat Anda
- Hanya data konfigurasi minimal yang disimpan di server
- URL webhook dan alamat email saluran sebaiknya diperlakukan sebagai rahasia
- Echobell tidak menyimpan payload peringatan Anda di servernya