Belajar Zabbix - Advanced Templates & Integrations
Episode 18 of 23

Belajar Zabbix - Advanced Templates & Integrations

Episode ini membahas integrasi dan template tingkat lanjut: webhook resmi untuk PagerDuty, Slack, Teams, dan Jira, push data ke Prometheus, custom plugin agent2 dan custom check Python, serta ekspor-impor template YAML.

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

Pendahuluan

Zabbix tidak beroperasi sendirian. Dalam arsitektur nyata, Zabbix berdampingan dengan on-call platform, sistem ticketing, dan stack observability lain. Episode 18 ini membahas dua kemampuan yang membuat Zabbix menjadi warga ekosistem yang baik: integrasi dengan layanan eksternal dan template lanjutan untuk kebutuhan yang tidak tercakup library resmi.

Di episode 8 kalian menyentuh webhook. Episode ini memperdalamnya: integrasi resmi dengan platform on-call dan ticketing, plus pola untuk mengirim metrik ke Prometheus. Di bagian kedua, kalian membangun di atas fondasi template dari episode 5 — membuat custom plugin dan custom check yang benar-benar milik kalian sendiri.

Integrasi Webhook Resmi

Platform On-Call dan Chat

Zabbix menyediakan media types resmi untuk PagerDuty, Slack, Microsoft Teams, Telegram, dan VictorOps. Masing-masing tinggal dikonfigurasi dengan token atau webhook URL dari layanan tersebut. PagerDuty, misalnya, memetakan severity Zabbix ke severity insiden PagerDuty dan otomatis membuat insiden saat masalah muncul.

Parameter media PagerDuty
PagerDuty service key / routing key
Integration key dari layanan PagerDuty

Ketika alarm High menyala, PagerDuty menerima payload berisi host, trigger, dan severity — lalu menangani on-call rotation dan eskalasi di sisi PagerDuty.

Jira dan ServiceNow

Untuk menghubungkan masalah dengan workflow, Zabbix menyediakan integrasi Jira dan ServiceNow. Saat masalah terjadi, tiket otomatis dibuat; saat masalah pulih, tiket ditutup. Ini menghilangkan kerja manual ganda antara monitoring dan ticketing. Pastikan token Jira memiliki izin membuat isu di project yang dituju sebelum mengaktifkan integrasi.

Tip

Saat mengonfigurasi integrasi, uji di environment staging terlebih dahulu. Sebagian besar kegagalan integrasi bukan pada Zabbix, melainkan pada token yang salah scope atau payload yang tidak sesuai ekspektasi layanan tujuan.

Push ke Prometheus

Zabbix Sebagai Sumber Metrik

Arsitektur observability modern sering menempatkan Prometheus sebagai penyimpan metrik utama. Zabbix bisa bertindak sebagai sumber: metrik yang dikumpulkan Zabbix di-push ke Prometheus via remote write atau endpoint scrape. Item internal Zabbix juga tersedia untuk di-export, sehingga Prometheus melihat status kesehatan Zabbix.

Alur push Zabbix ke Prometheus
Zabbix collection → remote write / scrape endpoint → Prometheus

Dengan pola ini, tim yang sudah memakai Prometheus dan Grafana tetap bisa memanfaatkan keunggulan agent-based Zabbix tanpa mengganti stack metrik mereka.

Template dan Custom Check Lanjutan

Custom Plugin Agent2

Agent2 memiliki arsitektur plugin-based. Plugin ditulis dalam Go dan dimuat sebagai binary plugin — dikonfigurasi lewat parameter Plugins.<nama> di zabbix_agent2.conf:

Konfigurasi plugin agent2
Plugins.MyPlugin.System.Path=/usr/lib/zabbix/plugins/myplugin
Plugins.MyPlugin.Timeout=3

Parameter Plugins.MyPlugin.System.Path memberi tahu agent2 di mana binary plugin berada. Plugin agent2 adalah jalur yang tepat untuk collection berperforma tinggi dengan bahasa Go.

Setelah binary diletakkan di path tersebut, restart agent2 agar plugin terbaca oleh proses. Verifikasi dengan zabbix_agent2 --print Plugins.MyPlugin untuk memastikan plugin muncul di daftar yang dimuat.

Custom Check dengan Python dan zabbix_sender

Untuk kebutuhan yang lebih fleksibel, tulis skrip Python dan kirim hasilnya dengan zabbix_sender — persis pola yang kalian pelajari di episode 4. Contoh skrip sederhana yang mengukur sesuatu secara custom:

PythonCustom check dengan zabbix_sender
import subprocess
import time
 
nilai = "42"
cmd = [
    "zabbix_sender", "-z", "192.168.1.10", "-p", "10051",
    "-s", "host-target-01", "-k", "custom.check", "-o", nilai,
]
subprocess.run(cmd)

Skrip di atas mengirim nilai 42 untuk key custom.check. Dengan zabbix_sender pada baris akhir skrip, hasil kalkulasi apa pun di host bisa masuk ke Zabbix sebagai item — jalur ini membuka tak terbatas kemungkinan custom monitoring. Jalankan skrip secara berkala lewat cron, dan hasilnya muncul sebagai item baru setiap interval; pastikan key yang dipakai sudah didefinisikan sebagai item di host target agar nilainya benar-benar tampil.

Ekspor-Impor Template YAML

Template Zabbix bisa di-export sebagai file YAML — cara terbaik untuk berbagi, versioning, dan memigrasikan template antar lingkungan:

Export template via API
curl -s -X POST http://localhost/api_jsonrpc.php \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"configuration.export","params":{"options":{"templates":["<templateid>"]},"format":"yaml"},"id":1,"auth":"<token>"}'

Perintah curl -s -X POST http://localhost/api_jsonrpc.php memanggil configuration.export untuk mengunduh template sebagai YAML. File hasil bisa di-import ulang di server lain dan di-review sebagai bagian dari pull request.

Praktik Template yang Matang

Beberapa kebiasaan yang membuat library template tetap sehat:

  • Versioning: simpan semua template YAML di git dengan pesan commit yang jelas.
  • Satu template, satu tanggung jawab: pisahkan OS, aplikasi, dan custom check.
  • Dokumentasikan macro di dalam template agar pengguna tahu nilai yang harus diisi.
  • Uji template di satu host sebelum menautkan ke seluruh fleet.

Penutup

Episode 18 menghubungkan Zabbix dengan ekosistem: integrasi webhook resmi untuk on-call dan ticketing, push metrik ke Prometheus, custom plugin agent2 dan custom check Python, serta ekspor-impor template YAML untuk workflow berbasis git.

Inti yang harus dibawa pulang:

  • Integrasi resmi membungkus webhook untuk PagerDuty, Slack, Teams, dan Telegram.
  • Jira dan ServiceNow menghubungkan masalah dengan alur ticketing.
  • Zabbix bisa menjadi sumber metrik untuk Prometheus.
  • Plugin agent2 memakai Go; custom check fleksibel memakai Python dan zabbix_sender.
  • Export template YAML mendukung versioning dan migrasi antar lingkungan.

Di episode 19 selanjutnya kita akan membahas observability: log monitoring dan business metrics — item log dan logrt untuk parsing log, analisis log ala fail2ban, serta business service dengan SLI/SLO dan weighted service metrics.