NRPE funktioniert über die Befehlszeile; „Falsche Befehlszeilenargumente“ von Nagios

NRPE funktioniert über die Befehlszeile; „Falsche Befehlszeilenargumente“ von Nagios

Ich versuche, NRPE mit einem einfachen Beispiel als ersten Schritt zur Bereitstellung einzurichten. Der Einfachheit halber führe ich sowohl NRPE als auch Nagios lokal aus. NRPE und Nagios scheinen beide zu funktionieren, aber die Verwendung von check_nrpe von Nagios schlägt auf mysteriöse Weise fehl. Bearbeiten: Ich verwende Version 4.1.1 von Nagios und 2.15 von NRPE.

Ich denke, dass NRPE funktioniert, weil ich check_nrpe manuell ausführen kann:

/s/l/n/nagios_instance ❯❯❯ libexec/check_nrpe -H 127.0.0.1 -p 5667 -c check_total_procs      ⏎ 
PROCS CRITICAL: 536 processes | procs=536;150;200;0;

Ich denke, dass Nagios funktioniert (und die richtigen Argumente liefert), weil ich diese einfache Prüfung in Python geschrieben habe, eine Datei mit dem Namen check_hello_world.py, die sich im Verzeichnis libexec befindet:

#!/usr/bin/env python

import sys
print str(sys.argv)
raise SystemExit, 2

Die relevanten Zeilen meiner Nagios-Konfiguration sehen folgendermaßen aus:

define host {
    use                             linux-server
    host_name                       yourhost
    alias                           My first Apache server
    address                         127.0.0.1
}

define command {
    command_name check_procs_nrpe
    command_line $USER1$/check_hello_world.py –H "$HOSTADDRESS$" -p 5667 -c "check_total_procs"
    #command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -p 5667 -c "check_total_procs"
}


define service {
    use                             generic-service
    host_name                       yourhost
    service_description             Check using the hello world plugin
    check_command                   check_procs_nrpe
    }

Wie Sie sehen, definiere ich den Befehl check_procs_nrpe mit einem von zwei Befehlen, entweder dem einfachen Python-Skript oder dem Befehl nrpe, um Prozesse zu überprüfen, die von der Befehlszeile aus funktionierten. Wenn ich das Python-Skript verwende, erhalte ich innerhalb weniger Minuten eine E-Mail mit folgendem Text:

Additional Info:

[/spare/local/nagios/nagios_instance/libexec/check_hello_world.py, –H, 127.0.0.1, -p, 5667, -c, check_total_procs]

Dies scheint zu zeigen, dass Nagios korrekt funktioniert, Warnungen auslöst, E-Mails sendet und die Argumente korrekt auflöst. Wenn ich den Befehl ändere, um check_nrpe zu verwenden und Nagios erneut ausführe, erhalte ich eine E-Mail mit folgendem Text:

Additional Info:

Incorrect command line arguments supplied

Ich weiß wirklich nicht, wie ich weitermachen soll. Ich habe auf dieser Box keinen Root-Zugriff und kann daher rsyslog nicht einfach neu konfigurieren, um Protokollinformationen abzurufen. Gerne stelle ich auf Anfrage weitere Informationen zur Verfügung. Irgendwelche Ideen?

Antwort1

Zusammenfassend stellte sich heraus, dass das Problem darin bestand, dass der Bindestrich im „-H“ eigentlich kein Bindestrich war. Es war ein Halbgeviertstrich. Sie können ihn im obigen Text tatsächlich ganz deutlich sehen, wenn Sie danach suchen. Leider unterscheidet Source Code Pro (die Schriftart, die ich in meinem Terminal und daher in vim verwende) nicht wirklich zwischen Bindestrichen und Halbgeviertstrichen. Ich habe diesbezüglich ein Problem erneut geöffnet und suche in der Zwischenzeit nach einer neuen Schriftart (und füge meiner Kriterienliste die Unterscheidung von Bindestrichen hinzu).

verwandte Informationen