Icinga2

Microsoft SQL-Server mit Icinga2 überwachen

7. Januar 2017 · Anwendungen · andreas · Kein Kommentar

Soll ein Microsoft SQL Server (an der Stelle egal, ob Express- oder Vollversion) mit Icinga2 überwacht werden, so stellt der Name des Dienstes eine kleine Hürde dar:

Wird der Name mit “MSSQL$SQLEXPRESS” in der entsprechenden Argumentliste angegeben, so beschwert sich Icinga2 beim Überprüfen der Konfiguration mit

critical/config: Error: Validation failed for object '...' of type 'Service'; 
Attribute 'vars' -> 'nrpe_remote_arguments': 
Closing $ not found in macro format string '...!MSSQL$SQLEXPRESS'.

Ein im ersten Reflex eingefügtes Backslash-Zeichen vor dem Dollar-Zeichen löst das Problem nicht, führt aber zu einer neuen Fehlermeldung:

critical/config: Error: Bad escape sequence found: \$

Des Rätsels Lösung bietet - wie so oft RTFM - oder hier RTFAQ, denn dort steht:

How do I properly escape $ in strings
Dollar signs are “strange” in Nagios and has to be escaped using double $$s. Thus in Nagios config you need to put $$.


Icinga2 startet nicht mehr nach Debian-Systemupdate

23. September 2016 · Anwendungen · andreas · Kein Kommentar

Nach einem Systemupdate wird Icinga2 nicht mehr ausgeführt und apt-get meldet eine Reihe von Fehlern:

icinga2-common (2.5.4-1~debmon70+3) wird eingerichtet ...
Neue Version der Konfigurationsdatei /etc/icinga2/icinga2.conf wird installiert ...
Neue Version der Konfigurationsdatei /etc/icinga2/features-available/gelf.conf wird installiert ...
Job for icinga2.service failed. See 'systemctl status icinga2.service' and 'journalctl -xn' for details.
invoke-rc.d: initscript icinga2, action "start" failed.
dpkg: Fehler beim Bearbeiten des Paketes icinga2-common (--configure):
Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück
libicinga2 (2.5.4-1~debmon70+3) wird eingerichtet ...
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von icinga2-bin:
icinga2-bin hängt ab von icinga2-common (= 2.5.4-1~debmon70+3); aber:
Paket icinga2-common ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten des Paketes icinga2-bin (--configure):
Abhängigkeitsprobleme - verbleibt unkonfiguriert
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von icinga2-ido-mysql:
icinga2-ido-mysql hängt ab von icinga2-bin (= 2.5.4-1~debmon70+3); aber:
Paket icinga2-bin ist noch nicht konfiguriert.
icinga2-ido-mysql hängt ab von icinga2-common (= 2.5.4-1~debmon70+3); aber:
Paket icinga2-common ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten des Paketes icinga2-ido-mysql (--configure):
Abhängigkeitsprobleme - verbleibt unkonfiguriert
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von icinga2:
icinga2 hängt ab von icinga2-bin (= 2.5.4-1~debmon70+3); aber:
Paket icinga2-bin ist noch nicht konfiguriert.
icinga2 hängt ab von icinga2-common (= 2.5.4-1~debmon70+3); aber:
Paket icinga2-common ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten des Paketes icinga2 (--configure):
Abhängigkeitsprobleme - verbleibt unkonfiguriert
..........
Fehler traten auf beim Bearbeiten von:
icinga2-common
icinga2-bin
icinga2-ido-mysql
icinga2
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ausschlaggebend ist der Fehler in dem Paket “icinga2-common”, die Fehler in den restlichen Pakten sind Folgefehler.

Freundlicherweise gibt dpkg auch gleich einige Tips zur Fehlersuche aus

root@monitoring:~# systemctl status icinga2.service
 ● icinga2.service - LSB: icinga2 host/service/network monitoring and management system
 Loaded: loaded (/etc/init.d/icinga2)
 Active: failed (Result: exit-code) since Do 2016-09-22 09:17:37 CEST; 8min ago
 Process: 6270 ExecStart=/etc/init.d/icinga2 start (code=exited, status=1/FAILURE)
Sep 22 09:17:37 vm-00017 icinga2[6270]: checking Icinga2 configuration
 Sep 22 09:17:37 vm-00017 icinga2[6270]: checking Icinga2 configuration. Check '/var/log/icinga2/startup.log' for details. ... failed!
 Sep 22 09:17:37 vm-00017 systemd[1]: icinga2.service: control process exited, code=exited status=1
 Sep 22 09:17:37 vm-00017 systemd[1]: Failed to start LSB: icinga2 host/service/network monitoring and management system.
 Sep 22 09:17:37 vm-00017 systemd[1]: Unit icinga2.service entered failed state.

Systemctl liefert den Hinweis, daß beim Check der Konfiguration wohl etwas nicht passt, und verweist auf die Logdatei “/var/log/icinga2/startup.log”

root@monitoring:~# cat /var/log/icinga2/startup.log
 information/cli: Icinga application loader (version: r2.5.4-1)
 information/cli: Loading configuration file(s).
 information/ConfigItem: Committing config item(s).
 critical/config: Error: Error while evaluating expression: Tried to access undefined script variable 'PluginContribDir'

die dann auch mehrfach den kitischen Fehler “Tried to access undefined script variable ‘PluginContribDir’” anmerkt.

Ein Blick in die Datei “/etc/icinga2/constants.conf” zeigt dann auch, daß die Variable tatsächlich weder gesetzt noch vorhanden ist. Im Verzeichnis “/etc/icinga2/” liegt aber noch eine “constants.conf.dpkg-dist” mit neuerem Datum als die “constants.conf”, in der die Zeile

/* The directory which you use to store additional plugins which ITL provides user contributed command definitions for.
 * Check the documentation, chapter "Plugins Contribution", for details.
 */
 const PluginContribDir = "/usr/lib/nagios/plugins"

vorhanden ist. Nach Hinzufügen der Definition in die “constants.conf” kann dpkg das Paket “icinga2-common” erfolgreich konfigurieren:

root@monitoring:~# dpkg --configure icinga2-common
 icinga2-common (2.5.4-1~debmon70+3) wird eingerichtet ...

Ein “apt-get update” läuft anschließend für die abhängigen Pakete problemlos durch.