Icinga2 startet nicht mehr nach Debian-Systemupdate

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.

Kommentar schreiben