1 nagios.cfg:
2 ===========
4 obsess_over_services=1
5 ocsp_command=ocsp2out
6 obsess_over_hosts=1
7 ochp_command=ochp2out
11 commands:
12 =========
14 define command {
15 command_name ocsp2out
16 command_line echo >>/tmp/nagixsc.spool/new/$TIMET$ LASTSERVICECHECK::$LASTSERVICECHECK$ HOSTNAME::\'$HOSTNAME$\' SERVICEDESC::\'$SERVICEDESC$\' SERVICESTATEID::$SERVICESTATEID$ SERVICEOUTPUT::\'$SERVICEOUTPUT$\' LONGSERVICEOUTPUT::\'$LONGSERVICEOUTPUT$\'
17 }
19 define command {
20 command_name ochp2out
21 command_line echo >>/tmp/nagixsc.spool/new/$TIMET$ LASTHOSTCHECK::$LASTHOSTCHECK$ HOSTNAME::\'$HOSTNAME$\' HOSTSTATEID::$HOSTSTATEID$ HOSTOUTPUT::\'$HOSTOUTPUT$\' LONGHOSTOUTPUT::\'$LONGHOSTOUTPUT$\'
22 }
25 Vorteile:
26 =========
28 - Anders als in der originalen Dokumentation wird NICHT noch eine Shell
29 gestartet, die die Return-Codes analysiert und dann mit Hilfe von "printf"
30 den String formatiert.
31 - Das Original-Skript ruft "send_nsca" direkt auf. Dies wiederum blockiert den
32 Nagios so lange, bis das NSCA-Netzwerkpaket verschickt werden konnte (Man
33 bedenke das Timeout, wenn der Server nicht erreicht werden kann).
34 Das Wegschreiben der Spool-Datei hier macht die von Nagios sowieso geforkte
35 und gestartete Shell. Die Blockierung des Nagios-Prozess (sollte) ist somit
36 minimal.
37 - Nagios schreibt mehrere Check-Ergebniss praktisch auf einmal weg (vgl.
38 Zeitstempel). NSCA schickt alle Pakete einzeln (für jedes einen
39 TCP-Handshake...), Nag(ix)SC packt die Ergebnisse aus einem Spool-File in
40 ein XML und schickt mehrere bis viele Check-Ergebnisse auf einmal los.
41 - Das Senden der XML-Files passiert unabhängig von Nagios durch einen eigenen
42 Prozess ("obsess_daemon.py")
45 Hinweis:
46 ========
48 - "obsess_daemon.py" ist noch kein richtiger Daemon, einfach an der
49 Kommandozeile start und gut laufen lassen (Debug-Ausgaben!)
50 - Zum "auf die Finger guggen":
51 % cd /tmp/nagixsc.spool
52 % watch -n2 "cat */*[0-9] |wc -l; (for F in xmlout/*; do ~/src/nagixsc/nagixsc_read_xml.py -f \$F; done)|grep -c RetCode"