====== check_procs ====== check_procs gehört zum Nagios Plugin Packet und dient zum überwachen lokaler Prozesse. Wenn Prozesse auf entferneten Maschinen überwacht werden sollen, so muss [[:nagios:howtos:NRPE|NRPE]] oder [[:nagios:plugins:check_by_ssh|check_by_ssh]] zum Einsatz kommen und das Plugin auf der zu überwachenden Maschine vorhanden sein. check_procs kennt wie (fast) jedes Plugin den Parameter -h zum ausgeben einer kurzen Hilfe. Die meisten Optionen sind selbsterklären. Die Angabe von Warning und Critcal Bereichen ist aber erst mal nicht so leicht zu verstehen. **-w von:bis|--warning=von:bis** Das Plugin gibt ein "Warning" aus, wenn sich die ermittelte Anzahl von Prozessen außerhalb des Bereichs **von:bis** befindet. **Beispiel:** ./check_procs -C nagios -c 1:1 PROCS OK: 1 process with command name 'nagios' Solange also ein Nagios Process läuft, ist der check OK, ansonsten CRITICAL. **Beispiel:** ./check_procs -C httpd2-prefork -c 1:30 -w 8:10 PROCS WARNING: 11 processes with command name 'httpd2-prefork' Mehr als 30 Prozesse oder weniger als 1 -> CRITICAL\\ Merl als 10 Prozesse oder weniger als 8 -> WARNING **Beispiel:** ./check_procs -C nagios -c 1:1 -p 1 PROCS OK: 1 process with command name 'nagios', PPID = 1 Diese Anfrage prüft wieviele Prozesse mit Namen Nagios laufen und als Vater Prozess die 1 haben. Die Prozess ID 1 gehört immer init. Laufen 2 Prozesse mit PPID 1 ist das ein sicheres Indiz, dass 2 Nagios Instanzen laufen. **Beispiel:** ./check_procs -C httpd -c 1:10 -u nobody PROCS OK: 5 processes with command name 'httpd', UID = 65535 (nobody) Diese Anfrage prüft, ob mindestens 1 bzw. maximal 10 Prozesse des Apache unter dem User "nobody" laufen. Diese Abfrage kann interessant werden, wenn man beispielsweise den Apache für http als User "apache" und für https als User "nobody" am laufen hat. Dadurch kann man die einzelnen Prozesse sauber voneinander trennen. Eine andere Variante gleichnamige Prozesse auseinander zu halten wäre die, bestimmte Parameter zu prüfen, die beim Starten des Prozesses angegeben wurden. Nehmen wir wieder unser Beispiel des Apache, der für den http-Service mit der Konfigurationsdatei http.conf und für den https-Service mit der Konfigurationsdatei http_ssl.conf gestartet wird. **Beispiel http-Service:** ./check_procs -C httpd -c 1:10 -a /etc/httpd/http.conf PROCS OK: 5 processes running with args /etc/httpd/http.conf **Beispiel https-Service:** ./check_procs -C httpd -c 1:10 -a /etc/httpd/http_ssl.conf PROCS OK: 5 processes running with args /etc/httpd/http_ssl.conf ===== Known Bug ===== check_procs benutz ps zum auslesen der Prozesstabelle. Es kommt zu Fehlern wenn die Spracheinstellung auf de_DE gesetzt ist. Also generell für den User nagios die Sprache auf en_EN setzen. Alternativ kann man das check_procs Plugin aus der Version 1.3.1 nutzen. Ein Hinweis Für Solaris Benutzer bei der standart Ausgabe von ps werden die Prozessnamen standartmäßig auf 8 Zeichen gekürzt. Check_procs -C [Prozessname] benutzt den Befehl /usr/bin/ps -Ao 's uid ppid vsz rss pcpu comm args', dieser gibt nun aber den ganzen Prozessnamen aus und vergleicht diesen mit dem String nach dem Parameter -C. Deshalb muss man den kompletten Prozessnamen wissen und nicht den auf 8 Zeichen gekürzten!