Benutzer-Werkzeuge

Webseiten-Werkzeuge


installation_nagiosql

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.

nagiosql-install-path.sh
#!/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.conf
# NAGIOSQL
Alias /nagiosql "/usr/local/nagiosql/share"
<Directory "/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
</Directory>

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(
            "#<!-- INCLUDE (.*) -->#ime",
            "\$this->getFile('\\1')",
            $content
        ); 
        */
        // NEU
        return preg_replace_callback(
            "#<!-- INCLUDE (.*) -->#im",
            array($this, 'getFile'),
            $content
        );
 
// ...
installation_nagiosql.txt · Zuletzt geändert: 2015/08/14 09:50 von admin