Wie kann ich eine Nagios-Überprüfung manuell über die Befehlszeile ausführen?

24

Beim Definieren und Testen neuer Dienste in Nagios habe ich Nagios neu gestartet, dann auf den Dienst geklickt und eine Überprüfung so schnell wie möglich neu geplant und dann gewartet, bis die Überprüfung erfolgt.

Gibt es einen effizienteren Weg, dies zu tun? Ich möchte die Befehlszeile verwenden, um diese bestimmte Prüfung auszuführen und die Ausgabe zu erhalten.

cwd
quelle

Antworten:

31

Manchmal finde ich es schwierig, genau herauszufinden, was ein Plugin macht. Um dies herauszufinden, habe ich Nagios mit der Konfiguration wie dieser in den Debug-Modus versetzt. debug_level=2048 Mit Nagios im Debug-Modus schließe ich einfach die debug_logDatei debug_file=/var/log/nagios3/nagios.debug. Erzwinge eine Überprüfung und du wirst genau sehen, wie der Befehl ausgeführt wird. Normalerweise würde ich diese Einstellung jedoch nicht belassen. Sie ist sehr ausführlich und füllt Ihre Protokolldatei mit hoher Geschwindigkeit.

Zoredache
quelle
genial. Das ist eher so, wie ich es gemeint habe. Nur weil ich bereits in der Datei commands.cfg nachgesehen hatte, um herauszufinden, welche Befehle ausgeführt wurden, wollte ich wissen, welche Flags gesetzt wurden. Vielen Dank! :)
KWD
2
Ich möchte auch neue Benutzer ansprechen, die mithilfe tail -fvon weiterhin Aktualisierungen der Datei in Echtzeit anzeigen und control+cdiese abbrechen.
KWD
2
Die debug_levels sind binär - 2048 aktiviert nur Nachrichten von Makros. Um alles einzuschalten, möchten Sie debug_level = 4095 setzen. (1 + 2 + ... + 2048)
Freitag,
18

Es ist ziemlich einfach. Einfach cd (oder nicht) in das Plugins-Verzeichnis (dieser Verzeichnispfad variiert, je nachdem, wie Sie es installiert haben, überprüfen Sie jedoch / usr / local / nagios oder / usr / lib / nagios).

Suchen Sie das Plugin, das Sie ausführen möchten (wenn Sie sich nicht sicher sind, vergleichen Sie das, was Sie in Ihrem Plugin-Verzeichnis auf Ihrer Linux-Box sehen, mit den Plugins, die sich hier befinden: http://exchange.nagios.org/directory/Plugins , oder versuchen Sie, es auszuführen "./plugin-name -h", um die Hilfeinformationen zum Plugin zu erhalten).

Die Methode zur Verwendung dieser "Plugins" über die Befehlszeile ist dieselbe wie bei jedem anderen Linux-Skript: Führen Sie einfach "./plugin-name" mit den entsprechenden Flags aus, die Sie überprüfen möchten, und voila!

David W
quelle
1
+1 ... und wenn Ihnen das zu viel Mühe macht, können Sie immer in den Nagios-Konfigurationsdateien nachsehen, welche Befehle und Parameter ausgeführt werden müssen. Sogar der Speicherort des Plugins-Verzeichnisses ist dort.
John Gardeniers
5
Und denken Sie daran, dass es immer mit nagiosBenutzer tun su - nagios -s /bin/bash.
Quanten
nett. und das -lädt die Umgebungsvariablen für diesen Benutzer?
KWD
Genau wie bei jedem anderen Linux-Flag lädt das "-" mit den von Ihnen verwendeten Flags das Flag. (Wenn ich df -h auf der Linux-CLI ausgeführt habe, verwende ich das "h" -Flag - im Fall des Befehls df steht das h für "lesbar".) Wenn Sie also die check_http-Prüfung ausführen möchten Von der CLI aus würden Sie ./check_http -I ausführen, wobei das I-Flag für die IP-Adresse steht ( nagiosplugins.org/man/check_http ). Hilfreich sind möglicherweise nagiosplugins.org/man sowie das Plugins-Verzeichnis, mit dem ich zuvor verlinkt habe.
David W
Die Hilfeoption sollte --help sein. nagios-plugins.org/doc/guidelines.html
dmourati
5

Ich gehe etwas gewaltsamer vor als @Zoredache, melde mich beim Nagios-Server an und erzwinge "while true; do ps awwlx | grep NAGIOS_CHECK_NAME; done", während ich eine erneute Überprüfung des Dienstes erzwinge, wobei NAGIOS_CHECK_NAME entweder ist Teil des Schecknamens oder der IP des Servers, den ich suche. Normalerweise erscheint innerhalb weniger Sekunden der vollständige Prüfbefehl und ich beende dann die while-Schleife und führe den Prüfbefehl aus.

Ja, es ist absolut brachial, aber es funktioniert bei mir.

Sean Reifschneider
quelle
Versuchen Sie "watch" anstelle der while-Schleife. linux.about.com/library/cmd/blcmdl1_watch.htm
dmourati
3

Vielleicht möchten Sie auch das Capture-Plugin ausprobieren. Dies entspricht im Wesentlichen dem Debug-Level von 2048, kann jedoch für jedes Plugin einzeln verwendet werden. Dies führt zu einer geringeren Durchgrabungsleistung.

http://www.waggy.at/nagios/capture_plugin.htm

Keith
quelle
1
Ich hatte Mühe, dies zum Laufen zu bringen, nicht sicher, was ich falsch gemacht habe (noob), aber der Trick debug_level hat bei mir funktioniert :)
sbditto85 13.11.12
2

Gehe in dein Plugin-Verzeichnis - in meinem Beispiel ist es das

/usr/lib64/nagios/plugins/

Geben Sie Ihren Plugin-Namen ein - in meinem Beispiel ist es

check_tcp

Führen Sie nun den vollständigen Befehl - (Plugin-Name) -H (Hostname) -p (Portnummer) aus.

/usr/lib64/nagios/plugins/check_tcp -H myservername -p 8080

Ausgabe

TCP OK - 0.004 second response time on port 8080|time=0.004146s;;;0.000000;10.000000

In diesem Beispiel ist die Portnummer jedoch optional

ein anderes Beispiel -

In deiner Konfigurationsdatei sieht das ungefähr so ​​aus (myserver.cfg) und du willst check_cpu von der Kommandozeile aus starten

define service{
  use                             generic-service
  host_name                       myserver
  servicegroups                   windows
  service_description             CPU
  contact_groups                  sysadmin_email_only
  notification_options            w,c,r
  check_command                   check_nrpe!check_cpu
}

sofort zu überprüfen (ohne GUI grün oder rot)

Versuchen Sie dies - (Plugin vollständigen Pfad) - H (Servername) -c (Checkname)

/usr/lib64/nagios/plugins/check_nrpe -H spc7atc01 -c check_cpu

Ausgabe -

OK CPU Load ok.|'5'=4;80;90; '10'=3;80;90; '15'=3;80;90;

Das ist es

Scharia Chowdhury
quelle