Belajar Zabbix - Auto-registration & Discovery
Episode 11 of 23

Belajar Zabbix - Auto-registration & Discovery

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.

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

Pendahuluan

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.

Network Discovery

Konsep Discovery Rule

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.

Discovery dengan SNMP, Agent, dan IP Range

Tiga service yang paling sering dipakai:

  • Zabbix agent: probe ke port 10050 untuk menemukan host yang terpasang agent.
  • SNMP: probe SNMP v1, v2c, atau v3 untuk menemukan perangkat network.
  • ICMP ping: menemukan host yang hidup dalam satu rentang IP.
Contoh discovery rule
IP range:    192.168.1.1-254
Service:     Zabbix agent (port 10050)
Update interval: 1h

Hasil discovery adalah daftar host yang ditemukan dan dapat dipakai oleh discovery action untuk mendaftarkan host, menautkan host group, dan melampirkan template secara otomatis.

Auto-registration Action

Menghubungkan HostMetadata dan Kondisi

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:

Kondisi auto-registration
HostMetadata contains "system.uname:Linux" → template Linux
HostMetadata contains "k8s:worker"        → template Kubernetes

Mekanisme ini memungkinkan satu cara deployment untuk semua jenis host: tim provisioning cukup memasang agent dengan metadata yang benar, dan Zabbix melakukan sisanya.

Provisioning Host Baru Tanpa Frontend

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.

Simulasikan auto-registration dengan zabbix_sender
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 (LLD)

LLD di Level Template

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}:

Prototipe item LLD filesystem
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.

Macro JSON pada Hasil LLD

Hasil discovery adalah dokumen JSON yang berisi macro. Contoh hasil untuk network interface:

Hasil LLD 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.

Custom LLD

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:

Format JSON discovery custom
{"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.

Menggabungkan Ketiganya

Ketiga mekanisme ini bekerja sebagai satu pipeline provisioning:

Pipeline discovery end-to-end
network discovery → temukan perangkat → auto-registration → template
host baru masuk → agent aktif → metadata → auto-registration → template
template aktif → LLD → filesystem/interface/disk → item + trigger

Discovery 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.

Penutup

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:

  • Network discovery memindai IP range dan service untuk menemukan host baru.
  • Auto-registration mencocokkan metadata dengan kondisi dan mem-provisioning host.
  • LLD membuat item per entitas dinamis seperti filesystem dan interface.
  • Macro seperti {#FSNAME} menghubungkan prototipe dengan hasil JSON discovery.
  • Custom LLD memperluas discovery ke aplikasi dan container.

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.

Belajar Zabbix - Auto-registration & Discovery | Belajar Zabbix