Netzwerkmanagement, Analyse und Werkzeuge (Praktikum

)
Aufgabe 2: Nagios
Sommersemester 2007 Fakultät Informatik

verfasst von:

Lukas Kallies Andreas Thienemann 3. Juni 2007

Inhaltsverzeichnis
1 Einleitung.................................................................................................... .............2 2 Was ist Nagios?................................................................................................ ........2 3 Installation und Konfiguration.................................................... .............................2 3.1 Anpassung des Systems........................................................................ ...........2 3.2 Apache Konfiguration...................................................... .................................3 3.3 Nagios konfigurieren..................................................................................... ....3 Ping, HTTP, MySQL und freier Speicherplatz.............................. ......................6 . Erreichbarkeit und Verfügbarkeit von Diensten................................................9 CVS mit check_tcp überwachen.....................................................................14 . LDAP mit check_ldap überwachen................................................................. ..15 Mailserver überwachen................................................................................. ...17 SSH mit check_ssh überwachen.................................................... ..................19 Pixelschieben................................................................... ................................20 4 Testlauf................................................................................................................. ..23

i

Einleitung

1 Einleitung
Aufgabenstellung: „Im Rahmen des NAW Praktikums befassen wir uns mit dem Netzwerkmanagement-Werkzeug Nagios. Auf virtuellen Hosts ist Nagios sowie ein Webserver Apache vorinstalliert. Sie werden in 2er Gruppen dieses Nagios konfigurieren.“

2 Was ist Nagios?
Aufgabenstellung: „Recherchieren Sie im Internet über das Netzwerkmanagementtool „Nagios“ und machen sich mit Nagios, seinen Aufgaben und Möglichkeiten vertraut.“ Nagios ist ein System- und Netzwerkmonitoring Werkzeug mit dessen Hilfe es möglich ist zu überprüfen ob einzelne Dienste eines Rechners beziehungsweise der Rechner selbst erreichbar ist. Durch den modularen Aufbau von Nagios ist es möglich Plugins für die sogenannten Checks zu verwenden. Somit kann fast jede beliebige Eigenheit eines Servers, Arbeitzsplatzrechners oder auch sonstigen Komponenten wie Switches oder Drucker überwacht werden. Einige Beispiele sind die Erreichbarkeit des Mailservers, die Auslastung der Festplatte, der Füllstand der Druckerpatronen eines Abteilungsdruckers, die Temperatur im Serverrraum oder die Anzahl der freien Inodes. Somit ist es einem Administrator möglich mehrere Ressourcen gleichzeitig zu überprüfen ohne an jedes einzelne Gerät zu laufen oder sich durch die Benutzer informieren lassen zu müssen.

3 Installation und Konfiguration
3.1 Anpassung des Systems
Neben den eigentlichen Anpassungen die für den Betrieb von Nagios relevant sind, wurden von uns am System einige Änderungen vorgenommen. Wir wollen an dieser Stelle nicht genauer darauf eingehen, sie der Vollständigkeit halber aber auflisten:

2

Installation und Konfiguration

# # # # # # # # # # # # # #

passwd groupadd naw useradd -G naw -d /home/kallies -s /bin/bash -c "Lukas Kallies" -m kallies useradd -G naw -d /home/ixs -s /bin/bash -c "Andreas Thienemann" -m ixs passwd kallies passwd ixs aptitude update aptitude upgrade aptitude install vim screen tree ntpdate nmap ntpdate time.uni-freiburg.de && hwclock -w cd /usr/share/nagios2/htdocs/images/logos && tar xvf /root/imagepak-base.tar.tar #fuer passive Checks: chmod 755 /var/lib/nagios2 chmod 2770 /var/lib/nagios2/rw/

