Check_MK ist eine umfangreiche Erweiterung für Nagios/Icinga, die das Verwalten der Konfiguration und das Abfragen verschiedener Daten zur Überwachung vereinfachen soll. Zum Erstellen der Konfigurationsdateien kommt ein DNS-Cache zum Einsatz, der diesen Vorgang beschleunigen soll, der jedoch auch zu Problemen führen kann.
In dem aktuellen Fall lief die Kombination aus Check_MK und Icinga schon ein paar Monate ohne Probleme. Unerwartet kam es bei der Überwachung eines Servers/Dienstes jedoch plötzlich zu Störungsmeldungen. Wie sich herausstellte wurde bei dem Server nur der Hostname und nicht dessen IP-Adresse angegeben. Wegen einer Umstellung hat sich die Adresse jedoch geändert, konnte jedoch über das DNS erfolgreich und korrekt aufgelöst werden.
Für die Überwachung trägt Check_MK grundsätzlich die IP-Adressen und nicht die Hostnamen in die Nagios/Icinga Konfiguration ein. Dies stellt in erster Linie kein Problem dar und erlaubt auch eine Überwachung, falls der DNS-Server mal ausfällt oder nicht erreichbar ist. Ändert sich jedoch die IP-Adresse hinter einem Hostnamen, so wird diese Änderung nicht sofort von Check_MK übernommen und es kommt möglicherweise zu Fehlalarmen, wie im vorliegenden Fall.
Zunächst wurde mit einem einfachen Linux-Tool geschaut, ob sich die entsprechende IP-Adresse irgendwo im Cache befindet. Das folgende Beispiel zeigt den verwendeten Befehl und den positiven Fund mit der Zuordnung der alten IP-Adresse.
$ sudo grep -rne '98.76.54.32' /var/lib/check_mk/ipaddresses.cache
/var/lib/check_mk/ipaddresses.cache:1:{'example.org': '98.76.54.32'}
Da die Aktualisierung des DNS-Caches je nach Konfiguration nicht bei jedem Erstellen der Konfiguration verworfen und neu angelegt wird, muss er von Hand aktualisiert werden. Das folgende Beispiel zeigt wie dies mit einem Befehl über die Kommandozeile erledigt werden kann. Zu sehen ist, dass der entsprechende Eintrag aktualisiert wurde.
$ sudo cmk -v --update-dns-cache
Updating DNS cache...
Updating DNS cache for example.org: 12.34.56.78
Wer skeptisch ist, kann mit dem bereits weiter oben aufgeführten Befehl schnell schauen ob die neue IP-Adresse jetzt im DNS-Cache enthalten ist. Wie im Beispiel zusehen ist, war die Aktualisierung erfolgreich.
$ sudo grep -rne '12.34.56.78' /var/lib/check_mk/ipaddresses.cache
/var/lib/check_mk/ipaddresses.cache:1:{'example.org': '12.34.56.78'}
Nachdem der Cache wieder aktuelle Daten enthält müssen anschließend noch die Konfigurationsdateien neue erstellt und durch den Nagios/Icinga Dienst neu eingelesen werden. Diesen Vorgang kann man durch einen relativ kurzen Befehl durchführen.
$ sudo cmk -O
Generating configuration for core (type nagios)...OK
Validating Nagios configuration...OK
Precompiling host checks...OK
Reloading monitoring core...OK
Seit Version 1.2.3i1 von Check_MK ist die Nutzung des DNS-Caches standardmäßig aktiviert. Weitere Informationen können der Hilfe zur Konfiguration von Check_MK entnommen werden.