check_multi -f <config file> | -x command [-n name] [-t timeout] [-T TIMEOUT] [-r level] [-l libexec_path] [-s option=value] [-w <expr>] [-c <expr>] [-u <expr>] [-o <expr>] [-h][-v][-V]
Config-Datei mit Plugin-Aufrufen
Bitte auch diese Beschreibung der Config-Datei lesen und die Beispieldatei
im Contrib-Verzeichnis vergleichen.
-f <file1> -f <file2>….*.cmd-Dateien in diesem Verzeichnis in alphabetischer Reihenfolge eingelesen.
check_multi Plugin Name (taucht im Service output als Name des Parent-Plugin auf)
default: MULTI
Diese Option kann verwendet werden, um unterschiedliche Service-Bereiche abzugrenzen, z.B. SYSTEM, ORACLE, WEB etc.
timeout fuer den einzelnen Child-Check
default: 10
Diese Option definiert das Timeout fuer einen Child-Check. 10 Sekunden sind ein oft verwendeter Default fuer Nagios plugins.
Normalerweise kann dieser Default ohne Probleme verwendet werden.
TIMEOUT fuer alle Child-Checks
default: 60
Dieser Wert (das grosse 'T' steht fuer das Parent-Plugin, waehrend das kleine 't' die Child-Plugins bezeichnet, bitte nicht verwechseln!) begrenzt die Laufzeit des check_multi Parent-Plugin.
Bitte beruecksichtigen, dass Nagios selber ein Timeout fuer die Ausfuehrung der Service-Checks hat (service_check_timeout=60), nach dessen Ablauf die service checks abgebrochen werden. Wenn nun ein laengeres Timeout fuer check_multi spezifiziert wird (Big T), muss folglich auch der Nagios-Wert fuer service_check_timeout entsprechend geaendert werden. Andernfalls sieht man in der Nagios GUI nicht mehr den Grund des Timeouts von check_multi, sondern nur noch die Nagios-Timeout-Meldung.
Das globale Timeout (Big T) bietet einen definierten Ausstiegspunkt fuer die Child-Plugins:
Wenn das Parent-Plugin bemerkt, dass ein Child-Plugin mit seinem Timeout (Small t) das globale Timeout (Big T) ueberschreiten wuerde, wird dieses gar mehr nicht ausgefuehrt. Stattdessen wird die Meldung „plugin cancelled due to global timeout“ ausgegeben und das Child-Plugin bekommt den Return-Code „UNKNOWN“.
Diese Vorgehensweise stellt sicher, dass das globale Timeout in jedem Fall eingehalten
wird und es statt eines Abbruchs von Nagios zumindest einen UNKNOWN status fuer die Child-Plugins gibt.
Report-Level
(Das Level ist hier binaer kodiert, daher koennen alle Optionen einfach addiert werden)
default: 13
Neu: Die Report-Level koennen nun auch als String angegeben werden, in dem die Nummern mit '+' addiert werden.
Beispiel: '-r 13' = '-r 1+4+8'
| Bit | Report-Option | Details / Ausgabe |
|---|---|---|
| 1 | Service Namen | 24 plugins checked, 1 critical (http), 1 warning (disk_var), 0 unknown, 23 ok |
| 2 | HTML Output | Der Output wird in HTML-Formatierung ausgegeben (farbige Ausgabe der Stati und die Einrueckung von Sub-Checks) Wenn diese Option verwendet wird, muss auch escape_html_tags=0 in der cgi.cfg gesetzt sein - sonst gibts nur eine Menge HTML-Tags zu sehen |
| 4 | STDERR | Wenn vorhanden, wird die Standard-Fehlerausgabe des Plugins in '[ ]' ausgegeben |
| 8 | Performance Daten Multi labels | Die Performance-Daten werden mit Multi-Labels ausgegeben, damit sie unterscheidbar sind.disk_root_warning::check_disk::/=10549MB;6047;9675;0;12094 |
| 16 | Vollstaendige Status-Liste | Auch Status-Levels mit 0 plugins werden angezeigt:MULTI CRITICAL - 16 plugins checked, 1 critical (disk_root_warning), 0 warning, 0 unknown, 14 ok |
| 32 | Standard-Performance-Labels | Ausgabe von Performance-Daten ohne check_multi-Erweiterung der Labels wie in '-r 8'. Die Optionen 8 und 32 sind daher alternativ zu gebrauchen. |
| 64 | Status-Label | Vor dem Output des Child-Checks wird der Status OK,UNKNOWN,WARNING,CRITICAL als Label dargestellt |
| 128 | PNP-Performance-Link | Falls Performance-Daten anfallen, wird auch vor den entsprechenden Child-Checks der PNP-Performance-Link (das Sternchen) dargestellt. Diese Option macht nur in Verbindung mit der HTML Output Option 2 Sinn. |
| 256 | XML Output | Gibt die kompletten Daten aller Checks in XML-Form aus. Ggf. koennen diese Daten ueber einen Wrapper fuer eigene Ausgabeformen genutzt werden. |
| 512 | Nagios2 Kompatibilitaet: einzeilige Ausgabe | Achtung: nur 332 Bytes Daten werden uebertragen!MULTI CRITICAL, disk_root_warning DISK CRITICAL - free space: / 925 MB (8% inode=82%);, top top - 13:47:31 up 4 days, 21:35, 3 users, load average: 3.13, 3.01, 3.11 |
| 1024 | Notes Icon | Zeigt ein Notes Icon vor jedem Child Check. Mit der Option '-s notes_url=http:\/\/path/to/wiki/$TAG$' wird die korrekte URL zur Dokumentation angegeben. |
| 2048 | Service definition | Hilfsfunktion, um passive Servicedefinitionen zu erzeugen, die vom check_multi feed passive-Mode verwendet werden sollen. |
| 4096 | send_nsca | Alle Child Checks werden mit send_nsca zum zentralen NSCA-Server gesendet |
| 8192 | checkresults | Stellt passive Checks direkt ins Nagios checkresults-Verzeichnis (sehr schnell und zuverlaessiger als NSCA und die Kommand-Pipe) |
| 16384 | encoded | Hilfsfunktion zur enkodierten Darstellung von Konfigurations-Dateien |
| 32768 | condensed | versteckt alle OK-Stati und zeigt nur non-OK Stati an |
Pfad zu den Plugins
default: /usr/local/nagios/libexec
In einer zukuenftigen Version kann dieser Default (und andere) per 'configure' vorbesetzt werden.
verschiedene Optionen setzen: –set <Option>=<Wert>
Wenn mehrere Optionen gesetzt werden sollen, so braucht jedes Paar sein eigenes -s:
check_multi -s opt1=val1 -s opt2=val2
Alle –set Optionen werden im Environment gespeichert als MULTI_<varname> und koennen entweder als Environmentvariable $MULTI_<varname> oder als check_multi-Variable $<varname>$ verwendet werden.
Settings (default fett):
| Option | Wert | Kommentar |
|---|---|---|
| action_mouseover | 1:ja 0:nein | Mit der Maus kann ein PNP Popup-Fenster erzeugt werden. |
| checkresults_dir | <nagiosdir>/var/spool/checkresults | Pfad zum Nagios checkresults Verzeichnis (Direktes Einfuegen von Checkresultaten ohne die Command-Pipe) |
| child_interval | 0s | Wartezeit in Sekunden zwischen Child-Checks, das koennen auch Sekunden-Bruchteile sein |
| cmdfile_update_interval | 86400 | Wartezeit bis zum Auffrischen einer lokalen Konfigurationskopie (wenn die Konfigurationsdatei per HTTP/FTP/… heruntergeladen wurde) |
| collapse | 1:ja, 0:nein | erzeugt JavaScript Code zum Einklappen rekursiver HTML Baumstrukturen |
| config_dir | <nagiosdir>/etc/check_multi | Pfad zum check_multi-Konfigurations-Verzeichnis |
| cumulate_max_rows | 5 | Anzahl der Reihen, die der cumulate [ TAG ] shall Befehl anzeigen soll |
| cumulate_ignore_zero | 1:true 0:false | Soll cumulate Null-Werte ignorieren? |
| empty_output_is_unknown | 1:true 0:false | Sollen leere Plugin-Ausgaben als UNKNOWN bewertet werden? |
| extinfo_in_status | 1: ja, 0: nein | Zeigt check_multi Child Checks auch in der Nagios Status view (status.cgi). Achtung: das funktioniert nur im HTML mode '-r 2' |
| file_extension | cmd | Standard-Dateiendung fuer check_multi Konfigurationsdateien |
| ignore_missing_cmd_file | 1: ja, 0: nein | Soll eine Meldung ueber eine nicht gefundene Kommando-Datei ausgegeben werden? |
| indent_label | 1:ja, 0:nein | Sollen rekursive Checks in der HTML-View auf Multi-Label-Weite eingerueckt werden (0: Einrueckung lediglich hinter die Check-Nummer) |
| illegal_chars | '\r' | Ungueltige Zeichen, die automatisch aus einer Kommando-Datei geloescht werden |
| image_path | /nagios/images | relative URL zu den Nagios images, benoetigt z.B. fuer PNP action Links |
| indent | ' ' | Zeichenfolge zur Einrueckung von Child Checks |
| indent_label | 1:true 0:false | Bestimmt, ob die Laenge eines Multi-Labels zur Einrueckung in rekursiven HTML-Views verwendet wird 0: es wird nur eine Nummernweite eingerueckt |
| libexec | <nagiosdir>/libexec | Das Verzeichnis, in dem sich die Plugins befinden - es wird dem Such-Pfad vorangestellt |
| livestatus | <nagiosdir/var/rw/live | Pfad zum livestatus-Socket (Unix or TCP socket) |
| loose_perfdata | 1: true, 0: false | Werden Nicht-Standard-Performance-Daten akzeptiert, z.B. deutsche Kommata? |
| name | ““ | Label zur Anzeige im Output, <name> OK, … |
| no_checks_rc | UNKNOWN | welcher RC soll ausgegeben werden, wenn keine Checks definiert wurden? |
| notes_url | URL | vgl. auch Nagios notes_url |
| persistent | 1: true, 0: false | check_multi wird im sog. 'persistent mode' ausgefuehrt |
| pnp_url | /nagios/pnp | relative URL zu PNP, benoetigt z.B. fuer die PNP action Links |
| pnp_version | 0.6, 0.4 | PNP version (wird fuer mouseover-Pfade benoetigt) |
| send_nsca | <nagiosdir>/bin/send_nsca | /Pfad/zum/send_nsca Binary |
| send_nsca_cfg | <nagiosdir>/etc/send_nsca.cfg | Pfad zur send_nsca.cfg Konfigurations-Datei |
| send_nsca_srv | <NSCA server> | Name/IP Adresse des NSCA Servers |
| send_nsca_port | <port number> | Port-Nummer des NSCA Servers |
| send_nsca_timeout | 10s | Timeout der NSCA-Uebertragung |
| send_nsca_delim | ':' | Begrenzer-Zeichen zwischen NSCA-Feldern |
| service_definition_template | <path> | /Pfad/zum/Template, in dem die Definitionen fuer Passive Feeded Services hinterlegt sind |
| status_dat | <nagiosdir>/var/status.dat | /Pfad/zur/status.dat |
| style_plus_minus | <HTML definition > | HTML Style-Definition fuer das blaue '+' / '-' |
| suppress_perfdata | tag1,tag2,tag3… | Analog zur Nagios-Option process_perf_data koennen hier in einem kommagetrennten String die Child-Checks angegeben werden, deren Performance-Daten nicht ausgegeben werden sollen. |
| suppress_service | tag1, tag2, tag3… | vgl suppress_perfdata, hier koennen Services tag1, tag2, tag3 von der Anzeige ausgeschlossen werden |
| tag_notes_link | URL | Notes URL als Link in den Child-Checks TAG (Achtung: die Quotings sind ziemlich speziell!) |
| target | _self | HTML target Fenster fuer HTML links |
| tmp_dir | /tmp/check_multi | Verzeichnis fuer check_multi Temporaerdateien |
| tmp_dir_permissions | octcal 1777 | Rechte fuer das Anlegen des check_multi Temporaerverzeichnis' |
| tmp_etc | /tmp/check_multi/etc | Verzeichnis fuer lokale Kopien von remote bezogenen Konfigurationsdateien |
| verbose | 0-3, 0 | Anzeigelevel, Werte ueber 1 sind nur fuers Debugging empfohlen |
Hier kann man eine Kommando oder ein Eval definieren: - -execute „command [ procs ] = check_procs“
Das Format ist eine 1:1 Kopie der Kommando-Definition oder Eval-Definition der Konfigurations-Datei.
Definition der Kriterien fuer den WARNING Status
vgl. auch state definition
Definition der Kriterien fuer den CRITICAL Status
vgl. auch state definition
Definition der Kriterien fuer den UNKNOWN Status
vgl. auch state definition
Definition der Kriterien fuer den OK Status
vgl. auch state definition
Ausfuehrliche Hilfe
Ausgabe von Debug-Informationen
(Mehrfache Angabe von -v erzeugt ausfuehrlichere Infos)
check_multi-Version