High Availability Computer Center (hacc-) - Update, Teil 3
Teil 3: Hochverfügbarkeit und Web-Oberfläche
Nagios konfigurieren
Nun sollten Apache2 und Nagios auf einem Steuerknoten laufen, erreichbar durch eine definierte IP-Adresse, die in der Datei /etc/hosts
definiert sein sollte. Jetzt ist es an der Zeit, die Nagios-Definition vorzunehmen (siehe auch [7], [9], [10], [11]). Beachtet werden sollte auch, dass der Nutzer nagios Eigentümer von /var/cache/nagios2 ist (siehe dazu im Nagios-Protokoll: less +F /var/log/nagios2/nagios.log
).
Hier einige kurze Erläuterungen zu den Nagios-Definitionen. In /etc/nagios2/nagios.cfg wird das Unterverzeichnis conf.d als Ort für weitere Definitionen (die gültigen Definitions-Dateien müssen mit .cfg enden) angegeben. Mit der Zeile service_perfdata_command
werden die Voraussetzungen für die Anbindung von Nagiosgrapher geschaffen (definiert in nagios.cfg).
Ansonsten wird versucht, jedes Image oder jede zu steuernde Einheit (zum Beispiel die Steuerserver) in einer Definitionsdatei zusammenzufassen. Allgemein benutzbare Kommandos werden dabei in comand.cfg zusammengefasst. Die Switches (switches.cfg) erhalten ebenso wie die Management Blades (mb.cfg) eine eigene Konfigurationsdatei. Die Steuerknoten werden in hac2-cn.cfg definiert.
Die Datei hac2-n00.cfg beschreibt ein Arbeits-Image. Die Event-Handler event_host
und event_service
reagieren auf eine Feststellung des Ausfalls eines Hosts oder Services. Dabei hat ein Host-Ausfall immer Priorität. Aber dazu mehr im nächsten Abschnitt.
Anpassungen in /etc/nagios2/nagios.cfg
cfg_dir=/etc/nagios2/conf.d (einzige Konfigurations-Definition) check_external_commands=1 process_performance_data=1 service_perfdata_command=process-service-perfdata enable_flap_detection=1 use_regexp_matching=1 admin_email=nagios@localhost
Anpassungen in /etc/nagios2/resource.cfg
$USER2$=/usr/local/bin
Anpassungen in /etc/nagios2/cgi.cfg
default_statusmap_layout=2
Anlegen/Ergänzen: /etc/nagios2/conf.d/command.cfg
define command { command_name check_ssh command_line $USER1$/check_ssh -t 10 $HOSTNAME$ } define command{ command_name check_url command_line $USER1$/check_http -u $ARG1$ $HOSTADDRESS$ } # check_www!DNS-Name!Host-IP!URL define command{ command_name check_www command_line $USER1$/check_http -H $ARG1$ -I $ARG2$ -u $ARG3$ } define command{ command_name event_service command_line $USER2$/event_service --host-down "$HOSTDOWNTIME$" --service-down "$SERVICEDOWNTIME$" -s "$SERVICESTATE$" -t "$SERVICESTATETYPE$" -a "$SERVICEATTEMPT$" -H "$HOSTNAME$" -d "$ARG1$" } define command{ command_name event_host command_line $USER2$/event_host --host-down "$HOSTDOWNTIME$" -s "$HOSTSTATE$" -t "$HOSTSTATETYPE$" -a "$HOSTATTEMPT$" -H "$HOSTNAME$" } define command{ command_name check_by_ssh command_line $USER1$/check_by_ssh -t 3 -H $HOSTNAME$ -l nagios -i /var/spool/nagios/.ssh/id_dsa -C 'pwd' } # Command to check the load on the local machine define command{ command_name check_ssh_load command_line $USER1$/check_by_ssh -t 10 -H $HOSTNAME$ -l nagios -i /var/spool/nagios/.ssh/id_dsa -C "$USER1$/check_load -w $ARG1$ -c $ARG2$" } # 'check_ssh_procs' command definition define command{ command_name check_ssh_procs command_line $USER1$/check_by_ssh -t 20 -H $HOSTNAME$ -l nagios -i /var/spool/nagios/.ssh/id_dsa -C "$USER1$/check_procs -w $ARG1$ -c $ARG2$ -C $ARG3$" } # Pruefen der Aktivitaeten der Knoten define command{ command_name check_uptime command_line $USER2$/check_uptime -H $HOSTNAME$ } # 'check_telnet' command definition define command{ command_name check_telnet_mb command_line /usr/lib/nagios/plugins/check_tcp -H $HOSTADDRESS$ -p 3172 } ...