{{tag> nagios}}
====== Nagiosgrapher: Zeigt Nagios-Checks in Zeitdiagrammen an ======
{{:anwenderwiki:nagios:nagiosgrapher-temp-procs.jpg?800|}}
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
{{:anwenderwiki:nagios:nagios-minidiagrann.jpg?300|}}
===== 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 :
# 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:
- /etc/nagiosgrapher/serviceext/...
- /var/lib/nagiosgrapher/index.ngraph
- /var/lib/nagiosgrapher/rrd/...
===== Erstellen von ncfg-Dateien =====
* Unter **''/etc/nagiosgrapher/ngraph.d/''** liegen nach Installation ein paar vordefinierte .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".
-> [[http://www.danielfett.de/internet-und-opensource,artikel,regulaere-ausdruecke|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: [[http://www.nagios-wiki.de/nagios/howtos/nagiosgrapher#definition_eines_graphen|www.nagios-wiki.de]]
#---
#
# 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:
#---
#
# 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 =====
{{:anwenderwiki:nagios:nagiosgrapher-multigraph-2.jpg?800}}
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:
# 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.-> [[http://www.danielfett.de/internet-und-opensource,artikel,regulaere-ausdruecke|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.