Nagios Installation/grafische Visualisierung

aus PUG, der Penguin User Group
Wechseln zu: Navigation, Suche

Navigation

Grafische Visualisierung

Nachdem nun alle Hosts eingebunden worden sind, ist es an der Zeit, den Status auf eine Art zu präsentieren, der viele kleine Checks zu einem Ganzen zusammenfasst. Dazu wurden zwei Programme eingerichtet. Zum einen Nagios Business Process View und zum anderen NagVis. Hier findet sich nun eine kleine Anleitung, wie beide zu verwenden sind.

Nagios Process Business View - Übersicht

Nagios Process Business View (im folgenden NPBV genannt) kann aus einzelnen Checks und Hosts ein Konstrukt schaffen, welches dem Arbeitsablauf einer funktionieren IT entgegenkommt. Eine Webmail-Oberfläche bringt nichts, wenn der dazu gehörige Mailserver nicht arbeitet. Der Mailserver kann seine Arbeit nicht aufnehmen, wenn seine Konten in einer Datenbank liegen und diese nicht erreichbar ist. NPBV verknüpft diese und somit wird schnell ersichtlich, ob das System im Ganzen arbeitet.

Nagios Process Business View - Konfiguration

  • Ein Beispiel an unserem Testsystem
Um unsere Checks in NBPV einzubinden, gibt es eine entsprechende Konfigurations-Datei. Diese haben wir zu editieren und unseren Bedürfnissen anzupassen.
Dazu müssen wir die Datei /usr/local/nagios-ext/etc/nagios-bp.conf bearbeiten. Die Syntax sieht dabei im folgenden aus:
(host);(service) (|&) (host);(service)
Am Anfang steht der Host, getrennt von einem Semikolon, worauf eine Verknüpfung folgt. Diese kann entweder ein logisches Oder darstellen, in Form einer Pipe, oder eines logischen Und's, dargestellt durch das Kaufmännische Und. Dann folgen erneut Host und Service. Es ist unbedingt notwendig, dass die Namen exakt dem entsprechen, wie sie in Nagios eingetragen wurden - respektive auf der Nagios-Webseite erscheinen. Denn diese Einträge werden der Datenbank (gefüttert durch die NDO-Utils) entnommen.
  • Ein Beispiel:
mail = mail;check_generic & mail;check_mail
display 0;mail;mail;Mail Server

db = db;check_generic & db;check_db
display 0;db;db;DB Server
Hier definieren wir zuerst einmal unsere beiden Hosts, deren Checks und wie sie auf der Webseite angezeigt werden sollen. In diesem Fall beschreibt display 0, dass sie nur bei einem Klick auf die oberste Wurzel erscheinen.
Sowohl der generische Test als auch der spezifische Test dürfen kein Critical aufweisen, damit die Wurzel ebenfalls kein Critical erhält.
mailsetup = mail & db
display 1;mailsetup;mailsetup;Mail Setup
Hier verknüpfen wir unseren Mailserver mit der Datenbank. Beide müssen also korrekt arbeiten (von Nagios ein O.K bekommen), damit das Konstrukt mailsetup im NBPV ein O.K. Status erhält. Dieser Eintrag bildet die oberste Hierarchie.
Hätten wir dagegen nicht nur einen Datenbank-Server und nur einen E-Mail-Server, sondern die Server wären redundant ausgelegt, ließe sich auch folgendes Konstrukt verwenden:
mail1 = mail1;check_generic
mail2 = mail2;check_generic
mxcluster = mail1 | mail2
Nun dürfte entweder mail1 od. mail2 ausfallen, ohne dass unser mxcluster ein Critical darstellen würde.
Wenn wir nun auch noch den Webserver einbinden, sieht es wie im Folgenden aus:
web = web;check_generic & web;check_web
display 0;web;web;Webserver

webseite = db & web
display 1;webseite;webseite;Webseite
Auf diese Weise lassen sich Verknüpfungen bilden, um sich so schnell einen Überblick zu verschaffen. Mittels der eingebundenen Templates sind nun so auch Benachrichtigungen möglich und auch eine Verfolgung der Historie.
Wenn etwas nicht klappen sollte, empfiehlt sich ein Blick in die lesenswerte README-Datei. Desweiteren kann ein Syntax-Check durchgeführt werden, mit folgendem Befehl:
Gnome-terminal.png
master: ~# /usr/local/nagios-ext/bin/nagios-bp-consistency-check.pl
Checking consistency of /usr/local/nagios-ext/etc/nagios-bp.conf
    OK

Benachrichtigung

Um auch in den Genuss einer Benachrichtigung zu kommen, wenn im Business-Process etwas rot statt in dem wünschenswerten Grün leuchtet, müssen noch Templates für Nagios eingerichtet werden. Dies müssen wir einmal für die Checks selbst erledigen und dann für die Hosts. Dazu erzeugen wir zwei neue Template-Dateien und binden sie in Nagios über die /usr/local/nagios/etc/nagios.cfg ein:
  • /usr/local/nagios/etc/objects/service-business.cfg
Ascii.png
define service{
              name                        generic-bp-service
              use                         generic-service
              contact_groups              admins
              notification_interval       60
              notification_period         24x7
              notification_options        u,c,r
              notifications_enabled       1
              max_check_attempts          5
              check_period                24x7
              register                    0
              }
                        
