Episode ini membahas provisioning otomatis di Zabbix: network discovery untuk menemukan perangkat baru lewat SNMP atau IP range, action auto-registration yang mendaftarkan host baru, serta low-level discovery (LLD) untuk filesystem, network interface, dan disk secara dinamis.

Di episode 5 kalian menambahkan host satu per satu, dan episode 10 memperkenalkan proxy untuk lokasi remote. Tapi menambahkan ratusan host secara manual adalah pekerjaan yang tidak boleh terjadi di tim yang sehat. Episode 11 ini mengajarkan Zabbix untuk menemukan dan mendaftarkan dirinya sendiri: discovery dan auto-registration.
Kali ini kita membahas dua lapis otomatisasi. Lapis pertama menemukan perangkat yang belum dikenal di jaringan. Lapis kedua mendaftarkan host baru dengan template yang tepat tanpa menyentuh frontend. Di tingkat lebih dalam, low-level discovery (LLD) membuat Zabbix beradaptasi dengan perubahan di dalam host — disk baru muncul, interface baru terdeteksi, dan item ikut tercipta sendiri.
Discovery rule memindai segmen jaringan secara berkala untuk menemukan perangkat baru. Zabbix mengirim probe ke rentang IP dan mencocokkan hasilnya dengan service yang dikonfigurasi — misalnya agent mendengarkan di port 10050, perangkat SNMP, atau jawaban ping ICMP.
Discovery dibuat di menu Data collection → Discovery. Setiap rule menentukan rentang IP, layanan yang dicek, interval, dan berapa lama hasil disimpan.
Tiga service yang paling sering dipakai:
IP range: 192.168.1.1-254
Service: Zabbix agent (port 10050)
Update interval: 1hHasil discovery adalah daftar host yang ditemukan dan dapat dipakai oleh discovery action untuk mendaftarkan host, menautkan host group, dan melampirkan template secara otomatis.
Konsep HostMetadata dari episode 5 kembali berperan. Saat agent baru pertama kali menghubungi server, metadata ini dikirim bersama hostname. Action auto-registration mencocokkan metadata dengan conditions untuk memutuskan perlakuan host baru:
HostMetadata contains "system.uname:Linux" → template Linux
HostMetadata contains "k8s:worker" → template KubernetesMekanisme ini memungkinkan satu cara deployment untuk semua jenis host: tim provisioning cukup memasang agent dengan metadata yang benar, dan Zabbix melakukan sisanya.
Saat kondisi action terpenuhi, server otomatis menjalankan operations: membuat host, menautkan host group, menambahkan interface, dan melampirkan template. Seluruhnya tercatat di frontend dan bisa diaudit lewat action log.
zabbix_sender -z 192.168.1.10 -p 10051 -s host-baru-01 \
-k zabbix.hostname -o "host-baru-01"Perintah zabbix_sender -z ... -p 10051 mengirim data seolah-olah berasal dari host baru — trik praktis untuk menguji alur auto-registration tanpa benar-benar memasang agent.
Low-level discovery bekerja di dalam template: Zabbix menjalankan proses discovery pada satu host, menemukan entitas dinamis, lalu membuat item, trigger, dan graph untuk setiap entitas yang ditemukan. Ini yang membuat template Linux mampu mendeteksi filesystem baru tanpa intervensi manual.
LLD prototipe item memakai pola key dengan {#MACRO}:
Key: vfs.fs.size[{#FSNAME},pfree]
Name: Free space on {#FSNAME}{#FSNAME} adalah macro yang diganti nilai sebenarnya dari hasil discovery — misalnya / atau /var. Dengan pola ini, satu prototipe menghasilkan satu item per filesystem.
Hasil discovery adalah dokumen JSON yang berisi macro. Contoh hasil untuk network interface:
{
"data": [
{ "{#IFNAME}": "eth0", "{#IFTYPE}": 1 },
{ "{#IFNAME}": "lo", "{#IFTYPE}": 1 }
]
}Kombinasi {#IFNAME} dan {#IFTYPE} memberi Zabbix cukup informasi untuk membuat item per interface. Memahami struktur macro ini adalah kunci untuk membuat LLD custom.
LLD tidak terbatas pada bawaan Zabbix. Kalian bisa membuat custom LLD: skrip atau agent item mengembalikan JSON berformat discovery, dan Zabbix mengubahnya menjadi item. Pola ini sering dipakai untuk service discovery khusus aplikasi. Contoh paling sederhana — skrip mengembalikan daftar container:
{"data":[{"{#NAME}":"nginx"},{"{#NAME}":"postgres"}]}Tip
Uji hasil LLD di menu Monitoring → Latest data dengan memfilter key yang diawali lld sebelum menautkan prototipe ke banyak host. Prototipe yang salah di template akan menggandakan kesalahan ke semua host yang menautkannya.
Ketiga mekanisme ini bekerja sebagai satu pipeline provisioning:
network discovery → temukan perangkat → auto-registration → template
host baru masuk → agent aktif → metadata → auto-registration → template
template aktif → LLD → filesystem/interface/disk → item + triggerDiscovery menemukan dunia luar, auto-registration mendaftarkan host, dan LLD menjaga host tetap terkini dari dalam. Pada skala ratusan host, pipeline ini adalah pembeda antara Zabbix yang dikelola dan Zabbix yang mengelola dirinya sendiri.
Episode 11 mengotomatiskan siklus hidup host: network discovery menemukan perangkat baru, auto-registration dengan HostMetadata mendaftarkan dan mengonfigurasi host, dan LLD membuat item mengikuti perubahan di dalam host lewat macro JSON.
Inti yang harus dibawa pulang:
{#FSNAME} menghubungkan prototipe dengan hasil JSON discovery.Di episode 12 selanjutnya kita akan membahas data management: history, trends, dan housekeeper — perbedaan data mentah dan agregasi per jam, pengaturan retention, serta partisi TimescaleDB untuk menyimpan data skala besar secara efisien.