Installation
per YaST nagios installieren. Dabei wird nagios-www gleich mitinstalliert. Zusätzlich sollte man noch nagios-plugins installieren
Diese Dokumentation ist nur ein kleines Bruchstück, was man mit Nagios machen kann. Alle Pakete, die in diesem HowTo benutzt werden, sind mit „Erforderlich“ gekennzeichnet
Erforderlich | Paketname | Inhalte |
---|---|---|
ja | nagios | Programm Nagios |
ja | nagios-www | Weboberfläche für Nagios |
ja | nagios-plugins | Standard-plugins wie z. B. check_ping, check_ssh, check_disk, check_dhcp |
ja | nagios-plugins-extra | Zusätzliche Plugins wie z. B. check_mysyl, check_hpdj, check_ldap, check_snmp |
ja | nagios-nrpe | zum Abfragen der Daten von entfernten Linux- und Windowsrechnern. Diese Paket beinhaltet den deamon |
ja | nagios-nrpe-server | Plugin von Nagios, das auf dem zu überwachenden Linuxrechner installiert werden |
ja | nagios-nrpe-client | Plugin zum engegennehmen von Daten des nrpe-servers |
ja | nagios-nrpe-doc | Dokumentation nur für den nrpe-dienst von Nagios |
nein | nagios-plugins-nis | Verschieden Plugins, die benötigt weden, wenn man NIS-Dienste überwachen will |
nein | nagios-rsync | Plugins, um rsync zu überwachen |
nein | nagios-plugins-sap-ccms | Spezielle SAP Plugins |
nein | nagios-plugins-zypper | Update- und Installationsroutine zypper wird überwacht |
nein | nagios-nsca | Plugin, um Rechner zu überwachen, die nicht direkt am Nagiosserver angeschlossen sind |
nein | nagios-nsca-client | Plugin, das auf dem zu überwachenden Server installiert werden muss |
Nach der Installation muss man dem Webinterface noch einen Namen und Passwort geben, damit man darauf zugreifen kann
htpasswd2 -c /etc/nagios/htpasswd.users nagiosadmin
Ab sofort kann man per Browser auf http://localhost/nagios gehen, um Nagios zu konfigurieren
Leider bekommt man aber jetzt eine Fehlermeldung. Deshalb sollte man nagios auch starten
/etc/init.d/nagios start
Konfiguration Apache
Standardkonfiguration
Damit über http://localhost/nagios auf das Webinterface zugegriffen werden kann, wird bei der Installation von nagios ein neues config-File unter /etc/apache2/conf.d mit dem namen nagios.cfg erstellt.
In diesem file sind die Pfade für die html-dateien und Authentifikations-Dateien hinterlegt.
Spezielle Konfiguration
Wenn man Nagios nicht über die URL http://<IP-Adresse>/nagios erreichen will, sondern über http://<IP-Adresse>, muss man die Zeilen aus /etc/apache2/conf.d/nagios.conf singemäß in die Datei /etc/apache2/vhosts.d/nagios.conf einpflegen. In meinem Beispiel sieht die vhosts-Datei dann folgendermaßen aus:
- nagios.conf
<VirtualHost *:80> ServerAdmin root@nagios ServerName nagios # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. DocumentRoot /usr/share/nagios # if not specified, the global error log is used ErrorLog /var/log/apache2/nagios-error_log CustomLog /var/log/apache2/nagios-access_log combined # don't loose time with IP address lookups HostnameLookups Off # needed for named virtual hosts UseCanonicalName Off # configures the footer on server-generated documents ServerSignature On ScriptAlias /nagios/cgi-bin "/usr/lib/nagios/cgi" <Directory "/usr/lib/nagios/cgi"> # 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 /etc/nagios/htpasswd.users Require valid-user </Directory> <Directory "/usr/share/nagios"> #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 /etc/nagios/htpasswd.users Require valid-user </Directory> </VirtualHost>
Zusätzlich muss man in der Datei /etc/nagios/cgi.cfg folgenden Eintrag ändern
- cgi.cfg
url_html_path=/
Möchte man die HTML-Dateien von Nagios im DokumentRoot vom Apache haben (/srv/www/htdocs), muss man diese dorthin kopieren, den Owner ändern und in der Datei /etc/nagios/cgi.cfg den Eintrag physical_html_path=/srv/www/htdocs
ändern
Jetzt muss der Indianer noch neu gestartet werden.
/etc/init.d/apache2 restart
Natürlich sollte man jetzt noch aus dem Verzeichnis conf.d das nagios-File enfernen/umbenennen.
cd /etc/apache2/conf.d mv nagios.conf nagios.conf.old
Natürlich ist auch hier ein Neustart von Apache notwendig
Fehlerbehebung
Fehler:
Bei SUSE 11.4 kann es sein, dass es beim Zugriff auf die Statusmeldungen einen Fehler gibt. Im Logfile (/var/log/nagios/nagios.log) erscheint dazu die Meldung Error: Unable to create temp file for writing status data!
. Die Lösung ist ganz einfach. Das Verzeichnis /var/lib/nagios darf nur von root beschrieben werden.
Lösung:
Herausfinden, unter welchem User und Gruppe Nagios läuft: In /etc/nagios/nagios.cfg nach nagios_user und nagios_group suchen. Diese Werte dann in folgender Zeile eintragen
chown -R <nagios_user>:<nagios_group> /var/lib/nagios
Jetzt noch Nagios restarten und die Welt ist in Ordnung
Konfiguration Nagios
Alle Konfigurationsdateien für Nagios sind unter /etc/nagios abgelegt
Die Verzeichnisstruktur ist wie folgt:
Datei | Zweck |
---|---|
htpasswd.users | File für die Namen und Passwörter für die Benutzeroberfläche |
cgi.cfg | Welcher Webuser hat worauf Zugriff. Außerdem stehen hier die Pfade für weitere Konfigurationsdateien |
resource.cfg | Globale Umgebungsvariablen ($USER$) werden hier gesetzt |
nagios.cfg | Grundsätzliche Einstellungen, die Nagios betreffen z.B.: Objektpfade, Logpfade, Tempdateien |
command.cfg | |
nrpe.cfg | Konfiguration für den nrpe-Dienst |
objects | Verschieden Objectdateien, die, je nach Dienst/Verwendung, anders konfiguriert werden. Man könnte auch alle Objekte in eine Datei schreiben, wäre aber sehr unübersichtlich |
objects/templates.cfg | Vorlagen für die Objektfiles. diese Einstellungen werden für das jeweilige Objekt verwendet, solange sie nicht überschrieben werden (Vererbung) |
objects/linux.cfg | alle Linux-Rechner werden hier eingetragen und konfiguriert |
objects/windows.cfg | Logische Datei für Windowsrechner aller Art |
objects/switch.cfg | Alle Switche und Switchprüfungen werden hier eingetragen |
objects/localhost.cfg | Alle zu überwachenden Dienste, die auf dem Lokalen Rechner sind |
objects/contacts.cfg | Alle zu benachrichtigen Email-Adressen im Notfall |
objects/printer.cfg | Alle Drucker werden hier zusammengefasst. man könnte auch die Verschieden Druckertypen als Objekte machen (bei vielen Druckern) |
objects/timesrv.cfg | Einstellungen für den Zeitserver, da dieser weder Linux noch Windows ist |
objects/commands.cfg | |
objects/timeperiods.cfg | Zeitdefinitionen z.B.: Arbeitstage = Mo - Fr, 08:00 - 16:00; immer = Mo - So, 0:00 - 24:00 |
Plugins werden unter /usr/lib/nagios/plugins gespeichert Diese können meistens ohne nagios getestet werden. Auf der Konsole folgenden Befehl eingeben
/usr/lib/nagios/plugins/<Pluginname> --help
Diskussion