Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:nagios:nagiosgrapher]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

anwenderwiki:nagios:nagiosgrapher [2013/06/08 22:17] (aktuell)
Zeile 1: Zeile 1:
 +{{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:
 +<​code>​
 +...
 +process_performance_data=1
 +
 +host_perfdata_command=process-host-perfdata
 +service_perfdata_command=ngraph-process-service-perfdata-pipe
 +
 +...
 +</​code>​
 +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 <​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. ​
 +<​code>​
 +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
 +...
 +</​code> ​
 +
 +**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 <​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"​. ​
 +-> [[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! ​
 +
 +<​code>​
 +#---
 +#​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
 +}
 +
 +...
 +
 +</​code>​
 +
 +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]]
 +
 +
 +<code text 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]
 +
 +</​code>​
 +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:
 +
 +<code text 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]
 +
 +</​code>​
 +
 +===== 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:​
 +
 +<code text 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
 +}
 +
 +</​code>​
 +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.
 [[anwenderwiki:nagios:nagiosgrapher]] anwenderwiki/nagios/nagiosgrapher.txt · Zuletzt geändert: 2013/06/08 22:17 (Externe Bearbeitung)