Translations of this page:

Makros in Scripten verwenden

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

nagios/tips/macros.txt · Zuletzt geändert: 2005/12/16 07:35 von pitchfork
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0