Alertmanager telah menjadi tool standar untuk mengelola alert dari Prometheus. Salah satu kanal notifikasi yang semakin populer adalah Telegram, berkat kemudahan akses dan fitur grup yang efektif.
Artikel ini akan membahas cara mengirimkan notifikasi Alertmanager ke chat Telegram dengan mudah.
Mengapa Telegram untuk Notifikasi Alert?
Telegram menawarkan beberapa keunggulan sebagai kanal notifikasi monitoring:
- Aksesibilitas tinggi, tersedia di berbagai platform (mobile, desktop, web)
- Fitur grup yang powerful, Mendukung hingga 200.000 anggota
- API yang mudah diintegrasikan
- Notifikasi real-time dengan dukungan multimedia
- Biaya nol untuk user basic
Install Alertmanager dan Configuration
Silahkan download prometheus alertmanager, lalu extract.
cd /opt
sudo wget https://github.com/prometheus/alertmanager/releases/download/v0.30.0/alertmanager-0.30.0.linux-amd64.tar.gz
sudo tar -zxvf alertmanager-0.30.0.linux-amd64.tar.gz
Masuk ke directory alertmanager, lalu jalankan perintah ls -la pastikan ada file alertmanager
cd alertmanager-0.30.0.linux-amd64
Buat directory alertmanager di /var/lib/
sudo mkdir /var/lib/alertmanager
sudo chown -R alertmanager:alertmanager /var/lib/alertmanager
Membuat Bot Telegram dan Group
Login pada aplikasi telegram Desktop, pada kolom pencarian ketikan “BotFather“, lalu klik dan Start.

Jalankan perintah /newbot, masukan nama bot contoh disini “Alerting Prometheus” dan username bot yang akan dibuat username_bot.
Simpan Token to Access HTTP API, untuk digunakan di configuration alertmanager.

Selanjutnya membuat group telegram dengan anggota bot yang sebelumnya kita buat, nama grup yang saya buat “Alerting Prometheus“.
Masukan bot yang sebelumnya dibuat dengan BotFather yaitu “Alerting Prometheus“dan “Getmyid_bot” fungsinya untuk melihat group id.

Saat menambahkan bot Getmyid_bot secara otomatis running bot Get My ID pada group telegram, informasi yang akan kita dapat Your ID dan Current Chat ID (Group ID). Lalu amankan group id pada notepad, yang akan digunakan pada configuration alertmanager.

Configuration Alertmanager
Backup file default configuration alertmanager dan buka dengan editor.
sudo cp alertmanager.yml alertmanager.yml.bak
sudo nano /opt/alertmanager-0.30.0.linux-amd64/alertmanager.yml
Hapus configuration default alertmanager, ganti dengan script dibawah. Masukan bot_token dari BotFather yang sebelumnya dibuat dan GroupID.
global:
# waktu sebuah alert dari “firing” ditandai sebagai “resolve”
resolve_timeout: 1mroute:
# wajib ada default receiver
receiver: default-telegram# grouping
group_wait: 3s
group_interval: 20s
repeat_interval: 20s
group_by: [ alertname ]routes:
– matchers:
# jika ada alert yang mempunyai label ini,
# maka akan mengirikan notifikasi ke receiver
– severity=”critical”
receiver: default-telegram# konfigurasi reciver telegram bot
receivers:
– name: default-telegram
telegram_configs:
– bot_token: Token_BotFather
chat_id: –GroupID

Membuat Systemd Service Alertmanager
Buat user, hanya digunakan untuk menjalankan serivce grafana
sudo useradd –no-create-home –shell /bin/false alertmanager
Buat sebuah file service unit alertmanager
sudo nano /etc/systemd/system/alertmanager.service
Masukan script dibawah
[Unit]
Description=Alert Manager
Wants=network-online.target
After=network-online.target[Service]
Type=simple
User=alertmanager
Group=alertmanager
ExecStart=/opt/alertmanager-0.30.0.linux-amd64/alertmanager \
–config.file=/opt/alertmanager-0.30.0.linux-amd64/alertmanager.yml \
–storage.path=/var/lib/alertmanager
Restart=always[Install]
WantedBy=multi-user.target
Ubah user dan group pada directory alertmanager-0.30.0.linux-amd64 menjadi alertmanager
sudo chown -R alertmanager:alertmanager /opt/alertmanager-0.30.0.linux-amd64
Reload Systemd dan Start Alertmanager
Setelah membuat service alertmanager, selanjutnya muat ulang systemd, mengaktifkan dan menjalankan.
sudo systemctl daemon-reload
sudo systemctl enable alertmanager
sudo systemctl start alertmanager

