Dies ist eine alte Version des Dokuments!
Auf dem Nagios-Server sollten bestimmte Basisdienste installiert und konfiguriert sein.
Die SNMP-Tools (snmpwalk, snmpget) und der SNMP-Daemon (zur „Eigenüberwachung“) sollten nicht fehlen.
apt-get install snmpd snmp
Beim snmpd empfiehlt sich eine etwas „einfachere“ Config:
# vi /etc/snmp/snmpd.conf # Listen for connections from the local system only #agentAddress udp:127.0.0.1:161 #rocommunity <community> localhost rocommunity <community> sysLocation Arbeitszimmer sysContact JB <raspberrypi2@jbackes.de> dontLogTCPWrappersConnects true
Damit Nagios eMails versenden kann, muss Postfix installiert und konfiguriert werden.
apt-get install postfix mailutils
Der Postfix muss noch konfiguriert werden.
# vi /etc/postfix/main.cf # ... myhostname = raspberrypi2.jbackes.de # ... relayhost = my.relayhost.de # ... sender_canonical_maps = hash:/etc/postfix/sender_canonical recipient_canonical_maps = hash:/etc/postfix/recipient_canonical # ...
Die „sender_canonical“ und „recipient_canonical“ sind dann auf die entsprechenden Gegebenheiten anzupassen.
# vi /etc/postfix/sender_canonical nagios nagios@jbackes.de pi pi@jbackes.de root root@jbackes.de # ------ # vi /etc/postfix/recipient_canonical root@raspberrypi.jbackes.de pi@jbackes.de nagios@raspberrypi.jbackes.de pi@jbackes.de pi@raspberrypi.jbackes.de pi@jbackes.de
Anschließend müssen die Dateien mit dem Befehl „postmap“ ins DB-Format übersetzt werden.
postmap /etc/postfix/sender_canonical postmap /etc/postfix/recipient_canonical service postfix restart
Möglicherweise tauchen beim Restart des Postfix Meldungen auf, da der IPv6 Support deaktiviert wurde.
postmulti: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
Dies kann mann mit dem passenden postconf-Befehl beseitigen:
postconf -e 'inet_protocols = ipv4' service postfix restart
Eine gute Dokumentation für die Installation unter Ubuntu ist bei http://nagios.sourceforge.net/docs/nagioscore/4/en/quickstart-ubuntu.html zu finden.
Zusammengefasst sind die folgende Schritte durchzuführen:
sudo apt-get install apache2 apache2-utils libapache2-mod-php5 build-essential libgd2-xpm-dev
useradd -m -s /bin/bash nagios passwd nagios groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd www-data
./configure --with-command-group=nagcmd make all make install make install-init make install-config # damit das etc-Verzeichnis angelegt wird make install-commandmode make install-webconf # Apache Config htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin service apache2 reload
Folgende Pakete sollten vorab installiert werden, damit auch alle plugins kompiliert werden.
apt-get install dnsutils # DNS apt-get install libssl-dev libgnutls-dev # SSL apt-get install libldap2-dev # LDAP apt-get install libmysqlclient-dev # MySQL apt-get install libpq-dev # PostgresQL apt-get install libradiusclient-ng-dev # Radius
./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install
apt-get install libsnmp-perl libnet-snmp-perl libnmap-parser-perl \
libio-pty-perl libnet-openssh-perl \
libdbi-perl libdatetime-perl libdatetime-format-strptime-perl \
libdbd-mysql-perl
In der Standard-nagios.cfg werden die Config-Dateien einzeln mit „cfg_file=“ eingebunden. Ein „cfg_dir“ wie unter Ubuntu (z.B. /usr/local/nagios/etc/conf.d) hat sich aber in der Praxis bewährt.
# vi /usr/local/nagios/etc/nagios.cfg ############################################################################## # # NAGIOS.CFG - Sample Main Config File for Nagios 4.0.8 # ############################################################################## log_file=/usr/local/nagios/var/nagios.log # ... cfg_dir=/usr/local/nagios/etc/conf.d # ... use_syslog=0 # ...
Damit man schneller und von überall einen Check der Nagios-Config durchführen kann, empfiehlt sich ein kleines Shell-Skript, dass in einem System-Pfad liegt (z.B. /usr/local/bin).
# vi /usr/local/bin/nagios_check.sh #!/bin/bash /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Kleines Script, dass den Zeitstempel im nagios.log in lesbarere Form bring. Sinnvoller Weise direkt im log-Verzeichnis abgelegt (/usr/local/nagios/var/)
# vi /usr/local/nagios/var/nagioslog_localtime.sh #!/bin/bash if [ $1 ]; then cat $1 | perl -pe 's/(\d+)/localtime($1)/e' RC=0 else echo "Error: Missing parameter" echo "usage: nagioslog_localtime.sh <nagios.log>" RC=3 fi exit $RC
In neueren Distributionen (z.B. Ubuntu 14.04) gibt es das Verzeichnis /etc/apache2/conf.d
nicht mehr. Leider versucht Nagios beim Compilieren hier seine Apache-Config abzulegen.
Man kann die Config aber auch von Hand unter /etc/apache2/conf-available
ablegen.
# SAMPLE CONFIG SNIPPETS FOR APACHE WEB SERVER # # This file contains examples of entries that need # to be incorporated into your Apache web server # configuration file. Customize the paths, etc. as # needed to fit your system. ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> # SSLRequireSSL Options ExecCGI AllowOverride None Order allow,deny Allow from all # 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> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> # SSLRequireSSL Options None AllowOverride None Order allow,deny Allow from all # 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>
Anschließend wird die Conf-Datei ins Verzeichnis /etc/apache2/conf-enabled
verlinkt und die Apache-Module cgi
und rewrite
werden aktiviert. Zum Schluß wird der Apache neu gestartet.
ln -s /etc/apache2/conf-available/nagios.conf /etc/apache2/conf-enabled/nagios.conf a2enmod cgi a2enmod rewrite service apache2 restart
Download von exchange.icinga.org
Die Installation erfolgt problemlos entsprechend der mitgelieferten README Datei. Wichtig ist, dass innerhalb der Dateien die Pfade angepasst werden müssen.
Für diverse optische Anpassungen, ist es ggfls auch nötig, die Pfade zu den Stylesheets anzupassen.
Ein Verzeichnis mit den bereits angepassten Dateien liegt im Installverzeichnis.
Mit den angepassten Dateien sind noch folgende Schritte notwendig:
touch /usr/local/nagios/etc/downtime.cfg chown www-data:www-data /usr/local/nagios/etc/downtime.cfg cp downtime_sched.cgi /usr/local/nagios/sbin/ chown nagios:nagios /usr/local/nagios/sbin/downtime_sched.cgi cp downtime_job.pl /usr/local/nagios/bin/ chown nagios:nagios /usr/local/nagios/bin/downtime_job.pl
ctrontab des Users nagios:
# m h dom mon dow command 01 * * * * /usr/local/nagios/bin/downtime_job.pl >/usr/local/nagios/var/downtime.log 2>&1
Anpassung der side.php
# ... <li><a href="/nagios/cgi-bin/downtime_sched.cgi" target="<?php echo $link_target;?>">Recurring Downtime</a></li> # ...
Zunächst werden die benötigten Pakete installiert.
apt-get install libcgi-pm-perl librrds-perl libgd-gd2-perl libnagios-object-perl
Danach können mit dem mitgelieferten Perl-Skript die Voraussetzungen geprüft und die Installation gestartet werden.
./install.pl --check-prereq ./install.pl
Im Anschluss muss für die Funktion „mouseover“ noch die nagiosgraph.ssi ins Nagios-Verzeichnis kopiert werden.
cp /install/nagiosgraph-1.5.2/share/nagiosgraph.ssi /usr/local/nagios/share/ssi/common-header.ssi
Nagiosgraph ist damit prinzipiell funktionsfähig. Es lässt sich aber über diverse Config-Files noch die Darstellung optimieren. Die entsprechenden Konfiguration sind im Artikel „Nagiosgraph - Konfiguration“ näher beschrieben.
# vi nagios.cfg # ... # nagiosgraph process_performance_data=1 service_perfdata_file=/tmp/perfdata.log service_perfdata_file_template=$LASTSERVICECHECK$||$HOSTNAME$||$SERVICEDESC$||$SERVICEOUTPUT$||$SERVICEPERFDATA$ service_perfdata_file_mode=a service_perfdata_file_processing_interval=30 service_perfdata_file_processing_command=process-service-perfdata-for-nagiosgraph
# vi nagiosgraph-apache.conf # enable nagiosgraph CGI scripts ScriptAlias /nagiosgraph/cgi-bin "/usr/local/nagiosgraph/cgi" <Directory "/usr/local/nagiosgraph/cgi"> Options ExecCGI AllowOverride None Order allow,deny Allow from all Require all granted # AuthName "Nagios Access" # AuthType Basic # AuthUserFile /usr/local/nagios/etc/htpasswd.users # Require valid-user </Directory> # enable nagiosgraph CSS and JavaScript Alias /nagiosgraph "/usr/local/nagiosgraph/share" <Directory "/usr/local/nagiosgraph/share"> Options None AllowOverride None Order allow,deny Allow from all Require all granted # AuthName "Nagios Access" # AuthType Basic # AuthUserFile /usr/local/nagios/etc/htpasswd.users # Require valid-user </Directory>
./configure --with-nagios4 make make install
Im Anschluß hieran muss noch das ensprechende broker_module in der nagios.cfg eingetragen werden.
# vi /usr/local/nagios/etc/nagios.cfg # ... broker_module=/usr/local/lib/mk-livestatus/livestatus.o /usr/local/nagios/var/rw/live # ...
Benötigt wird das php5-gd Paket.
apt-get install php5-gd graphviz sqlite3 php5-sqlite rsync
Die Installation von NagVis ist über die install.sh Dialog-gesteuert. Oder man nutzt den etwas längeren Aufruf den install.sh mit Parametern.
./install.sh -n /usr/local/nagios -p /usr/local/nagvis \ -l "unix:/usr/local/nagios/var/rw/live" -b mklivestatus \ -u www-data -g www-data -w /etc/apache2/conf.d -a y
Eine weitere Konfiguration (über die nagvis.ini.php) ist prinzipiell nicht notwendig, da NagVis default-mäßig mit logonmodule=„LogonMixed“
arbeitet. Hier wird dann eine eigene Anmeldemaske für NagVis angezeigt. Will man die Nagios-Anmeldung benutzen (was vermutlich in den meissten Fällen so ist), muss man lediglich in der Apache-Config für NagVis die schon vorbereitete Authentifizierung aktivieren und den AuthNamen auf Nagios anpassen.
# vi /etc/apache2/conf.d/nagvis.conf # ... #AuthName "NagVis Access" AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user # ...
Unter neueren Ubuntu-Systemen wird die Apache-Config unter /etc/apache2/conf-available
abgelegt und muss mit dem Befehl a2enconf
aktiviert werden.
a2enconf nagvis
Will man jetzt noch bestimmte Nagios-User (z.B. nagiosadmin) zum NagVis-Administrator machen, wechselt man in das NagVis-ETC Verzeichnis und führt dort das im Installationsverzeichnis liegene nagvis-make-admin
aus.
cd /usr/local/nagvis/etc/ /install/nagvis-1.8.5/nagvis-make-admin nagiosadmin # Damit dieser Befehl funktioniert, muss 1x die NagVis-Seite aufgerufen worden sein, damit die Datei "auth.db" angelegt wurde.
Der Loghost speichert seine Inforamationen in einer MySQL-DB. Für den Zugriff der Plugins auf die Datenbanken werden diverse Perl-Module benötigt. Außerdem wird das rsyslog-mysql Modul benötigt.
apt-get install mysql-server libdbi-perl libdatetime-perl libdatetime-format-strptime-perl \ libdbd-mysql-perl apt-get install phpmyadmin apt-get install rsyslog-mysql
Bei der Installation des „rsyslog-mysql“ Moduls kann man sich die Datenbank Syslog erstellen lassen. Diese mit entsprechenden SQL-Skripten aus dem Installationsverzeichnis um die Tabellen für die Nagios-Integration erweitert.
Im Folgenden muss der rsyslogd passend konfiguriert werden. Hierzu liegen im Installationsverzeichnis unter etc/rsyslog.d 3 Dateien, die ins /etc/rsyslog.d Verzeichnis kopiert werden. Die dort vorhandene mysql.conf muss gelöscht werden. Im Anschluß wird die /etc/rsyslog.conf für die Annahme von Meldungen konfiguriert und das Meldungsformat passend eingestellt.
# vi /etc/rsyslog.conf # ... # provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # ... #$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $ActionFileDefaultTemplate RSYSLOG_SyslogProtocol23Format # ...
Abschließend wird die mitgelieferte Apache-Config (etc/apache/loghost.conf) ins /etc/apache2/conf.d kopiert und der Apache durchgestartet.
Nach dem entpacken wird das src-Verzeichnis in ein Webserver-Verzeichnis bzw. beim Loghost unter /usr/local/loganalyzer kopiert und dem Webserver-User Zugriff auf dieses Verzeichnis gewährt.
cp -r /install/loganalyzer-4.1.2/src /usr/local/loganalyzer chown -R www-data:www-data /usr/local/loganalyzer
Jetzt kann man den Loganalyzer schon im Webbrowser aufrufen und wird durch die Konfiguration geführt.
Die für Smartphones u.Ä. angepasste mobile Variante der Nagios-Webseite kann nach dem Entpacken einfach über das mitgelieferte Install-Skript INSTALL.PHP installiert werden. Das Script muss noch ein bisschen angepasst werden, damit es auf die jeweiligen Umgebungen bzw. Apache-Installationen passt.
#vi /install/nagiosmobile/INSTALL.php #!/usr/bin/php <?php // Nagios Mobile // Copyright (c) 2010-2011 Nagios Enterprises, LLC. // Install script written by Mike Guthrie <mguthrie@nagios.com> // // ***********MODIFY THE DIRECTORY LOCATIONS BELOW TO MATCH YOUR NAGIOS INSTALL********************* //target directory where nagiosmobile's web files will be stored define('TARGETDIR',"/usr/local/nagiosmobile"); //target directory where your current apache configuration directory is located //define('APACHECONF',"/etc/httpd/conf.d"); //default for ubuntu/debian installs or raspbian installs //define('APACHECONF',"/etc/apache2/conf.d"); //default for newer ubuntu/debian installs define('APACHECONF',"/etc/apache2/conf-available"); //..
Bei neueren Apache-Installation muss der Config noch „enabled“ werden.
e2enmod nagiosmobile service apache2 reload
apt-get install vim lsscsi htop ethtool cifs-utils
#vi /etc/vim/vimrc # ... #" Vim5 and later versions support syntax highlighting. Uncommenting the next #" line enables syntax highlighting by default. syntax on # ...
Einfach für Root die .bashrc vom User pi kopieren.
mv /root/.bashrc /root/.bashrc.org cp /home/pi/.bashrc /root/