Portál AbcLinuxu, 11. prosince 2025 12:09
define command {
command_name my_papouch_teplota
command_line /papouch.py '$HOSTADDRESS$' '$ARG1$' '$ARG2$': -w '$ARG2$': -c '$ARG3$': -l 'Vystup: ' -u $HOSTOUTPUT$
}
define service {
hostgroup_name papouchy
service_description Teplota
check_command my_papouch_teplota!15!45
use generic-service
}
Vse funguje jak ma s tim rozdilem ze kdyz si zobrazim webove rozhrani nagis-u tak v Service datail ve sloupci Status information vidim napsano (null), viz. prilozeny obrazek. Ja bych tam potreboval napsat neco jako Teplota je v poradku atd. nevite nekdo jak na to ?
Řešení dotazu:
print "Teplota v pořádku" sys.exit(0)
Mimo to, použití makra $HOSTOUTPUT$ bych si dovedl představit v definici příkazu pro odeslání mailu o stavu hosta. Snad by měl ten command_line skončit hned za '$ARG2$'.
Ukládat si plugin pro nagios do kořenového adresáře je poněkud netradiční.
#!/usr/bin/python
import sys
import os
import commands
host = sys.argv[1]
warn_value = int(sys.argv[2])
crit_value = int(sys.argv[3])
ret = { 'OK' : 0 , 'WARNING' : 1, 'CRITICAL' : 2 , 'UNKNOWN' : 3}
status, output = commands.getstatusoutput('/usr/bin/snmpwalk -Ov -c public -v 1 ' + host + ' .1.3.6.1.4.1.18248.20.1.2.1.1.2.1')
if status != 0:
print output
sys.exit(ret["UNKNOWN"])
deftype, val = output.split(':')
temp = float(val) / 10
if temp >= warn_value:
if temp >= crit_value:
print 'To je kriticke'
sys.exit(ret["CRICITAL"])
else:
print 'To je varovani'
sys.exit(ret["WARNING"])
print 'No a to je ok'
sys.exit(ret["OK"])
Do korenoveho adresare sem jej prilozil jen kvuli testovani, pujde pak na spravne misto.
define command {
command_name my_papouch_teplota
command_line /papouch.py '$HOSTADDRESS$' '$ARG1$' '$ARG2$': -w '$ARG2$': -c '$ARG3$'
}
Problem vsak presto pretrvava.
command_line /papouch.py $HOSTADDRESS$ $ARG1$ $ARG2$
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.