Configuration Prometheus Rule
Buat file rule alertmanager pada directory prometheus.
sudo nano /opt/prometheus-3.8.1.linux-amd64/rule-cpu-50-percent.yml
Masukan script dibawah, artinya ketika cpu menyentuh 50% alertmanager akan mengirimkan notifikasi ke group telegram.
groups:
– name: semua server
rules:
– alert: CPU 50 persen
expr: ((sum by(instance) (irate(node_cpu_seconds_total{mode!=”idle”}[15s])) / sum by (instance) ((irate(node_cpu_seconds_total{}[15s])))) * 100) >= 50
for: 30s # kurun waktu untuk sebuah expresi dianggap valid
labels:
# label ini penting untuk mapping notifikasi di Alertmanager
severity: critical
annotations:
# berisi informasi dari sebuah alert
summary: CPU nyentuh 50% selama 30 detik terkahir gan!!!

Buka file configuration prometheus, tambahkan rule alerting untuk mengirimkan ke alertmanager. Secara default menggunakan port 9093.
# konfigurasi rule monitoring
rule_files:
– ‘rule-cpu-50-percent.yml’ # berupa file# jika sebuah rule terpenuhi maka akan mengirimakan alert ke Alertmanager
alerting:
alertmanagers:
– static_configs:
– targets: [‘localhost:9093’]

Tambahkan script rule interval di configuration prometheus dan berjalan setiap 3 detik.
evaluation_interval: 3s # waktu interval evaluasi dari setiap rule monitoring

Jalankan ulang service prometheus
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl status prometheus
Akses dashboard Alertmanager pada browser http://IP_Public:9093, pastikan muncul.

Cek Rule yang sebelumnya kita buat rule-cpu-50-percent.yml, pastikan terbaca pada Prometheus menu Alerts. Secara default status INACTIVE.

Sebuah rule statusnya akan menjadi PENDING jika sesuai dengan kondisi yang ditentukan. Sedangkan sebuah rule status akan menjadi FIRING jika selama Waktu yang ditentukan di for element terpenuhi.


Pengujian Alertmanager dengan Stress Test CPU
Install terlebih dahulu tools stree test dengan perintah sudo apt install stress-ng, tunggu sampai proses selesai. Ada 2 perintah yang bisa digunakan yaitu single core dan multi sesuaikan dengan jumlah processor yang digunakan, untuk timeout bisa disesuaikan dengan configuration alertmanager resolve_timeout: 1m.
Multi Core dengan Durasi Stress CPU 1 Menit
stress-ng –cpu-load 55 –timeout 60
Custom Core dengan Durasi Stress CPU 1 Menit
stress-ng –cpu-load 55 –timeout 60 –cpu 0

Saat menjalankan tools stress-ng, CPU langsung spike 50% seperti contoh gambar dibawah.


Alert Telegram Dashboard Alertmanager
Tips Rule Alert
Saat kita membuat rule monitoring di Prometheus, kita menggunakan >= (Lebih besar sama dengan), untuk menetukan nilai yang kita inginkan. Sebenarnya secara tidak langsung kita sudah menggunakan Comparison Binary Operator.

Alertmanager mengirimkan notifikasi ke group telegram “Alerting Prometheus”

Mengintegrasikan Alertmanager dengan Telegram memberikan fleksibilitas dan aksesibilitas yang tinggi untuk tim operations.
Dengan konfigurasi yang tepat dan template yang informatif, notifikasi monitoring dapat menjadi lebih efektif dan mengurangi waktu respons terhadap insiden.
Setup ini tidak hanya meningkatkan visibilitas terhadap sistem, tetapi juga memungkinkan kolaborasi tim yang lebih baik melalui fitur grup Telegram.
Mulailah dengan konfigurasi dasar, lalu kembangkan sesuai kebutuhan spesifik lingkungan.

