8.7. Grafische Darstellung von Performance-Informationen mit PNP4Nagios
Zurück | Kapitel 8. Sicherheit und Leistungsoptimierung | Weiter

## 8.7. Grafische Darstellung von Performance-Informationen mit PNP4Nagios

### 8.7.1. Einführung

Das icingastats-Utility erlaubt Ihnen zusammen mit PNP4Nagios, verschiedene Icinga-Performance-Statistiken über eine bestimmten Zeitraum grafisch darzustellen. Das ist wichtig, weil es Ihnen helfen kann

- dass Icinga effizient arbeitet

- um Problembereiche im Überwachungsprozess zu lokalisieren

- um die Einflüsse von Änderungen in Ihrer Icinga-Konfiguration zu beobachten

### 8.7.2. Voraussetzungen

PNP4Nagios ist eines der populärsten Addons wegen der einfachen Installation und geringem Wartungsaufwand während des Betriebs. Die Dokumentation zusammen mit weiteren Links zum Download der Software finden Sie unter http://docs.pnp4nagios.org/de/pnp-0.6/start.

check_nagiostats wurde von Jochen Bern erstellt. Es kann als aktive Service-Prüfung aufgerufen werden oder über die crontab und liefert die Daten dann als passive Prüfergebnisse. Trotz des Namens funktioniert das Plugin auch mit Icinga.

- Nach dem Herunterladen des Plugins und Ablegen im Plugin-Verzeichnis (z.B. `/usr/local/icinga/libexec`, falls Sie die Schnellstartanleitung benutzt haben) müssen Sie die Werte im Konfigurationsabschnitt des Scripts anpassen.

  - Am wichtigsten ist "`EXEC=``/path/to/icingastats`" (z.B. `/usr/local/icinga/bin/icingastats`), das auf das `icingastats`-Binary zeigen muss.

  - Abhängig von Ihren Bedürfnissen möchten Sie ggf. den Wert für `CUMULATE` von "AVG" auf "MIN" oder "MAX" ändern: Die Einstellung von `TIMEFRAME` beeinflusst die Zeitperiode, die für die Ausgabe von kumulierten Werten benutzt wird

  - Das Ändern der Werte von `PASSIVE_EMERGENCY_HOST` und `PASSIVE_EMERGENCY_SERVICE` sollte nicht notwendig sein, weil diese Werte als Parameter an das Script übergeben werden.

- Sie können das Plugin mit aktiven oder passiven Prüfungen aufrufen

  - Aktiv

    Stellen Sie sicher, dass Ihre Objektkonfigurationsdateien eine passende Service-Definition enthalten, wie z.B.

         define service{
            host_name               <the Icinga server>
            service_description     icingastats # (oder etwas Passendes)
            check_command           check_stats
            check_interval          1
            retry_interval          1
            ...
         }

    und eine Command-Definition

         define command{
            command_name            check_stats
            command_line            $USER1$/check_nagiostats
          }

    Vergessen Sie nicht den Neustart von Icinga nach diesen Änderungen.

  - Passiv

    Stellen Sie sicher, dass Ihre Objektkonfigurationsdateien eine passende Service-Definition enthalten, wie z.B.

         define service{
            host_name               <the Icinga server>
            service_description     icingastats # (oder etwas Passendes)
            active_checks_enabled   0
            check_command           check_stats!3!Frische-Schwellwert ueberschritten
            check_freshness         1
            freshness_threshold     180         # Pruefintervall + x Sekunden
            ...
         }

    und eine Command-Definition

         define command{
            command_name            check_stats
            command_line            $USER1$/check_dummy $ARG1$ $ARG2$
         }

    Vergessen Sie nicht den Neustart von Icinga nach dieser Änderung.

    Fügen Sie eine Zeile zur crontab des Icinga-Benutzers hinzu, die das `icingastats`-Binary aufruft und die Ergebnisse an die Command-Pipe weiterleitet

         * * * * * /usr/local/icinga/libexec/check_nagiostats --passive <host> icingastats >> /usr/local/icinga/var/rw/icinga.cmd

    Auf diese Weise werden die Werte in regelmäßigen Intervallen aktualisiert.

- Legen Sie einen logischen Link im (Benutzer) templates-Verzeichnis von PNP4Nagios an

       $> ln -s ../templates.dist/nagiostats.php check_stats.php

  Stellen Sie sicher, dass check_stats (ohne die Endung .php) zu dem Wert passt, den Sie als ersten Parameter im check_command angegeben haben

Beispiel-Graphen

Wir werden beschreiben, was die durch `check_nagiostats` erzeugten Graphen bedeuten und wofür sie benutzt werden können...

### 8.7.3. Durchschnittliche Host-/Service-Prüfungslatenz

Abbildung 8.1. Durchschnittliche Host-/Service-Prüfungslatenz

Dieser Graph zeigt die durchschnittlichen Latenzzeiten von Hosts und Services über die Zeit gesehen, getrennt nach aktiven und passiven Prüfungen. Das ist nützlich zum Verständnis von:

- Host-Prüfungen

- Service-Prüfungen

- Aktiven Prüfungen

- Passiven Prüfungen

- Performance-Tuning

