Datum
09.12.2021
Dieser Beitrag wurde verfasst von:
In der Vergangenheit gab es immer wieder das Problem, dass bei Kunden mit Nagios oder Icinga das Monitoring nicht zuverlässig erkennen konnte, ob ein Domino Task läuft oder nicht. Auch jetzt hatte ein Kunde wieder nach dem Austausch eines Zertifikats mit dem HTTP-Task mit diesem Fehler zu kämpfen.
Problemstellung
Wie sich herausstellte war Nagios so konfiguriert, dass immer nach einem Task nHTTP.exe wurde. Diesen fand es nicht mehr, wenn wir den Task neu gestartet haben. Klare Ursache war, dass der Task mal groß und mal kleingeschrieben in der Taskliste von Icinga auftauchte. Das Erkennungsproblem trat immer auf, wenn ein einzelner Task neu gestartet wurde.
- Wird der ganze Domino-Server durchgestartet, ist alles gut, nhttp.exe wird automatisch gestartet und Icinga erkennt das gesuchte nHTTP.exe.
- Nach "restart task http" wird er nicht mehr erkannt, Icinga sieht plötzlich einen Task nhttp.exe.
- Nach "tell http exit" und "load http" oder „tell http restart“ wird der Task auch nicht mehr erkannt, Icinga sieht nhttp.exe.
Ich habe das daraufhin genauer angeschaut und die Quelle allen Übels gefunden. Die heißt natürlich - wie sollte es anders sein - Microsoft.
Wenn Icinga unter Windows die Prozesse abfragt, listet Windows sie nämlich nicht in der Schreibweise auf, wie sie auf der Platte liegen (nhttp.exe), sondern wie sie über die Shell aufgerufen wurden - ganz unabhängig von der tatsächlichen Schreibweise des Dateinamens der aufgerufenen .exe-Datei.
Als ich mir die Notes.ini anschaute, sah ich dann, dass im Default der HTTP Task in der Server-Tasks-Zeile in Großbuchstaben aufgeführt ist und auch andere Prozesse zur besseren Lesbarkeit in einer „proper case“-Scheibweise dort stehen:
SERVERTASKS=Update,Replica,Router,AMgr,AdminP,CalConn,Sched,HTTP,RnRMgr
HTTP wurde also in Großbuchstaben gestartet! Mache ich ein "restart task http", dann erfolgt der Neustart des HTTP-Tasks aber in Kleinbuchstaben, das ist so hartkodiert im Domino-Server festgelegt.
Die Lösung zum Problem
Es gibt zwei Möglichkeiten:
- Wir ändern die Zeile "Servertasks=..." komplett auf Kleinbuchstaben um und verwenden in Zukunft durchgängig Kleinbuchstaben. Icinga darf dann nur noch nach kleingeschriebenen Prozessen suchen. Ein "restart task xxx" funktioniert dann auch.
- Wir verwenden kein "restart task http" sondern "tell http exit" und anschließend "load HTTP" in Großbuchstaben. Dann funktioniert das Monitoring wieder. Es muss immer die Schreibweise benutzt werden, die auch beim Serverstart verwendet wird, also wie in der Zeile SERVERTASKS beschrieben je nach Prozess in gemischter Groß-/Kleinschreibung.
Ich weiß nicht, ob es an der speziellen Version des Nagios-Clients des Kunden liegt oder ein generelles Problem ist. Auf jeden Fall ist es gut zu wissen, was das Problem verursacht hat, falls es auch bei Ihnen einmal auftritt. Auf jeden Fall werde ich bei Windows-Maschinen in Zukunft mehr auf die Groß- und Kleinschreibung achten als bislang.
Apropos "Mit Linux wäre das nicht passiert":
Bei Linux werden die Prozessnamen immer in Kleinbuchstaben zurück geliefert, so wie die Programmdateien auf der Platte liegen.