====== Installation NagiosQL ====== NagiosQL ist eine Konfigurations-Oberfläche für Nagios auf LAMP-Basis. NagiosQL ist Teil der kommerziellen Nagios-Variante "Nagios XI" ===== Voraussetzungen ===== Bei der Installation von NagiosQL wird davon ausgegangen, dass bereits Nagios, Nagiosgraph und NagVis entsprechend des Artikels "[[Installation Nagios 4, Nagiosgraph, NagVis, Loghost]]" installiert wurden. apt-get install mysql-server phpmyadmin Es werden spezielle PHP Module benötigt: * session * MySQL (php5‐mysql) * gettext * filter * ftp (optional – für FTP Verbindung zu entfernten Servern) * SSH (PECL Modul – optional – für SSH/SCP Verbindung zu entfernten Servern) Welche Module installiert sind, lässt sich mit ''php -m'' anzeigen. Im vorliegenden Fall muss nur SSH nachinstalliert werden apt-get install libssh2-php php5-curl Abweichend von den Vorschlägen in der Installationsanleitung von NagiosQL wird die Verzeichnisstruktur analog zur Nagios-Installation unter ''/usr/local/nagiosql'' angelegt. #!/bin/bash # Verzeichnisse: mkdir /usr/local/nagiosql mkdir /usr/local/nagiosql/etc mkdir /usr/local/nagiosql/etc/hosts mkdir /usr/local/nagiosql/etc/services mkdir /usr/local/nagiosql/etc/backup mkdir /usr/local/nagiosql/etc/backup/hosts mkdir /usr/local/nagiosql/etc/backup/services # Berechtigungen: chown -R www-data.nagios /usr/local/nagiosql/etc # Berechtigungen der Nagios-Installation anpassen: chown -R www-data.nagios /usr/local/nagios/etc/nagios.cfg chown -R www-data.nagios /usr/local/nagios/etc/cgi.cfg chown -R www-data.nagios /usr/local/nagios/etc/resource.cfg chown -R www-data.nagcmd /usr/local/nagios/var/rw/nagios.cmd chmod 640 /usr/local/nagios/etc/nagios.cfg chmod 640 /usr/local/nagios/etc/cgi.cfg chmod 660 /usr/local/nagios/var/rw/nagios.cmd chgrp www-data /usr/local/nagios/bin/nagios chmod g+x /usr/local/nagios/bin/nagios ===== Apache Config ===== Kontrolle der ''/etc/php5/apache2/php.ini'' (angegebene Parameter sollen gesetzt sein) ; vi /etc/php5/apache2/php.ini ;... file_uploads = On ;... session.auto_start = 0 ;... date.timezone = "Europe/Berlin" ;... ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; extension = ssh2.so extension = curl.so ; ... Die eigentliche Apache-Config wird unter ''/etc/apache2/config-available/nagiosql.conf'' angelegt. Bei der Zugriffsberechtigung wird direkt auf die Nagios-Authentifizierung zurückgegriffen, um einen einheitlichen Benutzer zu haben. Bei Bedarf kann natürlich auch eine eigene Berechtigungsstruktur aufgebaut werden. # NAGIOSQL Alias /nagiosql "/usr/local/nagiosql/share" Options None AllowOverride None Order allow,deny Allow from all Require all granted # Order deny,allow # Deny from all # Allow from 127.0.0.1 # AuthName "Nagios Access" # AuthType Basic # AuthUserFile /usr/local/nagios/etc/htpasswd.users # Require valid-user Wie 'neuerdings' üblich wird die Config dann per Command aktiviert und die Config neu geladen: a2enconf nagiosql service apache2 reload ===== Installation ===== NagiosQL wird nun entpackt und ins Webserververzeichnis ''/usr/local/nagiosql/share'' verschoben und die Verzeichnisberechtigungen entsprechend angepasst. cd /install tar xvf nagiosql_320.tar.gz mv nagiosql32 /usr/local/nagiosql/share chown -R www-data /usr/local/nagiosql/share chmod 750 /usr/local/nagiosql/share/config NagiosQL sollte nun im Browser unter ''http://.../nagiosql'' aufrufbar und dort der Installations Assistent sichtbar sein. In den Nun folgenden Dialogen sind lediglich die Kennwörter für MySQL und für den ersten NagiosQL-Benutzer zu hinterlegen. Außerdem sind die Verzeichnisse entsprechend der o.g. Anpassungen anzugeben. Die Haken für "Importiere Nagios Beispiel Konfiguration" und "Erstelle NagiosQL Verzeichnisse" werden gesetzt. ===== Anpassung nagios.cfg ===== Die nagios.cfg muss angepasst werden, so dass Nagios zukünftig die Configurationsdateien von NagiosQL verarbeitet. Hierzu sind alle ''cfg_file'' und ''cfg_dir'' Einträge durch die folgenden zu ersetzen. # vi /usr/local/nagios/etc/nagios.cfg # ... # NAGIOSQL cfg_file=/usr/local/nagiosql/etc/contacttemplates.cfg cfg_file=/usr/local/nagiosql/etc/contactgroups.cfg cfg_file=/usr/local/nagiosql/etc/contacts.cfg cfg_file=/usr/local/nagiosql/etc/timeperiods.cfg cfg_file=/usr/local/nagiosql/etc/commands.cfg cfg_file=/usr/local/nagiosql/etc/hostgroups.cfg cfg_file=/usr/local/nagiosql/etc/servicegroups.cfg cfg_dir=/usr/local/nagiosql/etc/hosts cfg_dir=/usr/local/nagiosql/etc/services # NAGIOSQL optional cfg_file=/usr/local/nagiosql/etc/hosttemplates.cfg cfg_file=/usr/local/nagiosql/etc/servicetemplates.cfg cfg_file=/usr/local/nagiosql/etc/servicedependencies.cfg cfg_file=/usr/local/nagiosql/etc/serviceescalations.cfg cfg_file=/usr/local/nagiosql/etc/hostdependencies.cfg cfg_file=/usr/local/nagiosql/etc/hostescalations.cfg cfg_file=/usr/local/nagiosql/etc/hostextinfo.cfg cfg_file=/usr/local/nagiosql/etc/serviceextinfo.cfg ===== Weitere Konfiguration ===== Damit die Installation vollständig die Nagios-Installation findet, müssen im NagiosQL Webinterface unter ''Konfig-Domäne'' noch die Pfade angepasst werden. Nagios Command Datei: /usr/local/nagios/var/rw/nagios.cmd Nagios Binary Datei: /usr/local/nagios/bin/nagios Nagios Prozess Datei: /usr/local/nagios/var/nagios.lock ===== Nagios 4 - Anpassung verify.php ===== Ab Nagios 4 hat sich der Command zum Restart geändert. dementsprechend muss im NagiosQL in der Datei ''admin/verigy.php'' die Zeile 345 angepasst werden. # vi /usr/local/nagiosql/share/admin/verify.php # ... #$strCommandString = "[".mktime()."] RESTART_PROGRAM;".mktime(); # ALT $strCommandString = "[".mktime()."] RESTART_PROGRAM\n"; # NEU # ... ===== preg_replace depricated - Anpassung IT.php ===== Da NagiosQL nicht an allen Stellen die neueste PHP-Syntax verwendet, kommt es im Apache2-error.log zu folgender Fehlermeldung. PHP Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /usr/local/nagiosql/share/libraries/pear/HTML/Template/IT.php on line 1095 Wie in der Meldung schon vorgeschlagen, wird in der IT.php das ''preg_replace'' durch ''preg_replace_callback'' ausgetauscht. // vi /usr/local/nagiosql/share/libraries/pear/HTML/Template/IT.php // ... /* ALT return preg_replace( "##ime", "\$this->getFile('\\1')", $content ); */ // NEU return preg_replace_callback( "##im", array($this, 'getFile'), $content ); // ...