Durchgehend hohe Latenzen können ein Hinweis darauf sein, dass eine oder mehrere der folgenden Variablen angepasst werden sollten:

- max_concurrent_checks

- check_result_reaper_frequency

- max_check_result_reaper_time

### 8.7.4. Service-Statistiken

Abbildung 8.2. Service-Statistiken

Dieser Graph zeigt die Werte für die einzelnen Service-Zustände zusammen mit der durchschnittlichen Zahl von geprüften Services an, die aktiv bzw. passiv in der von Ihnen angegebenen Zeitperiode geprüft wurden. Das ist nützlich zum Verständnis von:

- Service-Prüfungen

- Vorausschauenden Service-Abhängigkeitsprüfungen (predictive service dependency checks)

- Zwischengespeicherten Prüfungen (cached checks)

- Flattererkennung (flap detection)

### 8.7.5. Host-Statistiken

Abbildung 8.3. Host-Statistiken

Dieser Graph zeigt die Werte für die einzelnen Host-Zustände zusammen mit der durchschnittlichen Zahl von geprüften Hosts an, die aktiv bzw. passiv in der von Ihnen angegebenen Zeitperiode geprüft wurden. Das ist nützlich zum Verständnis von:

- Host-Prüfungen

- Vorausschauenden Host-Abhängigkeitsprüfungen (predictive host dependency checks)

- Zwischengespeicherten Prüfungen (cached checks)

- Flattererkennung (flap detection)

### 8.7.6. Durchschnittliche Ausführungszeiten

Abbildung 8.4. Durchschnittliche Ausführungszeiten

Dieser Graph zeigt die durchschnittlichen Ausführungszeit von Host- und Service-Prüfungen über die Zeit gesehen. Das ist nützlich zum Verständnis von:

- Host-Prüfungen

- Service-Prüfungen

- Performance-Tuning

| Anmerkung
Um ehrlich zu sein: Wir haben die Graphen ein wenig verändert, bezogen auf die Farben. Gelb ist teilweise schwierig vom Hintergrund zu unterscheiden so dass wir einige Zeilen in der PNP4Nagios-Template-Datei `template.dist/nagiostats.php` von `$i=0;` in `$i=1;` geändert haben.

Zusätzliche Graphen

Nun ja, wir haben das Template noch ein bisschen mehr verändert, weil das Plugin zwar die Daten liefert, aber keine dazugehörigen Graphen. (Beim Blick in das Template ist es aber sehr schnell anzupassen, falls Sie die folgenden Graphen wirklich benötigen.

### 8.7.7. Externe Befehle (external commands)

Abbildung 8.5. Externe Befehle

Dieser Graph zeigt, wie viele externe Befehle vom Icinga-Daemon über die Zeit gesehen verarbeitet wurden. Solange Sie keine große Anzahl von externen Befehlen verarbeiten (wie z.B. im Falle einer verteilten Überwachungsumgebung), dann kann dieser Graph fast leer sein. Die Überwachung von externen Befehlen kann nützlich sein für das Verständnis der Auswirkung von:

- Passiven Prüfungen

- Verteilter Überwachung

- Redundante/Failover-Überwachung

### 8.7.8. Puffer für externe Befehle (external command buffers)

Abbildung 8.6. Puffer für externe Befehle

Der Graph zeigt, wie viele Puffer für externe Befehle über die Zeit gesehen benutzt wurden. Wenn die Zahl von benutzten Puffern regelmäßig fast die Zahl von verfügbaren Puffern erreicht, dann ist es wahrscheinlich, dass Sie die Anzahl von verfügbaren Puffern mit Hilfe der Direktive external command buffer slots erhöhen sollten. Jeder Puffer kann genau einen externen Befehl aufnehmen. Puffer werden für die vorübergehende Aufbewahrung von externen Befehlen genutzt, und zwar vom Lesen aus dem external command file bis zur Verarbeitung durch den IcingaDaemon.

Wie Sie sehen wird nur ein Puffer genutzt und das ist genau der für die Ergebnisse des check_nagiostats-Plugins.

### 8.7.9. Zwischengespeicherte Host- und Service-Prüfungen (cached host and service checks)

Abbildung 8.7. Zwischengespeicherte Host- und Service-Prüfungen

Dieser Graph zeigt, wie viele zwischengespeicherte Host- und Service-Prüfungen über die Zeit aufgetreten sind. Das ist nützlich zum Verständnis von:

- Zwischengespeicherten Prüfungen (cached checks)

- Vorausschauenden Host- und Service-Abhängigkeitsprüfungen (predictive host and service dependency checks)

### 8.7.10. Durchschnittliche Zustandswechsel

Abbildung 8.8. Durchschnittliche Zustandswechsel

Dieser Graph zeigt den durchschnittlichen prozentualen Zustandswechsel (ein Maß für die Sprunghaftigkeit) über die Zeit gesehen, unterschieden nach Hosts und Service, die zuletzt aktiv oder passiv geprüft wurden. Das ist nützlich zum Verständnis von:

- Flattererkennung (flap detection)

Zurück | Nach oben | Weiter
8.6. Nutzung des Icingastats-Utilitys | Zum Anfang | 8.8. Temporäre Daten

© 1999-2009 Ethan Galstad, 2009-2017 Icinga Development Team, https://www.icinga.com