3.2 Apache Konfiguration
Aufgabenstellung: „Konfiguration des Apache-Webservers um die NagiosWebseiten automatisch darzustellen.“ Am Apache-Webserver mussten keine Änderungen vorgenommen werden da die Debianpakete alle für uns notwendigen Einstellungen schon vorkonfiguriert haben. Um Zugriff auf die Weboberfläche von Nagios zu bekommen mussten wir lediglich die entsprechenden Benutzer in der Datei /etc/nagios2/htpasswd.users anlegen. Hierfür haben wir folgende Befehle gefolgt von dem entsprechenden Passwort verwendet:
# htpasswd /etc/nagios2/htpasswd.users nagiosadmin # htpasswd /etc/nagios2/htpasswd.users guest

Den neu angelegten Benutzer „guest“ haben wir in der Datei /etc/nagios2/cgi.cfg eingetragen um ihm Zugriff auf die Weboberfläche zu gewähren.
/etc/nagios2/cgi.cfg < authorized_for_all_services=nagiosadmin < authorized_for_all_hosts=nagiosadmin ... > authorized_for_all_services=nagiosadmin,guest > authorized_for_all_hosts=nagiosadmin,guest

3.3 Nagios konfigurieren
Aufgabenstellung: „Im Nagios Konfigurationsbereich müssen mit Hilfe der dortigen Konfigurationsfiles folgende Aufgaben erledigt werden.“ Das bei Debian 4.0 GNU/Linux mitgeliefert Paket nagios2-common legt seine Konfigurationsdateien unter /etc/nagios2 ab. In diesem Verzeichnis finden sich die Grundeinstellungen von Nagios in der Datei nagios.cfg. Dort wird definiert wo sich weitere Konfigurationsdateien befinden und beispielsweise wo Nagios sein PID-File ablegen soll. Außerdem müssen in diesem Verzeichnis noch die Dateien cgi.cfg und 3

