Zabbix riasztás shell script kimenete alapján

Fórumok

Ahoj!

A feladat triviálisnak tűnik, de elakadtam:
Zabbix távolról futtasson egy paraméterezett shell scriptet, aminek csak hibaesetén van kimenete, ekkor a zabbixnak riasztania kell és a kimenetet elküldeni. Viszont nem találok rá példát és sehogy sem tudom az item és trigger párost úgy kombinálni, hogy az nekem jó legyen.
Hasonló példát sem nagyon találtam, ennyire triviális vagy így nem használja senki?

A megoldásra irányuló segítséget előre is kösz!

Hozzászólások

És arra kell figyelni, hogy a scriptet a zabbix agent fogja futtatni, azaz az ő nevében fog futni. Vagy sudo-zni kell, ami meg security kockázat.
Esetleg (fél) megoldás lehet, ha a kimenetet a script olyan fájlba írja, amit a zabbix user fel tud olvasni, és beküldi a szervernek.
--
PtY - www.onlinedemo.hu, www.westeros.hu

Googles kulcsszo: zabbix userparameter

Fontos, $-os parametereket a sajatjaival helyettesiti be. Ezert ez rossz lesz:
UserParameter=mysql.ping[*],mysqladmin -uroot ping| awk '{ print $1}'
Ehelyett:
UserParameter=mysql.ping[*],mysqladmin -uroot ping| awk '{ print $ 1 }'

(kodot elrontotta, de remelem ertheto)

Ez ugye zabbix userkent fog futni, kiveve ha elkoveted azt a hibat, hogy rootkent futtatod a zabbix-agentdt. ;)

Ami fontos, hogy a timeout kicsi. Meg server+agent configjaban folemelt timeout ertekeknel is (30sec).
Hajlamos network errort detektalni a szerver, ha nem valaszol az agent idoben.

De hasznalhatsz rosszabb megoldast is. Van ssh check, ami besshzik lefuttatja a scriptedet, es az echozott erteket meropontkent berakja.
Ami neked ugy jo ha a script vegere egy echo $? teszel.
Lehet user/passal autholni. Meg a szerveren levo zabbix user kulcsjaival is autholhatsz.
Ajanlom teszteleshez valid shellt adni a zabbix usernek, es akkor az ssh -i baratod.
Timeout problemat ezzel sem uszod meg. :)

Lassu scriptekhez meg zabbix_sendert kell hasznalni. Crontabbol futtatod a scriptet, es a vegen senderrel bekuldod.
Ekkor a meres tipusa a szerveren zabbix trapper. Erre googlizva talalsz leirast.
Senderben az is jo, hogy tobb meropontot is fol lehet olvasni filebol.

Alapvetoen nem jo ha egy script nem ad vissza semmit. Mert a hibas mukodest elfedi.

Nem kell turkalni. Fentebb irtam, hogy sshn is bemenetsz. Ehhez agent se kell.

Akkor kell csak a zabbix_agentd.conf-ban turkalni, ha nincs benne egy Include.
Mert ha van, akkor abban a directoryban eleg uj filet elhelyezni. Ujabb agentek ilyen konfiggal rendelkeznek.
Ez az, ami a agentd configba, vagy a conf.d dirben levo filebe irj:
UserParameter=kulcs[*],/teljes/vagyrelativ/ut/script $1 $2

Folvenni meropontnak a kulcs[param1,param2]
Triggert rakni ra. kulcs.strlen()>0
Az actionnal {ITEM.VALUE1} legyen az uzenetben.