Nagios Update 4.3.0 Probleme

Ups, nachdem ich mein Nagios 4.2.3 auf 4.3.0 aktualisiert hatte, war ich einigen kleinen Problemen ausgesetzt. Zunächst meldete Nagios, dass es den Prozess-Status nicht finden konnte:

Unable to get process status

Weiterhin konnte ich auf keinen Menüpunkt in Nagios zugreifen. Bspw. beim Aufruf von „Tactical Overview“ bekam ich die Meldung vom Apache Server

The requested URL /nagios/cgibin/tac.cgi was not found on this server.

Es stellte sich heraus, dass Nagios in der aktuellen Version nicht mehr unter /nagios/cgi-bin/ sondern unter /nagios/cgibin nach den CGIs sucht. Also habe ich in der Datei /etc/apache2/sites-enabled/nagios.cfg (kann abweichend sein) noch den zusätzlichen ScriptAlias /nagios/cgibin für/usr/local/nagios/sbin eingetragen. Nach einem Neustart des Apache Servers war zumindest das Problem schon mal gelöst.

Ein weiteres Problem waren die Map und die Trends. Im Legacy-Mode funktionierten sie, aber nicht mehr im „normalen“ Modus. Ich bekam hier lediglich die Meldung

Warning: Monitoring process may not be running! Click here for more info

Das „here“ verwies auf einen ungültigen Pfad (nämlich auf /{{cgiurl}}extinfo.cgi?type=0). Nach einigem Suchen fiel mir auf, dass irgendwie unter /usr/local/nagios/share/js die Datei config.js fehlte. Diese beinhaltet die Variable für cgiurl. Nachdem ich die Datei config.js.in aus dem Source-File angepasst (ich habe @cgiurl@ durch cgibin ersetzt und die Dateiendung .in entfernt) und in das genannte Verzeichnis gelegt hatte, funktionierte Nagios bei mir wieder ohne Probleme.

config.js:

var nagcfg = {};
nagcfg.cgidir = "cgibin/";

NagiosQL unter Ubuntu 16.04 LTS (PHP7, MySQL)

Nachdem mir die Verwaltung von Nagios allein durch das Jonglieren mit Config-Files in Texteditoren zu aufwändig wurde (und ich meinen Kollegen keinen mehrtägigen Lehrgang geben wollte, wie sie selbst Hosts und Services hinzufügen können), habe ich mir NagiosQL 3.2.0 hinzuinstalliert. Das Projekt ist seit einiger Zeit in das kommerzielle Nagios XI integriert und wird nicht mehr frei verfügbar weiterentwickelt. Da hatte ich mit Nagios 4 unter Ubuntu 16.04 und PHP7 etwas ungünstige Voraussetzungen.

Letztendlich haben mir aber die für Nagios 4 und PHP7 angepassten Dateien eines Brasilianers geholfen, das Ding zum Laufen zu bringen. Muchas gracias Fabio Lucchiari!

Letztendlich waren von mir noch ein paar kleine Fixes nötig, da in den PHP-Scripts teilweise doch noch mysql_ statt mysqli_ Methoden verwendet wurden. Und ein ganz ärgerlicher Bug war schon im Original enthalten: in der Datei ./functions/prepend_content.php in Zeile 324 muss es am Ende wie folgt heißen:

GROUP BY `$preKeyField`, `id`";

Sonst erhält man beim Klick auf „Alle Konfigdateien schreiben“ im Punkt „Services“ den Fehler:

Einige Konfigurationsdateien wurden nicht geschrieben. Es wurde kein existierender bzw. kein aktiver Datensatz gefunden oder die Schreibrechte fehlen.
bzw.
Some configuration files were not written. Dataset not activated, not found or you do not have write permission!

Wer direkt eine funktionierende(?) Installation haben möchte, kann sich die von mir gefixte Version hier herunterladen: nsql320_Fix.tar

PS: Das Fragezeichen hinter „funktionierende“ steht da ganz bewusst, da ich viel rumgefrickelt habe und alles soweit mit den Dateien in dem Archiv bei mir funktioniert. Ich kann aber nicht versprechen, dass nicht noch irgendwo andere Probleme bestehen, die ich abseits der Dateien gelöst habe. Dazu auch ein
PPS: Ich hatte nach der initialen Installation ein paar Probleme mit der SQL-Datenbank beim Importieren von bestehenden Nagios Config Files. Hier half es, alle betroffenen Tabellen via phpMyAdmin zu prüfen und die Spalten, bei denen als Standardwert nichts eingetragen war (also „kein(e)“ bzw. „none“) den Standardwert auf „NULL“ zu setzen.