Zabbix templateları aracılığı ile çoğu zaman istediğmiz bilgileri alabilmekteyiz. Ancak bazen SNMP templatelarının veya agent üzerinden dönen veriler bizler için yeterli olmayabiliyor. Mesela cihaz üzerinde en çok CPU kullanan processlerin listesini item olarak dönebilmek nasıl olurdu, beraber yapalım :)
1. Agent yüklü Olan Cihaz Üzerinde Script Oluşturma
#!/bin/bash
echo " PID MEM CPU" && ps -eo pid,%mem,%cpu --sort=-%cpu | awk '$3 > 0.5'
Kaydettikten sonra scriptimize çalıştırma yetkisi verelim
chmod +x process.sh
2. Agent Konfigürasyon Dosyasını Düzenleyelim
Favori editörünüz ile /etc/zabbix/zabbix_agent.conf dosyasına girelim ve konfigürasyon dosaysının en alt satırına oluşturduğumuz script dosaysını belirtelim.
UserParameter=system.process[*],/etc/zabbix/scripts/process.sh
Buradaki system.process adını verdiğim değişken aslında zabbix üzerinde görünecek olan item adı.
Not: Düzenli olması açısından scriptimi /etc/zabbix altında oluşturduğum scripts adındaki klasöre yerleştirdim.
3. Zabbix agent servisini yeniden başlatalım
systemctl restart zabbix-agent.service
4. Zabbix Web arayüzü üzerinden istediğimiz item/ları istediğimiz Host veya Template içine ekleyelim
Item ayarlarını yukarıdaki gibi ayarladığımda aşağıdaki gibi sonuçlarını listeleyebilmekteyiz :)