Login
Login-Name Passwort


 
Newsletter
Werbung

Di, 18. September 2007, 00:00

High Availability Computer Center mit hacc- Teil 2

Teil 2: Einsatz von Nagios auf den Steuerknoten

In diesem Teil wird Nagios auf den Steuerknoten eingerichtet.

Die Steuerknoten

Auf den Steuerknoten wurden die Softwarepakete pxe, syslinux, atftp, kernel_sources, ncurses (devel), dhcp, rinetd, ethtool, heartbeat und nagios verwendet. Allerdings wurde Nagios V2.5 vom Internet geladen und installiert (welches zusätzliche devel-Pakete brauchte), neben zusätzlichen Paketen wie nagios-plugin. Ebenso wurde nagiosgraph über das Internet besorgt und installiert.

Einsatz von Nagios

Die Ausfallüberwachung, sowohl für die Applikationsdienste (Dienste wie Apache, MySQL, ...) als auch für die Applikationsserver, führt Nagios aus. Dazu wurde Nagios unter /usr/local/nagios (auf dieser NFS-Ressource) installiert. Die Arbeitsknoten (Nodes) mounten alle /usr/local/nagios/libexec für die Plugins. Nagios-Nutzer ist nagios. Der Nutzer muss auch auf allen Arbeitsknoten existieren. Beide Steuerknoten haben ihre Nagios-SSH-Public-Keys allen Arbeitsknoten bekannt gemacht. Ein Anmelden ohne Rückfragen ist nach einmaligem Login von beiden Steuerknoten aus (über externe und interne Schnittstelle) möglich.

Auch bei der Apache-Konfiguration für Nagios wurde der Standard-Nutzer wwwrun durch den Nutzer nagios ersetzt (/etc/apache2/uid.conf). Weiterhin wurde dem Nutzer nagios per sudo das Ausführen privilegierter Befehle ermöglicht (Liste 4). Dazu ruft man visudo auf.

Liste 4: sudo-Konfiguration

# allgemein
User_Alias NAGIOS = nagios
Cmnd_Alias REBOOT = /sbin/init 6
Cmnd_Alias HALT = /sbin/init 0
NAGIOS ALL=(ALL) NOPASSWD: REBOOT
NAGIOS ALL=(ALL) NOPASSWD: HALT
# für Apache2
Cmnd_Alias APACHE2 = /etc/init.d/apache2 *
NAGIOS ALL=(ALL) NOPASSWD: APACHE2
# für Mysql
Cmnd_Alias MYSQL = /etc/init.d/mysql *
NAGIOS ALL=(ALL) NOPASSWD: MYSQL

Die prinzipielle Nagios-Konfiguration der Applikations-Server zeigt Liste 5. Plugins prüfen das Vorhandensein eines Dienstes. Ist der Dienst nicht verfügbar, dann wird der standardisierte event_handler namens event_service aufgerufen. Als Parameter wird der Name des Dienstes mit übergeben. Ist der Dienst der ssh-Dienst, dann wird der Knoten zurückgesetzt (Skript 5 Zeile 73 bis 92). Ansonsten wird ein Restart des Dienstes versucht, im hartnäckigen Fall ein Reboot des Knotens (Skript 5 Zeile 94 bis 120). Bei Ausfall eines Knotens wird ein neuer Knoten gesucht (Skript 6 Zeile 70 bis 112). In diesem Fall wird davon ausgegangen, dass ein Hardwareproblem vorliegt.

Liste 5: Beispiele aus der Nagios-Konfiguration

define service{
 use default-service
 host_name hacc-n00
 ...
 check_command self_check_http!http://hacc-n00/
 event_handler event_service!apache2
}
...
define host{
 use default-host
 host_name hacc-n00
 ...
 event_handler event_host
}
...
define service{
 ...
 retry_check_interval 1
 check_command check_ssh
 event_handler event_service!sshd
}

Nach einem erfolgreich gestarteten Reboot (Skript 5 Zeile 105 bis 115 und Skript 6 Zeile 97 bis 106) wird jeweils eine Downtime für den Knoten gesetzt (Skript 7.3), damit keine überflüssigen Benachrichtigungen abgesetzt werden und keine weiteren übereilten Reaktionen des Systems ausgeführt werden (Skript 5 Zeile 57 und Skript 6 Zeile 42).

Zum Verhindern von mehreren gleichzeitigen Restart-Versuchen eines Knotens trägt auch eine explizit gesetzte Host-Sperre bei (Skript 5 Zeilen 90 und 114; Test der Sperre: Skript 5 Zeilen 63 bis 68; Lösen der Sperre: Skript 5 Zeilen 47 bis 55). In die generierte Datei wird der Name des Dienstes eingetragen, der den Restart auslöst. Dadurch wird verhindert, dass mehrere Service-Events an einem Knoten mehrere Restarts auslösen und eine fehlerhafte Anwendung wiederholt einen Restart des Knotens auslöst.

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung