Beruflich Dokumente
Kultur Dokumente
Dokumentation
2 Installation......................................................................................................................5
2.1 Betriebssystem installieren......................................................................................5
2.2 Nagios installieren...................................................................................................5
2.3 Plugins installieren..................................................................................................6
2.4 Web-Interface aufsetzen..........................................................................................7
2.4.1 URL anpassen .................................................................................................7
2.5 Authentifizierung einrichten....................................................................................8
2.5.1 Login ohne Passwort .......................................................................................8
2.5.1.1 .htaccess ......................................................................................................9
2.5.1.2 httpd.conf ....................................................................................................9
3 Konfiguration ...............................................................................................................10
3.1 Die Konfigurationsdateien.....................................................................................11
3.1.1 nagios.cfg......................................................................................................11
3.1.2 resource.cfg ...................................................................................................11
3.1.3 cgi.cfg ...........................................................................................................11
3.1.4 contacts.cfg ...................................................................................................11
3.1.5 contactgroups.cfg ..........................................................................................11
3.1.6 hosts.cfg ........................................................................................................12
3.1.7 hostgroups.cfg ...............................................................................................12
3.1.8 services.cfg....................................................................................................12
3.1.9 checkcommands.cfg ......................................................................................13
3.1.10 misccommands.cfg ........................................................................................13
3.1.11 timeperiods.cfg..............................................................................................13
3.1.12 hostextinfo.cfg...............................................................................................14
3.2 NRPE....................................................................................................................15
3.2.1 Server............................................................................................................15
3.2.2 Clients...........................................................................................................16
3.2.2.1 Windows ...................................................................................................16
3.2.2.2 Linux.........................................................................................................16
3.3 Anmerkungen .......................................................................................................18
3.3.1 check_cisco Plugin ........................................................................................18
3.3.2 check_compaq_insight.pl Plugin ...................................................................18
3.3.3 check_ping Plugin .........................................................................................18
3.3.4 trends.cgi, histogram.cgi und statusmap.cgi...................................................19
4 Nützliche Kommandos..................................................................................................20
4.1 Apache2................................................................................................................20
4.2 Nagios...................................................................................................................20
4.3 Web-Oberfläche....................................................................................................20
2
1 Allgemeines
Es ist kostenlos und kann sehr individuell auf die jeweiligen Anforderungen
„maßgeschneidert“ werden.
Außerdem besteht inzwischen eine stetig wachsende Gemeinde von Nagios-usern
weltweit. Viele große Firmen sind inzwischen auf dieses System gewechselt, siehe
http://www.nagios.org/userprofiles/quickstats.php.
Sollte man auf programmspezifische Probleme stoßen, so wird einem in Foren und
Mailing-Listen im Internet sehr schnell weiter geholfen.
Das Programm selbst besteht aus einem in C geschriebenem Daemon, der über eine
Reihe von Konfigurationsdateien gesteuert wird, sowie einigen weiteren
Komponenten.
Statusinformationen gibt Nagios über ein Logfile, vor allem aber über ein
übersichtliches Web-Frontend aus.
3
1.2 Verwendete Hardware
- HP ProLiant DL360 G3
- Intel Xeon Prozessor 2,8GHz
- 1024MB Arbeitsspeicher
- 2x36,4GB SCSI-Festplatten Raid1
- Ethernet-Karte 10/100/1000 Mbit
4
2 Installation
5
- Für nähere Informationen zur Installation, die Datei
/usr/local/src/nagios-2.0b4/INSTALLING sowie
/usr/local/nagios/share/doc/installing.html beachten.
- Im Verzeichnis /usr/local/nagios sind 5 Unterverzeichnisse:
1. bin/ Das Programm
2. etc/ Konfigurationsdateien
3. sbin/ CGIs
4. share/ HTML files
5. var/ Log files, Status files
- Im Runlevel-Editor von YAST „nagios“ für Runlevel 2, 3 und 5 eintragen.
- Eine Beispielkonfiguration ist eingerichtet. Jedoch ist Nagios damit noch nicht
startbereit.
Plugins sind Scripte oder ausführbare Dateien, die die Dienste- und Hosts-
Überprüfung durchführen.
6
2.4 Web-Interface aufsetzen
- Folgende zwei Einträge in der Datei /etc/apache2/httpd.conf hinzufügen:
- die elegantere Lösung wäre es einen VirtualHost anzulegen, der auf Nagios
zeigt (http://virtualhost)
siehe http://httpd.apache.org/docs/2.0/de/mod/core.html.de#virtualhost
7
2.5 Authentifizierung einrichten
- Erstellen einer Datei .htaccess im Verzeichnis /usr/local/nagios/sbin sowie in
/usr/local/nagios/share mit folgendem Inhalt:
- Damit ist die Authentifizierung auf dem Webserver aktiviert und es müssen
Benutzer angelegt werden, die auf Nagios zugreifen dürfen.
- Mit folgendem Befehl wird eine neue Datei htpasswd.users mit den
berechtigten Nutzern und deren Passwörtern im Verzeichnis
/usr/local/nagios/etc/ angelegt.
htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
- Bei erneutem Aufruf (Hinzufügen weiterer User) wird Option „-c“ nicht mehr
benötigt, damit wurde Datei angelegt.
- Wichtig: Überprüfen, ob use_authentification=1 in Datei cgi.cfg gesetzt.
- Ab sofort können nur noch so angelegte Benutzer auf die Nagios
Weboberfläche zugreifen (Benutzername und Passwort werden abgefragt).
8
2.5.1.1 .htaccess
2.5.1.2 httpd.conf
9
3 Konfiguration
Nagios kennt dabei für jeden Dienst einen host, der diesen Dienst anbietet; mehrere
solcher Hosts lassen sich zu einer hostgroup zusammenfassen. Über eine servicegroup
kann man dagegen die einzelnen Dienste mehrerer Hosts zusammenfassen.
Über das Modul NRPE (Nagios Remote Plugin Executor) kann Nagios Plugins direkt
auf einem externen Host starten; alternativ kann ein NSCA (Nagios Service Check
Acceptor) als Agent auch Ereignisse von selbst an den Nagios-Daemon melden.
10
3.1 Die Konfigurationsdateien
3.1.1 /usr/local/nagios/etc/nagios.cfg
die Hauptkonfigurationsdatei
siehe http://nagios.sourceforge.net/docs/2_0/configmain.html
3.1.2 /usr/local/nagios/etc/resource.cfg
Definitionen der Makros
siehe http://nagios.sourceforge.net/docs/2_0/macros.html
3.1.3 /usr/local/nagios/etc/cgi.cfg
CGI Konfiguration
siehe http://nagios.sourceforge.net/docs/2_0/configcgi.html
3.1.4 /usr/local/nagios/etc/contacts.cfg
Definitionen der verfügbaren Kontakte in Nagios
siehe http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#contact
define contact {
contact_name nagiosadmin
alias nagiosadmin
host_notification_period 24x7
host_notification_options d,u,r
host_notification_commands notify-by-email
service_notification_period 24x7
service_notification_options w,u,c,r
service_notification_commands notify-by-email
email nagios@localhost
}
3.1.5 /usr/local/nagios/etc/contactgroups.cfg
Gruppieren der angelegten Kontakte
siehe http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#contactgroup
define contactgroup {
contactgroup_name Nagios_Admin
alias Nagios_Admin
members nagiosadmin
}
11
3.1.6 /usr/local/nagios/etc/hosts.cfg
Definitionen der vorhandenen Hosts
siehe http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#host
define host{
host_name Switch01
alias Switch cisco
address 192.16.4.50
check_command check-host-alive
max_check_attempts 5
process_perf_data 0
retain_nonstatus_information 0
notification_interval 30
notification_period 24x7
notification_options d,u,r
contact_groups Nagios_Admin
}
3.1.7 /usr/local/nagios/etc/hostgroups.cfg
Gruppieren der angelegten Hosts
siehe http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#hostgroup
define hostgroup{
hostgroup_name Switch
alias Switch
members Switch01, Switch02, Switch03
}
3.1.8 /usr/local/nagios/etc/services.cfg
Definitionen der gewünschten Service Checks
siehe http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#service
define service{
host_name Switch01, Switch03
service_description Cisco Port 49 - GigabitEthernet0/1
check_command check_cisco!public!49
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
check_period 24x7
notification_interval 20
notification_period 24x7
notification_options w,c,u,r
contact_groups Nagios_Admin
}
12
3.1.9 /usr/local/nagios/etc/checkcommands.cfg
Definitionen der Check Kommandos
siehe http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#command
3.1.10 /usr/local/nagios/etc/misccommands.cfg
Definitionen für andere Kommandos
siehe http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#command
3.1.11 /usr/local/nagios/etc/timeperiods.cfg
Definition des Zeitraumes wann Nagios z.B. notifications verschickt
siehe http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#timeperiod
define timeperiod {
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
13
3.1.12 /usr/local/nagios/etc/hostextinfo.cfg
optionale Informationen für Status-Anzeige
siehe http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#hostextinfo
define hostextinfo{
host_name Switchrouter
icon_image network.gif
vrml_image network.gif
statusmap_image network.gif
2d_coords 20,20
3d_coords 100.0,50.0,75.0
action_url telnet://$HOSTADDRESS$
}
14
3.2 NRPE
- Mit nrpe (Nagios Remote Plugin Executor) ist es möglich, Plugins auf
entfernten Rechnern auszuführen.
- Soll zum Beispiel der verfügbare Speicherplatz auf einem entfernten Rechner
überprüft werden, wird das check_nrpe Plugin auf dem Nagios-Rechner
ausgeführt. Diese Anfrage wird an den remote-host geschickt und der dort
laufende nrpe-Dienst führt das lokale Speicherplatz-Plugin aus. Das Ergebnis
der Überprüfung wird an den Nagios Rechner zurückgeschickt.
3.2.1 Server
- Aktuelle Version (hier: nrpe-2.0.tar.gz) herunterladen
(http://www.nagiosexchange.org/NRPE.77.0.html?&tx_netnagext_pi1[p_view]
=126)
- Konfigurieren mit ./configure
- Kompilieren mit make all
- Die ausführbare Datei check_nrpe befindet sich danach im Verzeichniss src/
- Diese Datei nach /usr/local/nagios/libexec/ kopieren.
- Die zwei wichtigen Dateien services.cfg und checkcommands.cfg sollten den
eigenen Vorstellungen entsprechend angepasst werden.
- Beispiel checkcommands.cfg:
define command{
command_name nt_check_disk_c
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c
nt_check_disk_c
}
- Beispiel services.cfg:
define service{
host_name fileserver1
service_description Speicherplatz Partition C
check_command nt_check_disk_c
max_check_attempts 3
normal_check_interval 1
retry_check_interval 1
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,c,u,r
contact_groups Nagios_Admin
}
15
3.2.2 Clients
3.2.2.1 Windows
3.2.2.2 Linux
16
- „-l <user>“ ist der User auf dem entferntem Rechner.
- Damit das funktioniert, muss natürlich ein passender ssh-key generiert werden
für die Authentifizierung. Dazu eine kleine Hilfestellung:
17
3.3 Anmerkungen
und
# 'check_ping' command definition
define command{
command_name check_ping
command_line $USER1$/check_icmp -H $HOSTADDRESS$
}
18
3.3.4 trends.cgi, histogram.cgi und statusmap.cgi
- für die korrekte Anzeige von trends, histogramm und statusmap auf der Web-
Oberfläche müssen libraries und devel-Pakete von gd, png, zlib und jpeg
nachinstalliert werden.
- Bei der hier verwendeten CD-Version von Suse sind keine Devel-Pakete von
gd beigelegt, also herunterladen von http://www.boutell.com/gd/ (hier: Version
2.0.33)
Auf der DVD-Version verfügbar!
- Entpacken und Konfigurieren mit ./configure –prefix=/usr
- Kompilieren mit make all und installieren mit make install.
- Dann im Nagios-download-Verzeichnis ein
make clean
und erneutes Konfigurieren mit
./configure --with-gd-lib=/usr/lib --with-gd-inc=/usr/include
- Anschliessend mit make all neu Kompilieren und die jetzt verfügbaren cgi´s
ins Nagios-Verzeichnis kopieren (/usr/local/nagios/sbin/).
- Damit sollten jetzt alle Funktionen der Nagios-Weboberfläche funktionieren.
19
4 Nützliche Kommandos
4.1 Apache2
Usage: /etc/init.d/apache2 <command>
4.2 Nagios
- Konfigurationsdateien auf Richtigkeit überprüfen:
/usr/local/nagios/bin/nagios-v /usr/local/nagios/etc/nagios.cfg
- Nagios starten:
Usage: nagios {start|stop|restart|reload|force-reload|status}
Für Neustart am besten: /etc/init.d/nagios reload
4.3 Web-Oberfläche
- Anmelden mit verschiedenen Usern:
http://<user>@<IP_Nagios>/nagios/
20