Episode ini membahas performa Zabbix: menyesuaikan cache dan jumlah worker seperti StartPollers dan StartTrappers, tuning database, menghitung NVP untuk capacity planning dan sizing, serta memonitor kesehatan Zabbix itu sendiri dengan internal checks.

Zabbix yang sehat hari ini belum tentu sehat saat jumlah host bertambah tiga kali lipat. Episode 17 ini membahas dua disiplin yang membuat Zabbix tetap kuat seiring pertumbuhan: performance tuning untuk memaksimalkan kapasitas yang ada, dan capacity planning untuk memperkirakan kebutuhan sebelum terjadi.
Keduanya bekerja bersama. Tuning mengoptimalkan parameter tanpa menambah hardware; capacity planning memberitahu kapan tuning tidak lagi cukup dan hardware harus ditambah. Di episode ini kalian juga belajar memonitor Zabbix menggunakan Zabbix — praktik yang memastikan server monitoring tidak menjadi titik buta terakhir di infrastruktur.
Zabbix server menyimpan data di berbagai cache di dalam memori. Ukuran cache menentukan berapa banyak data yang bisa ditangani sebelum tertulis ke database:
CacheSize: cache konfigurasi — host, item, dan trigger.HistoryCacheSize: buffer history yang menunggu ditulis ke database.TrendCacheSize: buffer data trend.ValueCacheSize: cache nilai item untuk mempercepat query.CacheSize=128M
HistoryCacheSize=64M
ValueCacheSize=64MUkuran yang tepat bergantung volume data. Pantau penggunaan cache melalui internal checks — jika cache hampir penuh secara konsisten, naikkan angkanya.
Jumlah proses worker menentukan paralelisme collection. Parameter yang paling sering disesuaikan:
StartPollers: worker untuk passive check dan SNMP.StartTrappers: worker yang menerima data dari agent aktif dan proxy.StartPollersUnreachable: worker khusus untuk host yang tidak terjangkau.zabbix_server --config /etc/zabbix/zabbix_server.conf | grep -i startPerintah zabbix_server --config ... | grep -i start menampilkan nilai parameter worker saat ini. Aturan sederhana: tambah worker sampai tidak ada antrean data — ditandai metrik queue mendekati nol — lalu berhenti.
Database adalah bottleneck paling umum pada Zabbix besar. Beberapa penyesuaian yang sering memberikan dampak besar:
innodb_buffer_pool_size) atau shared_buffers PostgreSQL agar porsi besar database berada di memori.MySQL: innodb_buffer_pool_size ~ 70% dari RAM yang dialokasikan
PostgreSQL: shared_buffers ~ 25% dari RAM yang dialokasikanAngka di atas adalah titik mulai, bukan rumus final. Ukur performa nyata dan sesuaikan berdasarkan observasi, bukan asumsi.
NVP (new values per second) adalah metrik paling penting untuk sizing Zabbix — jumlah nilai baru yang masuk per detik. Rumusnya sederhana:
NVP = (jumlah item yang dikumpulkan) / (interval rata-rata dalam detik)Contoh: 6000 item dengan interval rata-rata 60 detik menghasilkan 100 NVP. Jika setengahnya memakai active check, NVP efektif turun — agent aktif lebih efisien karena server tidak menunggu koneksi.
Panduan hardware resmi Zabbix memberikan perkiraan per tingkatan NVP:
10 ribu NVP → 2 vCPU, 4 GB RAM
30 ribu NVP → 4 vCPU, 8 GB RAM
70 ribu NVP → 8 vCPU, 16 GB RAM
160 ribu NVP → 16 vCPU, 32 GB RAMUntuk 1000 host dengan rata-rata 500 item per host dan interval 60 detik, NVP sekitar 8000 — masih nyaman di tingkatan pertama. 10 ribu host melonjak ke puluhan ribu NVP dan butuh beberapa server atau proxy yang terdistribusi.
Zabbix menyediakan item internal untuk memonitor dirinya sendiri: zabbix[queue] menunjukkan data yang belum diproses, zabbix[history] dan zabbix[trends] mengukur kecepatan tulis database, dan zabbix[process,<type>] memantau worker.
zabbix[queue] → antrean data yang menunggu diproses
zabbix[process,history] → kecepatan tulis history per detik
zabbix[stats,127.0.0.1,10051] → statistik server secara keseluruhanMetrik zabbix[stats,127.0.0.1,10051] memberikan gambaran kesehatan server dalam satu item. Gabungkan item internal dengan template "Zabbix Server" resmi — template ini sudah berisi item dan trigger untuk memonitor server itu sendiri.
Tip
Selalu pasang template "Zabbix Server" pada host server Zabbix. Monitoring yang tidak memonitor dirinya sendiri akan gagal justru pada saat paling dibutuhkan.
Urutan yang disarankan saat performa menurun:
Episode 17 membuat Zabbix siap tumbuh: cache dan worker disesuaikan lewat zabbix_server.conf, database di-tuning untuk menghindari bottleneck, NVP menjadi dasar capacity planning, dan internal checks menjaga Zabbix tetap bisa memonitor dirinya sendiri.
Inti yang harus dibawa pulang:
Di episode 18 selanjutnya kita akan membahas advanced templates dan integrations — integrasi webhook resmi seperti PagerDuty, Slack, dan Jira, push data ke Prometheus, custom plugin agent2, dan ekspor-impor template YAML.