Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:nagios:nagiosgrapher]] 

Nagiosgrapher: Zeigt Nagios-Checks in Zeitdiagrammen an

Informationen dazu siehe: http://www.nagios-wiki.de/nagios/howtos/nagiosgrapher
Achtung: das Unbuntu-Paket verwendet teilweise andere Dateipfade und Namen!

Nagiosgrapher unter Ubuntu-server installieren:

# aptitude install nagiosgrapher

Konfigurationsdatei /etc/nagios3/nagios.cfg von Nagios bearbeiten:

...
process_performance_data=1

host_perfdata_command=process-host-perfdata
service_perfdata_command=ngraph-process-service-perfdata-pipe

...

Danach Restart: (dies muss immer bei Konfigurationsänderungen gemacht werden)

# service nagios restart && service nagiosgrapher restart

Jetzt werden für alle Services, die eine ncfg-Datei unter /etc/nagiosgrapher/ngraph.d/* haben, Daten unter /var/lib/nagiosgrapher/ abgelegt und unter /etc/nagiosgrapher/nagios3/serviceext passende Zusatzinfos. Nach einer gewissen Zeitdauer (typ. 30 - 60 Minuten) die Nagios-Services wieder neu starten um die automatisch erzeugten Zusatzinfos unter /etc/nagiosgrapher/nagios3/serviceext in Nagios zu aktivieren. Diese Wartezeit lässt sich leider nicht umgehen.

# service nagios restart && service nagiosgrapher restart

In Nagios erhält man dann bei den konfigurierten Services ein kleines Mini-Diagramm zum Anklicken, um das Gesamtdiagramm zu erhalten.

  • Die y-Achsenskalierung wird dabei automatsch angepasst
  • Diagramme werden erst ab mind. 2 Datenpunkten erzeugt
  • Auch bei ganzzahligen Daten erscheinen im Diagramm durch zeitliche Mittelwertbildung Dezimalwerte
  • Nagiosgrapher übernimmt für jeden Service ca. alle 15 Minuten einen Wert ins Diagramm

Fehlersuche:

Problem: Erscheint kein Mini-Diagramm, dann fehlt die ncfg-Datei oder der „service_name“ ist falsch oder auf die Service-Beschreibung passen mehrere „service_name“.

Problem: Erscheint dabei nur ein leeres Diagramm ohne Daten (mind. 30 Minuten warten), dann muss die ncfg-Datei angepasst werden, insbesondere die Regular-Expression-Suchoption für die Daten: „graph_log_regex“ oder „graph_perf_regex“

Fehlersuche in der Datei: /var/log/nagiosgrapher/ngraph.log. Diese Datei kann man mit folgendem Befehl live überwachen, abbrechen mit <ctrl-C>:

# tail -f /var/log/nagiosgrapher/ngraph.log

Dort sollten z.B. folgende Logdaten auflaufen, bei den 'VALUES' werden Daten für den Nagiosgrapher übergeben.

2013-05-31 12:31:45 PRG: Starting up nagiosgrapher (PID: 21666) ...
2013-05-31 12:31:45 PRG: using FIFO
2013-05-31 12:31:45 PIPE: created
2013-05-31 12:31:48 PIPE: server        SYS - disk:/home        DISK OK /home=85294MB;118115;132879;0;147644
2013-05-31 12:32:38 PIPE: server        SYS - host up/ping      PING OK - Packet loss = 0%, RTA = 2.43 ms       rta=2.427000ms;100.000000;500.000000;0.000000 pl=0%;20;60;0
2013-05-31 12:32:38 VALUES: [server][SYS - host up/ping]: RTA=2.43 Loss=0
2013-05-31 12:32:38 RRD: rrdtool update /var/lib/nagiosgrapher/rrd/server/375c15565af4e635b1de6f3a7a2b4265.rrd --template=RTA:Loss N:2.43:0
2013-05-31 12:33:08 PIPE: server        SYS - ldap server [port 389]    LDAP OK - 0,007 seconds response time   time=0,007271s;;;0,000000
2013-05-31 12:33:08 VALUES: [server][SYS - ldap server [port 389]]: sec=0.007
2013-05-31 12:33:08 RRD: rrdtool update /var/lib/nagiosgrapher/rrd/server/2ec1c405bf99f3bc9857b0ab215331be.rrd --template=sec N:0.007
...

Problem: Nach Korrektur der ncfg-Datei erscheint trotz Daten nur ein leeres Diagramm. Ggf. müssen alle alten, unbrauchbare Daten und Dateien gelöscht oder editiert werden, diese findet man unter:

  1. /etc/nagiosgrapher/serviceext/…
  2. /var/lib/nagiosgrapher/index.ngraph
  3. /var/lib/nagiosgrapher/rrd/…

Erstellen von ncfg-Dateien

  • Unter /etc/nagiosgrapher/ngraph.d/ liegen nach Installation ein paar vordefinierte <check_service>.ncfg - Dateien. Weitere findet man unter /usr/share/nagiosgrapher/debian/cfg/ngraph.d/standard/, die man nach /etc kopieren kann.

Diese funktionieren aber nicht immer sofort. Unter linuxmuster.net ist die Beschreibung des check_procs-Service vom Servers: „SYS - total process number“. In der Datei /etc/nagiosgrapher/standard/check_procs.ncfg muss der „service_name“ das Wort „process“ sein, so dass Nagiosgraher für alle Services, die das Wort „process“ in der Beschreibung haben, Daten anlegt.
Ebenso muss ggf das Suchmuster „graph_log_regex“ angepasst werden, da eine Textausgabe des Service das deutsche Wort „Prozesse“ enthält, falls Nagios auf deutsch eingestellt ist: „PROCS OK: 164 Prozesse“. → Tutorial zu RegEx (Daniel Fett) - Regular Expressions.

  • Statt den Service-Informationen kann man mit der Option „graph_perf_regex“ auch die Performance-Data nach den Werten absuchen lassen.
  • Man muss darauf achten, dass die verwendeten „service_name“ eindeutig sind, somit kein Service auf mehrere ncfg-checks passt!
#---
#NagiosGrapherTemplateforcheck_procs
#Author:MariusHein
#---

define ngraph{
   service_name      PROCESS
   graph_log_regex   ([0-9]+)\s+Prozesse
   graph_value       procs
   graph_units       procs
   graph_legend      Laufende Prozesse
   rrd_plottype      AREA
   rrd_color         ff0000
}

...

Bei einem „service_name“ mit Leerzeichen oder Sonderzeichen sollten Anführungsstriche gesetzt werden. Die Groß/Kleinschreibung ist nicht relevant.

 service_name     'USV-Load'

Die folgende ncfg-Datei erzeugt zum APC-USV-Servicecheck einen Graph mit zwei horizontalen Linien. Genaueres zur Syntax der Dateien siehe: www.nagios-wiki.de

check_usvtemp.ncfg
#---
#
#  Textausgabe bei Nagios:  "UPS OK - Temperature: 29 Celsius"
#---
 
define ngraph{
  service_name             Temperature
  graph_log_regex          ([0-9]+)\s+Celsius
  graph_value              USV_temp
  graph_units              Celsius
  graph_legend             USV Temperatur
  graph_upper_limit        46
  graph_lower_limit        22
  rrd_plottype             LINE2
  rrd_color                0066c0
}
 
define ngraph{
  service_name            Temperature
  type                    HRULE
  hrule_value             30
  rrd_plottype            LINE
  rrd_color               00ff00
}
 
define ngraph{
  service_name            Temperature
  type                    HRULE
  hrule_value             40
  rrd_plottype            LINE
  rrd_color               ff0000
}
 
#[EOF]

Normalerweise wird die y-Achsenskalierung automatisch den Werten angepasst.
Die Optionen „graph_upper_limit“ und „graph_lower_limit“ setzen die Skalierung auf eine festen Wert, ggf. passt aber Nagiosgrapher das Intervall noch zur besseren Darstellung an.

Folgende Datei erzeugt zur CPU-Load das passende Diagramm:

check_cpuload
#---
#
#  Text: Performance Data:	load1=0.020;6.000;15.000;0; load5=0.080;5.000;12.000;0; load15=0.200;4.000;8.000;0;
#---
 
define ngraph{
        service_name            CPU
        graph_perf_regex        load1=(\d+\.\d+)
        graph_value             CPU_load1
        graph_units             Load
        graph_legend            CPU Load 1
        rrd_plottype            LINE2
        rrd_color               0066c0
}
 
define ngraph{
        service_name            CPU
        graph_perf_regex        load5=(\d+\.\d+)
        graph_value             CPU_load5
        graph_units             Load
        graph_legend            CPU Load 5
        rrd_plottype            LINE2
        rrd_color               66cdaa
}
 
define ngraph{
        service_name            CPU
        graph_perf_regex        load15=(\d+\.\d+)
        graph_value             CPU_load15
        graph_units             Load
        graph_legend            CPU Load 15
        rrd_plottype            LINE2
        rrd_color               ff7f24
}
 
#[EOF]

Multigraphen: In einem Graph mehrere versch. Services anzeigen

nagiosgrapher-multigraph-2.jpg

In der Datei /etc/nagiosgrapher/ngraph.ncfg zwei Optionen freischalten, es erscheinen dann die gelben Auswahlmenues (siehe Bild).

...
fe_use_browser_all    true
fe_use_browser_url    true
...

Dann die Datei /etc/nagiosgrapher/ngraph.d/nmgraph.ncfg editieren/erstellen:

nmgraph.ncfg
# Multi Graphs #########################################
 
define nmgraph{
        host_name               * Multigraphen
        service_name            all memory
        # RegEX
        hosts                   server
        # RegEX
        services                (memory|swapmem).*
        # line or stack or area
        graph_type              line2
        # normal or reverse or leave blank
        order                   reverse
        colors                  00ff00,ff0000,0000ff
}
 
define nmgraph{
        host_name               * Multigraphen
        service_name            all http
        # RegEX
        hosts                   server
        # RegEX
        services                WEB.*
        # line or stack or area
        graph_type              line2
        # normal or reverse or leave blank
        order                   reverse
        colors                  ff8000, 00ff00, 0000ff
}
 
define nmgraph{
        host_name               * Multigraphen
        service_name            all CPU load
        hosts                   .*?
        services                CPU.*
        graph_type              line2
        order                   normal
        colors                  98f5ff,6495ed,0000ff,caff70,32cd32,228b22,c2c2c2,858585,000000,ff7f24,ff4040,8b0000
}

Die Option „order“ bezieht sich auf die Darstellungsreihenfolge der Graphen.
Die RegEx „.*?“ bezieht alle hosts mit ein.
Die Service-Beschreibungen beim Multigraphen „all CPU load“ müssen den Begriff „CPU“ enthalten.

Die mitgelieferte nmgraph.ncfg - Datei ist leider wenig brauchbar, da die Services von linuxmuster.net von Nagios anders benannt sind und deshalb die vordefinierten RegEx nicht passen.→ Tutorial zu RegEx (Daniel Fett) - Regular Expressions.
Nach jeder Änderung der Config-Dateien ist ein Restart notwendig:

# service nagiosgrapher restart

Für die Multigraphen werden keine neuen Daten erzeugt sondern die vorhandenen in einem neuen Diagramm angezeigt. Die Diagramme sind somit nach dem Restart sofort verfügbar, falls alle RegEx korrekt gesetzt werden.

 [[anwenderwiki:nagios:nagiosgrapher]] anwenderwiki/nagios/nagiosgrapher.txt · Zuletzt geändert: 2013/06/09 00:17 von 127.0.0.1