Ab Nagios 2.x stehen die meisten Makros auch als Environment Variable zur Verfügung. Will man z.B. ein Script schreiben das eine Mail oder SMS versendet, so muss man nicht jeden Wert über Parmameter an das Script übergeben.
Wenn Nagios einen neuen Prozess startet und das passiert immer bei Checks, Event Handlern, Notifications usw. sind für diesen Prozess einige sehr intressante Environment Variablen verfügbar.
Ich habe in mein Script das die Performance Daten verarbeitet mal folgende Zeile hinzu gefügt.
set | grep -i nagios > /tmp/nagios_env.txt
Damit werden alle Variablen ausgegeben die im Namen „nagios“ enthalten und in der Datei /tmp/nagios_env.txt gespeichert.
Lasst euch mal überraschen was da alles so zu Tage kommt.
Beispiel:
NAGIOS_COMMANDFILE=/usr/local/nagios/var/rw/nagios.cmd NAGIOS_COMMENTDATAFILE=/usr/local/nagios/var/comments.dat NAGIOS_CONTACTALIAS= NAGIOS_CONTACTEMAIL= NAGIOS_CONTACTNAME= NAGIOS_CONTACTPAGER= NAGIOS_DATE=15-12-2005 NAGIOS_DOWNTIMEDATAFILE=/usr/local/nagios/var/downtime.dat NAGIOS_HOSTACKAUTHOR= NAGIOS_HOSTACKCOMMENT= NAGIOS_HOSTACTIONURL= NAGIOS_HOSTADDRESS=xxx.xxx.xxx.xxx NAGIOS_HOSTALIAS=server NAGIOS_HOSTATTEMPT=1 NAGIOS_HOSTCHECKCOMMAND=check-host-alive NAGIOS_HOSTCHECKTYPE=ACTIVE NAGIOS_HOSTDOWNTIME=0 NAGIOS_HOSTDURATION='0d 8h 6m 11s' NAGIOS_HOSTDURATIONSEC=29171 NAGIOS_HOSTEXECUTIONTIME=0.053 NAGIOS_HOSTGROUPALIAS=Netware-Server NAGIOS_HOSTGROUPNAME=Netware-Server NAGIOS_HOSTLATENCY=0.000 NAGIOS_HOSTNAME=pdz-hog NAGIOS_HOSTNOTES= NAGIOS_HOSTNOTESURL='/nagios/wiki/nagios.php?host=server' NAGIOS_HOSTOUTPUT='OK - pdz-hog.dierichs.de: rta 23.859ms, lost 0%' NAGIOS_HOSTPERCENTCHANGE=0.00 NAGIOS_HOSTPERFDATA='rta=23.859ms;200.000;500.000;0; pl=0%;40;80;;' NAGIOS_HOSTPERFDATAFILE= NAGIOS_HOSTSTATE=UP NAGIOS_HOSTSTATEID=0 NAGIOS_HOSTSTATETYPE=HARD NAGIOS_LASTHOSTCHECK=1134643201 NAGIOS_LASTHOSTDOWN=1134638699 NAGIOS_LASTHOSTSTATECHANGE=1134638814 NAGIOS_LASTHOSTUNREACHABLE=1134626082 NAGIOS_LASTHOSTUP=1134643201 NAGIOS_LASTSERVICECHECK=1134667980 NAGIOS_LASTSERVICECRITICAL=1134637246 NAGIOS_LASTSERVICEOK=1134667980 NAGIOS_LASTSERVICESTATECHANGE=1134637308 NAGIOS_LASTSERVICEUNKNOWN=0 NAGIOS_LASTSERVICEWARNING=0 NAGIOS_LOGFILE=/usr/local/nagios/var/nagios.log NAGIOS_LONGDATETIME='Thu Dec 15 18:33:05 CET 2005' NAGIOS_MAINCONFIGFILE=/usr/local/nagios/etc/nagios.cfg NAGIOS_NOTIFICATIONNUMBER= NAGIOS_NOTIFICATIONTYPE= NAGIOS_OBJECTCACHEFILE=/usr/local/nagios/var/objects.cache NAGIOS_PROCESSSTARTTIME=1134647502 NAGIOS_RESOURCEFILE=/usr/local/nagios/etc/resource.cfg NAGIOS_RETENTIONDATAFILE=/usr/local/nagios/var/retention.dat NAGIOS_SERVICEACKAUTHOR= NAGIOS_SERVICEACKCOMMENT= NAGIOS_SERVICEACTIONURL='/nagios/pnp/index.php?host=server&srv=df_image' NAGIOS_SERVICEATTEMPT=1 NAGIOS_SERVICECHECKCOMMAND='check_snmpdf!IMAGE!90!98' NAGIOS_SERVICECHECKTYPE=ACTIVE NAGIOS_SERVICEDESC=df_image NAGIOS_SERVICEDOWNTIME=0 NAGIOS_SERVICEDURATION='0d 8h 31m 17s' NAGIOS_SERVICEDURATIONSEC=30677 NAGIOS_SERVICEEXECUTIONTIME=3.087 NAGIOS_SERVICEGROUPALIAS= NAGIOS_SERVICEGROUPNAME= NAGIOS_SERVICELATENCY=0.313 NAGIOS_SERVICENOTES= NAGIOS_SERVICENOTESURL='/nagios/wiki/nagios.php?host=server&srv=df_image' NAGIOS_SERVICEOUTPUT='OK: 43% used in IMAGE' NAGIOS_SERVICEPERCENTCHANGE=0.00 NAGIOS_SERVICEPERFDATA='pct=43;90;98;0;100' NAGIOS_SERVICEPERFDATAFILE= NAGIOS_SERVICESTATE=OK NAGIOS_SERVICESTATEID=0 NAGIOS_SERVICESTATETYPE=HARD NAGIOS_SHORTDATETIME='15-12-2005 18:33:05' NAGIOS_STATUSDATAFILE=/usr/local/nagios/var/status.dat NAGIOS_TEMPFILE=/usr/local/nagios/var/nagios.tmp NAGIOS_TIME=18:33:05 NAGIOS_TIMET=1134667985 NAGIOS_TOTALHOSTPROBLEMS=3 NAGIOS_TOTALHOSTPROBLEMSUNHANDLED=0 NAGIOS_TOTALHOSTSDOWN=3 NAGIOS_TOTALHOSTSUNHANDLED=0 NAGIOS_TOTALHOSTSUNREACHABLE=0 NAGIOS_TOTALHOSTSUNREACHABLEUNHANDLED=0 NAGIOS_TOTALHOSTSUP=205 NAGIOS_TOTALSERVICEPROBLEMS=7 NAGIOS_TOTALSERVICEPROBLEMSUNHANDLED=5 NAGIOS_TOTALSERVICESCRITICAL=4 NAGIOS_TOTALSERVICESCRITICALUNHANDLED=4 NAGIOS_TOTALSERVICESOK=1532 NAGIOS_TOTALSERVICESUNKNOWN=0 NAGIOS_TOTALSERVICESUNKNOWNUNHANDLED=0 NAGIOS_TOTALSERVICESWARNING=3 NAGIOS_TOTALSERVICESWARNINGUNHANDLED=1
Jetzt mach euch mal Gedanken wie einfach es ist eigene Notification Scripte zu schreiben. Die Werte sind einfach da ! Das ganze printf Geraffel für notify-by-email in der misccommands.cfg ist nicht nötig.
In den eigenen Scripten kann man nun die Umgebungs Variable $NAGIOS_HOSTNAME verwenden. Nagios exportiert also alle Makros als ENV Variable und stellt ein „NAGIOS_“ vor den Makro Namen.
— pitchfork 16.12.2005 07:32