define service{
              name                        generic-bp-detail-service
              use                         generic-service
              contact_groups              admins
              notification_interval       60
              notification_period         24x7
              notification_options        u,c,r
              notifications_enabled       0
              max_check_attempts          1
              normal_check_interval       5
              retry_check_interval        1
              check_period                24x7
              register                    0
              }
  • /usr/local/nagios/etc/objects/hosts-business.cfg
Ascii.png
define  host {
        host_name                       business_processes_detail
        alias                           untergeordnete Business Processe
        address                         1.2.3.4
        check_command                   return_true
        max_check_attempts              5
        check_interval                  5
        active_checks_enabled           1
        passive_checks_enabled          1
        check_period                    24x7
        obsess_over_host                1
        check_freshness                 1
        event_handler_enabled           1
        flap_detection_enabled          1
        process_perf_data               0
        retain_status_information       1
        retain_nonstatus_information    1
        contact_groups                  admins
        notification_interval           120
        notification_period             24x7
        notification_options            d,u,r
        notifications_enabled           1
        register                        1
        }

define  host {
        host_name                       business_processes
        alias                           Business Processe
        address                         1.2.3.4
        check_command                   return_true
        max_check_attempts              5
        check_interval                  5
        active_checks_enabled           1
        passive_checks_enabled          1
        check_period                    24x7
        obsess_over_host                1
        check_freshness                 1
        event_handler_enabled           1
        flap_detection_enabled          1
        process_perf_data               0
        retain_status_information       1
        retain_nonstatus_information    1
        contact_groups                  admins
        notification_interval           120
        notification_period             24x7
        notification_options            d,u,r
        notifications_enabled           1
        register                        1
        }
Nun folgen noch die beiden Einträge für die nagios.cfg:
  • /usr/local/nagios/etc/nagios.cfg
Ascii.png
[...]
cfg_file=/usr/local/nagios/etc/objects/hosts-business.cfg
cfg_file=/usr/local/nagios/etc/objects/service-business.cfg
[...]
Desweiteren muss aus der Business-Konfiguration eine nagiosfähige Datei erzeugt werden. Dafür dient das Script: /usr/local/nagios-ext/bin/bp_cfg2service_cfg.pl. Es erzeugt eine /usr/local/nagios/etc/services-bp.cfg-Datei, welche dann eingebunden werden muss. Dies sollte nach jeder Änderung der NBPV-Datei erledigt werden.
  • /usr/local/nagios/etc/nagios.cfg
Ascii.png
[...]
/usr/local/nagios/etc/services-bp.cfg
[...]
Der letzte Akt besteht darin, zwei neue Kommandos hinzu zu fügen, um einen Pseudo-Return-Code auszugeben. Dieses Kommandos sieht wie im Folgenden aus:
  • /usr/local/nagios/etc/objects/commands.cfg
Ascii.png
[...]
define command{
          command_name    check_bp_status
          command_line    /usr/local/nagios-ext/libexec/check_bp_status.pl $ARG1$
          }

define command{
         command_name    return_true
         command_line    $USER1$/check_dummy 0
         }
[...]

NagVis - Übersicht

Um einen Eindruck des Gesamtbildes zu erhalten, würde Nagios Process Business View ausreichen, doch Personen mit leitenden Funktionen wünschen sich oftmals hübsche Grafiken, um den derzeitigen Status zu sehen. In diese Kerbe schlägt NagVis, indem es auf eine vorgefertigte Grafik Icons ablegt, welches den Status widerspiegeln.
Unsere eingangs mit Dia erzeugte Grafik eignet sich für ein solches Testunterfangen. Die unten stehende Grafik zeigt eine mögliche Variante, wobei der künstlerischen Kreativität keine Grenzen gesetzt sind:
Grafik unter NagNis
Da die Konfiguration bereits abgeschlossen ist, muss nur diese Grafik erzeugt werden, um dann über den Link http://master/nagios/nagivs/wui/index.php?map= (od. auf Diese Map bearbeiten klicken), um dann diese Vorlage hochladen zu könnnen. Dabei per rechter Maustaste auf den freien Bereich klicken. Unter dem Firefox kann es sein, dass dies zweimal geschehen muss (FF2.x), um dann ein Menü zu erhalten. Dort wählt man den Punkt Verwalten -> Hintergrund und lädt seine Grafik hoch. Ist dies geschehen, kann eine neue Map erstellt werden. Dazu erneut die rechte Maustaste bemühen, um dann über Verwalten -> Map eine neue zu erstellen. Dabei kann der gerade hochgeladene Hintergrund ausgewählt werden.
Wurde diese Aufgabe bewältigt, können nun die ersten Objekte über das gleiche Schema hinzugefügt werden. Da die Erstellung recht intuitiv ist, bedarf es sicher keiner genaueren Einführung. Wer mehr Wert auf Tastaturkomfort legt, kann die Position der einzelnen Elemente auch durch nüchterne Zahlen setzen. Dazu muß lediglich die Konfigurations-Datei der Map editiert werden. Sie findet sich unter /usr/local/nagios/share/nagvis/etc/maps/<mapname>.

Benachrichtigung mit Ticketsystem

Den Abschuß dieser Anleitung bildet der Teil für die Benachrichtigung mittels des Ticketsystems OTRS. Teil 5.