Belajar Zabbix - Items, Data Collection & Preprocessing
Episode 6 of 23

Belajar Zabbix - Items, Data Collection & Preprocessing

Episode ini membedah item sebagai unit dasar data collection: jenis-jenis item mulai dari agent, SNMP, ICMP, hingga HTTP agent, pemahaman keys dan interval, serta preprocessing untuk menormalkan data mentah dengan JavaScript, JSONPath, dan multiplier.

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

Pendahuluan

Di episode 5 kalian menautkan template dan host mulai menghasilkan data. Episode 6 ini mengajak kalian turun satu tingkat — ke item, unit paling dasar dari seluruh Zabbix. Item menentukan apa yang diukur, dari mana datanya, dan seberapa sering. Memahami item berarti memahami bagaimana Zabbix berbicara dengan dunia.

Kita juga akan membahas preprocessing, salah satu fitur yang paling sering diremehkan padahal paling menentukan kualitas data. Data mentah dari aplikasi jarang langsung siap dipakai: JSON perlu di-extract, satuan perlu dikonversi, dan error perlu ditangani. Episode ini memberi kalian seluruh toolkit-nya.

Tipe Item dan Keys

Jenis Item yang Tersedia

Zabbix mendukung banyak tipe item untuk berbagai sumber data:

  • Zabbix agent: nilai dari agent, baik active maupun passive, memakai key seperti system.cpu.util.
  • SNMP: nilai dari perangkat network via OID, misalnya 1.3.6.1.2.1.1.1.0.
  • ICMP ping: ketersediaan host via icmpping, icmppingloss, icmppingsec.
  • IPMI: hardware health dari BMC server.
  • JMX: metrik Java aplikasi via JMX gateway.
  • HTTP agent: request HTTP untuk API dan website, dengan parsing JSON atau XML.
  • Database monitoring: query SQL langsung ke MySQL atau PostgreSQL.
  • zabbix_sender: nilai yang dikirim oleh skrip eksternal.
Tes key agent dari baris perintah
zabbix_get -s 192.168.1.20 -k system.cpu.util[,user]

Perintah zabbix_get -s ... -k system.cpu.util[,user] mengeksekusi key agent untuk CPU user usage. Setiap tipe item punya key dan sintaks argumen sendiri — kebiasaan mengetes key dengan zabbix_get akan menghemat waktu troubleshooting.

Struktur Key

Sebuah key terdiri dari nama dan argumen yang dipisahkan koma, contoh system.cpu.util[avg1]. Argumen bisa berisi parameter seperti interval atau format. Untuk SNMP, alih-alih key, kalian menentukan OID dan tipe data dari hasil query. Memahami struktur key adalah prasyarat untuk membuat item manual dan custom template.

Interval dan Waktu Hidup Data

Interval Collection dan Interval Custom

Setiap item punya interval default — template resmi biasanya memakai 1 menit. Kalian bisa menyesuaikan per item: item yang penting diperpendek, item yang jarang berubah diperpanjang. Interval yang terlalu pendek akan membebani server dan database, sedangkan yang terlalu panjang membuat data kurang responsif.

Kebijakan yang sehat adalah menetapkan interval default di template, lalu meng-override hanya untuk item yang benar-benar butuh. Seluruh item di satu host diwarisi dari template — kalian tidak perlu mengatur interval ratusan kali.

Preprocessing: Menormalkan Data Mentah

Mengapa Preprocessing Dibutuhkan

Data yang dikumpulkan jarang dalam bentuk ideal. Contoh nyata: sebuah API mengembalikan JSON dengan nilai CPU di dalam struktur bertingkat, atau skrip mengirim persentase sebagai string dengan tanda persen. Preprocessing adalah rantai langkah yang mengubah nilai mentah menjadi nilai yang siap disimpan dan dianalisis.

Langkah-langkah Preprocessing

Zabbix preprocessing mendukung banyak langkah yang bisa dirantai:

  • JavaScript: transformasi bebas memakai skrip JS.
  • JSONPath dan XML XPath: mengekstrak nilai dari dokumen terstruktur.
  • Custom multiplier: mengalikan atau membagi, misalnya mengubah byte menjadi megabyte.
  • Regular expression: mengekstrak atau menghapus bagian dari string.
  • Custom on fail: tindakan saat preprocessing gagal — misalnya set nilai konstan, mengabaikan, atau menandai error.
JSContoh preprocessing JavaScript
var data = JSON.parse(value);
return data.metrics.cpu.usage;

Skrip di atas mengekstrak cpu.usage dari JSON bertingkat. Di frontend, langkah preprocessing dikonfigurasi di form item — Zabbix mengeksekusi langkah secara berurutan, output langkah pertama menjadi input langkah berikutnya.

Contoh: Parsing JSON dari HTTP Agent

Kombinasi khas: item HTTP agent mengambil endpoint API, lalu preprocessing memakai JSONPath untuk mengambil satu field.

Response API yang diparsing
{
  "status": "ok",
  "metrics": {
    "cpu": 42.5,
    "memory": 61.3
  }
}

Untuk mengambil nilai cpu, JSONPath yang dipakai adalah $.metrics.cpu. Item tipe HTTP agent dengan URL endpoint plus langkah preprocessing JSONPath akan menghasilkan angka 42.5 yang siap dijadikan basis trigger. Ini pola yang sangat umum untuk monitoring aplikasi modern berbasis API.

Warning

Jika preprocessing gagal, nilai yang dihasilkan bisa menjadi nol atau kosong dan memicu trigger palsu. Selalu set "Custom on fail" dengan hati-hati — mengabaikan data yang gagal diproses seringkali lebih aman daripada memaksa nilai nol.

Menghubungkan Item dengan Trigger

Nilai yang Siap Dinilai

Setelah preprocessing, nilai item bersih dan siap dievaluasi oleh trigger. Di episode 7, kalian akan menulis ekspresi seperti last(/host-key) terhadap nilai ini. Kualitas data yang dihasilkan item sangat menentukan keandalan seluruh rantai alerting — item yang kotor menghasilkan trigger yang gampang salah alarm.

Latency dan Internal Checks

Jangan lupa memantau proses collection itu sendiri. Item internal Zabbix seperti zabbix[queue] atau zabbix[internal,history] menunjukkan kesehatan pipeline data. Kebiasaan memantau item internal ini akan sangat membantu saat episode 17 membahas capacity planning dan performance tuning.

Penutup

Episode 6 mengupas unit terkecil Zabbix: jenis-jenis item dari agent hingga HTTP agent, struktur key dan interval, serta preprocessing yang mengubah data mentah menjadi nilai bersih melalui JavaScript, JSONPath, XPath, dan multiplier.

Inti yang harus dibawa pulang:

  • Item adalah unit data collection; tipe menentukan sumber dan cara membaca.
  • Key dengan argumen adalah bahasa item, contoh system.cpu.util[,user].
  • Interval yang bijak: default di template, override per item.
  • Preprocessing merantai langkah untuk menormalkan data mentah.
  • JSONPath dan JavaScript adalah senjata utama menghadapi API modern.

Di episode 7 selanjutnya kita akan membahas triggers, events, dan problem detection — menulis expression builder dengan last(), avg(), change(), dan count(), memahami severity, serta siklus hidup event dari problem hingga recovery.

Belajar Zabbix - Items, Data Collection & Preprocessing | Belajar Zabbix