Installation und Konfiguration
Verzeichnisbaum 1: /etc/nagios2 . |-|-|-|-| | | | | | | | | | | | | | | | | | | | | | | | |-|-|-`-apache2.conf cgi.cfg commands.cfg conf.d |-- contacts_nagios2.cfg |-- generic-host_nagios2.cfg |-- generic-service_nagios2.cfg |-- hostgroups_nagios2.cfg |-- hosts | |-- 141.28.65.142_nagios2.cfg | |-- FOO-GW.rz-int.fh-furtwangen.de_nagios2.cfg | |-- SusiDerkins.foo.fh-furtwangen.de_nagios2.cfg | |-- averell.foo.fh-furtwangen.de_nagios2.cfg | |-- eva.foo.fh-furtwangen.de_nagios2.cfg | |-- fermat.ai-lab.fh-furtwangen.de_nagios2.cfg | |-- ftpserver.alpha.fh-furtwangen.de_nagios2.cfg | |-- hack-fw.foo.fh-furtwangen.de_nagios2.cfg | |-- host-gateway_nagios2.cfg | |-- kenny.foo.fh-furtwangen.de_nagios2.cfg | |-- ldap-RZ.informatik.hs-furtwangen.de_nagios2.cfg | |-- ldapin.informatik.fh-furtwangen.de_nagios2.cfg | |-- localhost_nagios2.cfg | |-- son.foo.fh-furtwangen.de_nagios2.cfg | |-- whisky.uni-koblenz.de_nagios2.cfg | `-- zeus.ai-lab.fh-furtwangen.de_nagios2.cfg |-- servicegroups_nagios2.cfg |-- services_nagios2.cfg `-- timeperiods_nagios2.cfg htpasswd.users nagios.cfg resource.cfg stylesheets

resource.cfg vorhanden sein. Diese definieren das Verhalten der Skripte der Weboberfläche (cgi.cfg), benutzerspezifische Makros wie den Pfad zu den Plugins (resource.cfg). In unserer Konfiguration liegt in diesem Verzeichnis noch die Datei commands.cfg, welche alle command-Objekte definiert, also alles was Nagios tut beziehungsweise tun kann. Da Nagios an sich nur die Grundlage bildet und selbst keine Checks durchführen kann benötigt man noch das Paket nagios-plugins-basic. Dieses wiederum legt seine Konfigurationsdateien unter /etc/nagios-plugins ab. So wird beispielsweise das generische Plugin check_tcp unter /etc/nagios-plugins/config/tcp_udp.cfg wie folgt definiert:
/etc/nagios-plugins/config/tcp_udp.cfg # 'check_tcp' command definition define command{ command_name check_tcp command_line /usr/lib/nagios/plugins/check_tcp -H $HOSTADDRESS$ -p $ARG1$ }

4

Installation und Konfiguration Hier wird definiert, dass das Kommando check_tcp das Skript /usr/lib/nagios/plugins/check_tcp mit den Parametern -H und -p aufruft und dieses über die beiden Variablen $HOSTADDRESS$ und $ARG1$ über eine Servicedefinition angesprochen werden kann.
Verzeichnisbaum 2: /etc/nagios-plugins . `-- config |-- apt.cfg |-- dhcp.cfg |-- disk.cfg |-- dummy.cfg |-- ftp.cfg |-- http.cfg |-- load.cfg |-- mail.cfg |-- news.cfg |-- nmap.cfg |-- ntp.cfg |-- ping.cfg |-- procs.cfg |-- real.cfg |-- ssh.cfg |-- tcp_udp.cfg |-- telnet.cfg `-- users.cfg

Einen sehr guten Einblick in die komplexen Zusammenhänge der einzelnen Konfigurationsdateien gibt folgende Grafik aus der Dokumentation von Nagios.

5

Installation und Konfiguration

Ping, HTTP, MySQL und freier Speicherplatz
Aufgabenstellung: „Prüfen Sie, ob die Dienste der virtuellen Nodes: 141.28.65.141 (Ping), 141.28.65.142 (Ping, HTTP, MySQL), 141.28.65.151 (den freien Speicher des Nagios Servers) erreichbar sind und erörtern Sie kurz die Ausgabe der spezifischen Nagios-Plugins.“ Zuerst wurden von uns die einzelnen Hosteinträge angelegt. Bis auf localhost wurden die Services in gesonderten Dateien definiert. Danach wurden die Hosts den entsprechenden Hostgruppen zugeordnet.
/etc/nagios2/conf.d/hosts/whisky.uni-koblenz.de_nagios2.cfg define host{ use parents host_name alias address } generic-host localhost whisky whisky.uni-koblenz.de 141.28.65.141

6

Installation und Konfiguration
/etc/nagios2/conf.d/hosts/141.28.65.142_nagios2.cfg define host{ use parents host_name alias address } generic-host localhost 141.28.65.142 141.28.65.142 141.28.65.142

/etc/nagios2/conf.d/hosts/localhost_nagios2.cfg define host{ use host_name alias address } define service{ use host_name service_description check_command } generic-host localhost localhost 141.28.65.151

generic-service localhost Disk Space check_all_disks!20%!10%

/etc/nagios2/conf.d/hostgroups_nagios2.cfg define hostgroup { hostgroup_name alias members } define hostgroup { hostgroup_name alias members } define hostgroup { hostgroup_name alias members } http-servers HTTP servers 141.28.65.142

mysql-servers MYSQL servers 141.28.65.142

ping-servers Pingable servers whisky,141.28.65.142

/etc/nagios2/conf.d/services_nagios2.cfg define service { hostgroup_name service_description check_command http-servers HTTP check_http

7

Installation und Konfiguration
use notification_interval generic-service 0

}

define service { hostgroup_name service_description check_command use notification_interval } define service { hostgroup_name service_description check_command use notification_interval }

mysql-servers MYSQL check_tcp!3306 generic-service 0

ping-servers PING check_ping!100.0,20%!500.0,60% generic-service 0

Nachfolgende Grafik zeigt einen angepassten Screenshot der Ausgabe der einzelnen Nagios-Plugins in der Weboberfläche.

Service PING

Beispiel OK - 141.28.65.142: rta 3.207ms, lost 0%

Erläuterung Es wurde ein Ping an 141.28.65.142 abgesetzt. Die durchschnittliche Reaktionszeit beträgt in diesem Fall 3,207 ms, es liegt kein Paketverlust vor. In diesem Fall wird MySQL mit dem generischen check_tcp geprüft. Dabei wird die Erreichbarkeit des Ports 3306 validiert. In unserem Fall dauerte dies 0,016 Sekunden.

MYSQL

TCP OK - 0.016 second response time on port 3306

8

Installation und Konfiguration HTTP HTTP OK HTTP/1.1 200 OK 5553 bytes in 0.096 seconds Eine HTTP Anfrage auf Port 80 dauerte 0,096 Sekunden und lieferte ein Code 200 (OK) zurück. Übertragen wurden dabei 5553 Bytes. Die Festplatte unseres Servers ist zu 9% belegt, es sind noch 6551 MB und 96% der Inodes verfügbar.

Disk Space DISK OK - free space: / 6551 MB (91% inode=96%): /dev/shm 30 MB (100% inode=99%):

Erreichbarkeit und Verfügbarkeit von Diensten Aufgabenstellung: „Prüfen Sie, ob die Nodes: 141.28.15.26, 141.28.2.19, 141.28.64.100, 141.28.64.197, 141.28.64.210, 141.28.34.108, 141.28.33.99 erreichbar sind und welche Dienste bereitgestellt werden.“ Um eine schnelle Übersicht über die gescannten Rechner zu bekommen haben wir eine Servicegoup definiert und die einzelnen Hosts der Gruppe zugeordnet.
/etc/nagios2/conf.d/servicegroups_nagios2.cfg define servicegroup { servicegroup_name nmap-scanned alias NMAP scanned servers }

Da wir mit check_by_nmap ein neues Plugin hinzugefügt haben, müssen wir dieses unter /etc/ nagios-plugins bekannt machen. Dies geschieht wie folgt:
/etc/nagios-plugins/config/nmap.cfg # 'check_by_nmap' command definition define command{ command_name check_by_nmap command_line /usr/lib/nagios/plugins/check_by_nmap -n /usr/bin/nmap -i $HOSTADDRESS$ -p $ARG1$ }

Nachfolgend werden die einzelnen Host- und Servicedefinitionen sowie die einzelnen Ports und die dazugehörenden Dienste gelistet, welche am 29.03.2007 als geöffnet angezeigt wurden (manueller nmap-Scan mit Parameter -O).
/etc/nagios2/conf.d/hosts/FOO-GW.rz-int.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address generic-host localhost foo-gw FOO-GW.rz-int.fh-furtwangen.de 141.28.15.26

9

Installation und Konfiguration
} define service{ use host_name servicegroups service_description check_command } generic-service foo-gw nmap-scanned NMAPScanned check_by_nmap!22,80

Port 22 80

Dienst SSH HTTP

Tabelle 1: FOO-GW.rz-int.fh-furtwangen.de /etc/nagios2/conf.d/hosts/ftpserver.alpha.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } generic-host localhost ftpserver ftpserver.alpha.fh-furtwangen.de 141.28.2.19

define service{ use generic-service host_name ftpserver servicegroups nmap-scanned service_description NMAPScanned check_command check_by_nmap!10000,111,21,22,25,27000,32773,427,443,53,631,747,80,990 }

10

Installation und Konfiguration Port 21 22 25 53 80 111 427 443 631 747 990 10000 27000 32773 Dienst FTP SSH SMTP DNS HTTP RPC Server Location HTTPS IPP Fujitsu Device Control FTPS Webmin FlexLM/unknown RPC/unknown

Tabelle 2: ftpserver.alpha.fh-furtwangen.de /etc/nagios2/conf.d/hosts/eva.foo.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } define service{ use host_name servicegroups service_description check_command } generic-host localhost eva eva.foo.fh-furtwangen.de 141.28.64.100

generic-service eva nmap-scanned NMAPScanned check_by_nmap!1008,111,113,2049,22,443,625,80,902

11

Installation und Konfiguration Port 22 80 111 113 443 625 902 1008 2049 Dienst SSH HTTP RPC Auth HTTPS unknown iss-realsecure-sensor UFSD NFS

Tabelle 3: eva.foo.fh-furtwangen.de /etc/nagios2/conf.d/hosts/kenny.foo.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } define service{ use host_name servicegroups service_description check_command } generic-host localhost kenny kenny.foo.fh-furtwangen.de 141.28.64.197

generic-service kenny nmap-scanned NMAPScanned check_by_nmap!111,113,2049,22,548,631,694,718

Port 22 111 113 548 631 694 718 2049

Dienst SSH RPC Auth unknown IPP unknown unknown NFS

Tabelle 4: kenny.foo.fh-furtwangen.de

12

Installation und Konfiguration
/etc/nagios2/conf.d/hosts/SusiDerkins.foo.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } define service{ use host_name servicegroups service_description check_command } generic-host localhost SusiDerkins SusiDerkins.foo.fh-furtwangen.de 141.28.64.210

generic-service SusiDerkins nmap-scanned NMAPScanned check_by_nmap!23,80

Port 23 80

Dienst Telnet HTTP

Tabelle 5: SusiDerkins.foo.fh-furtwangen.de /etc/nagios2/conf.d/hosts/fermat.ai-lab.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } define service{ use host_name servicegroups service_description check_command } generic-host localhost fermat fermat.ai-lab.fh-furtwangen.de 141.28.34.108

generic-service fermat nmap-scanned NMAPScanned check_by_nmap!22,389,443,53,80

13

Installation und Konfiguration Port 22 53 80 389 443 Dienst SSH DNS HTTP LDAP HTTPS

Tabelle 6: fermat.ai-lab.fh-furtwangen.de /etc/nagios2/conf.d/hosts/zeus.ai-lab.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } define service{ use host_name servicegroups service_description check_command } generic-host localhost zeus zeus.ai-lab.fh-furtwangen.de 141.28.33.99

generic-service zeus nmap-scanned NMAPScanned check_by_nmap!111,2049,22,23,25,32771,32774,32775,4045

Port 22 23 25 111 2049 4045 32771 32774 32775

Dienst SSH Telnet SMTP RPC NFS Lockd/unknown RPC/unknown RPC/unknown RPC/unknown

Tabelle 7: zeus.ai-lab.fh-furtwangen.de

CVS mit check_tcp überwachen Aufgabenstellung: „Da es für Nagios kein Plugin gibt, welches den CVS-Server 141.28.64.51 überwacht, muss hierzu das Plugin „check_tcp“ verwendet werden 14

Installation und Konfiguration (Datei: checkcommands.cfg).“ Wir definieren an dieser Stelle einen Service, welcher einer Hostgroup zugeordnet ist und check_tcp auf Port 2401 ausführt.
/etc/nagios2/conf.d/services_nagios2.cfg # check that CVS is running define service { hostgroup_name service_description check_command use notification_interval }

cvs-servers CVS check_tcp!2401 generic-service 0

Um der Hostgroup Mitglieder zuzuordnen ist folgender Eintrag notwendig:
/etc/nagios2/conf.d/hostgroups_nagios2.cfg # A list of your cvs servers define hostgroup { hostgroup_name cvs-servers alias CVS servers members son }

Da wir den Host bislang noch nicht definiert haben ist ein neuer Hosteintrag notwendig.
/etc/nagios2/conf.d/hosts/son.foo.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } generic-host localhost son son.foo.fh-furtwangen.de 141.28.64.51

LDAP mit check_ldap überwachen Aufgabenstellung: „Überprüfen des Dienstes LDAP auf den Nodes 141.28.79.1 und 141.28.65.131 (verwenden Sie hierzu das Plugin „check_tcp“).“ Da es für Nagios das Plugin check_ldap gibt haben wir uns dazu entschlossen dieses zu kompilieren und zu verwenden. Dazu werden die developer LDAP-Libraries sowie 15

Installation und Konfiguration SSL-Libraries (für LDAPS Support) benötigt. Die Installation von fping ist an dieser Stelle optional, kann jedoch für spätere Erweiterungen sinnvoll sein.
# aptitude install libldap2-dev libldap2-dev libssl-dev fping # wget http://belnet.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins1.4.6.tar.gz # tar xvfz nagios-plugins-1.4.6.tar.gz # ./configure # make

Da der Einsatz von check_ldap Probleme machte haben wir jedoch auf dessen Einsatz verzichtet und wie in der Aufgabe beschrieben check_tcp verwendet. Da wir einen noch nicht vorhandenen Servicecheck ausführen wollen, erstellen wir diesen wie folgt in /etc/nagios2/conf.d/services_nagios2.cfg.
/etc/nagios2/conf.d/services_nagios2.cfg # check that LDAP is running define service { hostgroup_name service_description check_command use notification_interval } # check that LDAPS is running define service { hostgroup_name service_description check_command use notification_interval }

ldap-servers LDAP check_tcp!389 generic-service 0

ldaps-servers LDAPS check_tcp!636 generic-service 0

Den einzelnen Hosts ordnen wir mithilfe einer Hostgroup die Servicechecks zu. Somit muss nicht für jeden Host ein eigener Servicecheck definiert werden.
/etc/nagios2/conf.d/hostgroups_nagios2.cfg define hostgroup { hostgroup_name alias members } define hostgroup { hostgroup_name alias members } ldap-servers LDAP servers ldapIN,ldap-RZ

ldaps-servers LDAPS servers ldapIN,ldap-RZ

16

Installation und Konfiguration Natürlich müssen die zu prüfenden Hosts existieren um überhaupt Checks darauf anwenden zu können. Auch hier erstellen wir wieder für jeden Host eine eigene Datei. Natürlich wäre es auch möglich die Hosts alle in einer Datei einzutragen. Da wir aber wenige Hosteinträge verwenden und teilweise hostspezifische Einträge verwenden ist die Lösung mit mehreren getrennten Dateien in einem Ordner aber nicht die schlechteste – wenn auch nicht die einzig sinnvolle.
/etc/nagios2/conf.d/hosts/ldapin.informatik.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } generic-host localhost ldapIN ldapin.informatik.fh-furtwangen.de 141.28.65.131

/etc/nagios2/conf.d/hosts/ldap-RZ.informatik.hs-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } generic-host localhost ldap-RZ ldap-RZ.informatik.hs-furtwangen.de 141.28.79.1

Nach der erneuten Eingabe von /etc/init.d/nagios2 reload sehen wir in der Weboberfläche jetzt die beiden Hostgroups und können uns die Ausgabe der einzelnen Checks ansehen.

Mailserver überwachen Aufgabenstellung: „Die Dienste (Ping, POP, SMTP) des Mailservers 141.28.64.55 sollten ebenfalls überwacht werden.“ Da wir den Host 141.28.64.55 (averell.foo.fh-furtwangen.de) bislang noch nicht verwendet haben, definieren wir zuerst einen Hosteintrag für diesen. 17

Installation und Konfiguration
/etc/nagios2/conf.d/hosts/averell.foo.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } generic-host localhost averell averell.foo.fh-furtwangen.de 141.28.64.55

Auch an dieser Stelle ordnen wir den Hosts mithilfe von Hostgroups die Servicechecks zu. Die Hostgroup ping-servers haben wir um den Eintrag averell erweitert, da den Hosts whisky und 141.28.65.142 bereits im ersten Aufgabenteil dieser Servicecheck zugeordnet wurde.
/etc/nagios2/conf.d/hostgroups_nagios2.cfg # A list of your pop servers define hostgroup { hostgroup_name pop-servers alias POP servers members averell } # A list of your smtp servers define hostgroup { hostgroup_name smtp-servers alias SMTP servers members averell } define hostgroup { hostgroup_name alias members } ping-servers Pingable servers whisky,141.28.65.142,averell

Nach der Eingabe von /etc/init.d/nagios2 reload bekommen wir auch diese Servicechecks in unserer Werboberfläche angezeigt:

18

Installation und Konfiguration

SSH mit check_ssh überwachen Aufgabenstellung: „Für den SSH-Dienst des Servers 141.28.64.253 ist das Plugin „check_ssh“ zu verwenden.“ Wie gehabt erstellen wir einen Hosteintrag für den zu prüfenden Host 141.28.64.253 ( hack-fw.foo.fh-furtwangen.de).
/etc/nagios2/conf.d/hosts/hack-fw.foo.fh-furtwangen.de_nagios2.cfg define host{ use parents host_name alias address } generic-host localhost hack-fw hack-fw.foo.fh-furtwangen.de 141.28.64.253

In services_nagios2.cfg wurde der Servicecheck für SSH definiert und der Hostgroup ssh-servers zugeordnet.
/etc/nagios2/conf.d/services_nagios2.cfg # check that ssh services are running define service { hostgroup_name service_description check_command use notification_interval }

ssh-servers SSH check_ssh generic-service 0

Der Hostgroup ssh-servers wiederum ordnen wir nun unseren Host zu.
/etc/nagios2/conf.d/hostgroups_nagios2.cfg # A list of your ssh-accessible servers define hostgroup { hostgroup_name ssh-servers alias SSH servers

19

Installation und Konfiguration
members } hack-fw

Nun kann man in der Weboberfläche auch den Status für diesen Servicecheck abfragen. Hier wird sehr deutlich, dass SSH-Verbindungen von hack-fw dauerhaft (seit über 38 Tagen) abgewiesen werden.

Pixelschieben Aufgabenstellung: „Positionieren Sie die Nodes auf der 2D-Grafik.“ Um die Hosts auf der Grafik zu positionieren sind so genannte hostextinfo-Einträge notwendig. Über diese Einträge kann man den Hosts in der Grafik bestimmte Eigenschaften wie Beschreibung, Position oder Symbol mitgeben. Hier ein nicht vollständiges Beispiel:
hostextinfo-Eintrag #Hosteintrag define host{ use host_name alias address } #Hostextinfo-Eintrag define hostextinfo{ hostgroup_name notes notes_url icon_image icon_image_alt vrml_image statusmap_image 2d_coords }

generic-host localhost localhost 127.0.0.1

; Name of host template to use

debian-servers Debian GNU/Linux servers http://localhost/ base/debian.png Debian GNU/Linux debian.png base/debian.gd2 100,100

In unserer Konfiguration haben wir die einzelnen Einträge in die Dateien geschrieben, in denen auch die Hostdefinition stehen, also beispielsweise /etc/nagios2/conf.d/hosts/kenny.foo.fh-furtwangen.de_nagios2.cfg. Um nicht noch einmal alle Dateien einzelnen auflisten zu müssen, führen wir die Positionierungsinformationen als ein Listing auf.
Positionierungsinformationen der einzelnen Hosts

20

Installation und Konfiguration
#141.28.65.141 define hostextinfo{ host_name statusmap_image icon_image 2d_coords } #141.28.65.142 define hostextinfo{ host_name 2d_coords } #141.28.65.151 define hostextinfo{ hostgroup_name notes icon_image icon_image_alt vrml_image statusmap_image 2d_coords } #141.28.15.26 define hostextinfo{ host_name 2d_coords } #141.28.2.19 define hostextinfo{ host_name statusmap_image icon_image 2d_coords } #141.28.64.100 define hostextinfo{ host_name statusmap_image icon_image 2d_coords } #141.28.64.197 define hostextinfo{ host_name statusmap_image icon_image 2d_coords }

whisky base/linux40.gd2 base/linux40.png 500,300

141.28.65.142 100,200

debian-servers Debian GNU/Linux servers base/debian.png Debian GNU/Linux debian.png base/debian.gd2 300,250

foo-gw 300,100

ftpserver base/linux40.gd2 base/linux40.png 500,200

eva base/debian.gd2 base/debian.png 100,400

kenny base/debian.gd2 base/debian.png 200,400

21

Installation und Konfiguration
#141.28.64.210 define hostextinfo{ host_name 2d_coords } #141.28.34.108 define hostextinfo{ host_name statusmap_image icon_image 2d_coords } #141.28.33.99 define hostextinfo{ host_name statusmap_image icon_image 2d_coords } #141.28.64.51 define hostextinfo{ host_name statusmap_image icon_image 2d_coords } #141.28.79.1 define hostextinfo{ host_name 2d_coords } #141.28.65.131 define hostextinfo{ host_name 2d_coords } #141.28.64.55 define hostextinfo{ host_name statusmap_image icon_image 2d_coords } #141.28.64.253 define hostextinfo{ host_name 2d_coords }

SusiDerkins 100,100

fermat base/debian.gd2 base/debian.png 200,100

zeus base/sun40.gd2 base/sun40.png 300,400

son base/sun40.gd2 base/sun40.png 500,400

ldap-RZ 400,100

ldapIN 100,300

averell base/sun40.gd2 base/sun40.png 400,400

hack-fw 500,100

22

Installation und Konfiguration

Abbildung 1: Positionierte Hosts in der 2D Status Map

4 Testlauf
Aufgabenstellung: „Die Tests sollen min. 2 Wochen laufen. Danach sollen die Diagnosemodule überprüft und bewertet werden.“ Seit dem produktiven Einsatz unseres Nagios Servers Anfang April 2007 wurden von unserem Nagios Prozess über 700 eMails versendet. Die meisten davon wegen neu geöffneter oder geschlossener Ports die unser Nagios Plugin check_by_nmap gefunden hat. Da einige Rechner – allen voran der FTP-Server des Rechenzentrums – täglich mehrere male neue Ports öffnen und in relativ kurzer Zeit wieder schließen ist es bei diesen Rechnern nicht sinnvoll dauerhaft zu prüfen welche Ports offen sind. Nur wenn man sicherstellen will, dass nur bestimmte Ports geöffnet sein dürfen und auch müssen ist der Einsatz eines dauerhaften Portscans durch check_by_nmap sinnvoll. Andere eMails die versendet wurden weisen darauf hin, dass Hosts gerade nicht erreichbar oder eben wieder erreichbar sind. Diese durch Hostchecks sind ein sehr wichtiges Indiz für den Administrator zu handeln – denn bei einem gewollten Ausfall, 23

Testlauf beispielsweise wegen Wartungsarbeiten, hätte er in Nagios eine Downtime angekommen können und sollte diese Funktion auch benutzen. Denn nichts ist ärgerlicher als eine ungewollte Benachrichtigung, in anderen Umfeldern beispielsweise per SMS an den Kollegen im Urlaub. Während der Laufzeit unseres Tests konnten wir nur einen kurzfristigen Ausfall bzw. die Nichterreichbarkeit des SMTP-Servers feststellen. Einen POP Ausfall konnten wir nicht verzeichnen. Auch andere relevante Dienste wie HTTP, MySQL, LDAP und CVS waren nicht von einem Ausfall betroffen beziehungsweise konnten nicht getestet werden weil der Nagios Server selbst nicht erreichbar war. Der SSH Dienst auf hack-fw war durchgehend von unserem Server aus nicht erreichbar und hat somit lediglich ein einziges „SSH is CRITICAL“ verursacht. Daher bleibt für uns zu sagen, dass der Einsatz der aller Plugins sinnvoll ist, jedoch sollte check_by_nmap aus oben genannten Gründen lediglich auf sehr wenige Server angesetzt werden. Zu guter Letzt ein Screenshot des Punktes „Service Problems“ der Nagios Weboberfläche. Diese Seite sollte sich jeder Administrator ab und an etwas genauer ansehen um einen Überblick zu bekommen welche seiner überwachten Dienste nicht erreichbar sind. Gleiches gilt natürlich auch für „Host Problems“, diese sind aber bei einer guten Konfiguration meist durch Servicechecks abgedeckt und somit auch unter „Service Problems“ gelistet.

24

Testlauf

Abbildung 2: „Service Problems“ in der Nagios Weboberfläche

25

Sign up to vote on this title
UsefulNot useful