Outils pour utilisateurs

Outils du site


app:rrdtool:ping-graph

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
app:rrdtool:ping-graph [2016/10/03 11:56] – [Etape 2/3 Collecte périodique des données] yoannapp:rrdtool:ping-graph [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1
Ligne 139: Ligne 139:
 </file> </file>
  
-===== Etape 3/3 Construction du graphique =====+===== Étape 3/3 Construction du graphique ===== 
 + 
 +Après quelques minutes les premières insertions ont eu lieu, on peut tracer le graphique. Pour voir rapidement l’état de la base: 
 + 
 +<code bash> 
 +rrdtool info ./pingdb.rrd 
 +</code> 
 + 
 +Dans les valeurs retournées on notera notamment, le timestamp de la dernière mise à jour que l'on peut convertir en une chaîne date lisible via **date**, les dernières valeurs enregistrées pour nos variables: 
 + 
 +<file> 
 +filename = "./pingdb.rrd" 
 +rrd_version = "0003" 
 +step = 60 
 +last_update = 1475582403 
 + 
 +... 
 + 
 +ds[pl].last_ds = "0" 
 + 
 +... 
 + 
 +ds[rtt].last_ds = "0.234" 
 +</file> 
 + 
 +Pour tracer le graphique, le script ci-dessous est utilisé: 
 + 
 +<file bash mk_graph_daily.sh> 
 +#!/bin/bash 
 +
 +## change directory to the rrdtool script dir 
 +#cd /home/pi/tutos-rrdtool/ping/
    
 +## Graph for last 24 hours 
 +/usr/bin/rrdtool graph latency_graph.png \
 +-w 785 -h 120 -a PNG \
 +--slope-mode \
 +--start -86400 --end now \
 +--font DEFAULT:7: \
 +--title "ping default gateway" \
 +--watermark "`date`" \
 +--vertical-label "latency(ms)" \
 +--right-axis-label "latency(ms)" \
 +--lower-limit 0 \
 +--right-axis 1:0 \
 +--x-grid MINUTE:10:HOUR:1:MINUTE:120:0:%R \
 +--alt-y-grid --rigid \
 +DEF:roundtrip=pingdb.rrd:rtt:MAX \
 +DEF:packetloss=pingdb.rrd:pl:MAX \
 +CDEF:PLNone=packetloss,0,0,LIMIT,UN,UNKN,INF,IF \
 +CDEF:PL10=packetloss,1,10,LIMIT,UN,UNKN,INF,IF \
 +CDEF:PL25=packetloss,10,25,LIMIT,UN,UNKN,INF,IF \
 +CDEF:PL50=packetloss,25,50,LIMIT,UN,UNKN,INF,IF \
 +CDEF:PL100=packetloss,50,100,LIMIT,UN,UNKN,INF,IF \
 +LINE1:roundtrip#0000FF:"latency(ms)" \
 +GPRINT:roundtrip:LAST:"Cur\: %5.2lf" \
 +GPRINT:roundtrip:AVERAGE:"Avg\: %5.2lf" \
 +GPRINT:roundtrip:MAX:"Max\: %5.2lf" \
 +GPRINT:roundtrip:MIN:"Min\: %5.2lf\t\t\t" \
 +COMMENT:"pkt loss\:" \
 +AREA:PLNone#FFFFFF:"0%":STACK \
 +AREA:PL10#FFFF00:"1-10%":STACK \
 +AREA:PL25#FFCC00:"10-25%":STACK \
 +AREA:PL50#FF8000:"25-50%":STACK \
 +AREA:PL100#FF0000:"50-100%":STACK
 + 
 +## copy to the web directory
 +#cp latency_graph.png /var/www/htdocs/
 +</file>
 +
 +==== Détail des directives ====
 +
 +<code>
 +/usr/bin/rrdtool graph latency_graph.png \
 +</code>
 +
 +Invoque rrdtool est demande la création d'un graphique nommé latency_graph.png dans le répertoire courant. 
 +
 +<code>
 +-w 785 -h 120 -a PNG \
 +</code>
 +
 +Graphique de 785 pixels de large pour 120 de haut. Image au format PNG. Les dimensions (hauteur et largeur) concernent le graphique ce ne sont pas celles de l'image entière.
 +
 +<code>
 +--slope-mode \
 +</code>
 +
 +Lissage des courbes du graphique: antialiasing et courbure des lignes.
 +
 +<code>
 + --start -3600 --end now \
 +</code>
 +Définit l'intervalle de temps à tracer: de 3600 secondes antérieures à maintenant.
 +
 +<code>
 +--font DEFAULT:7: \
 +</code>
 +
 +Fonte par défaut pour tous les textes du graphique.
 +
 +<code>
 +--title "ping Sophos" \
 +</code>
 +
 +<code>
 +--lower-limit 0 \
 +</code>
 +
 +Définit les valeurs sur l'axe Y pour augmenter la lisibilité. La directive --lower-limit force 0 les étiquettes de l'axe car les valeurs de nos variables ne peuvent pas être négatives.
 +
 +<code>
 +--right-axis 1:0 \
 +</code>
 +
 +Rapport entre l'axe parent (à gauche) et l'axe enfant à droite. Même échelle dans notre cas, donc le rapport est définit à 1. Le dernier 0 permet de spécifier une valeur sur cet 
 +
 +<code>
 +--x-grid MINUTE:10:HOUR:1:MINUTE:120:0:%R \
 +</code>
 +
 +Redéfinit l'échelle de l'axe X et place les labels sous le graphique.
 +  * MINUTE:10 définit la distance en unités entre les repères verticaux gris
 +  * HOUR:1 définit la distance en unités entre les repères verticaux rouges
 +  * MINUTE:120 les labels sont visibles toutes les 120 unités.
 +  * 0:%R espacement par défaut
 +
 +<code>
 +DEF:roundtrip=pingdb.rrd:rtt:MAX \
 +DEF:packetloss=pingdb.rrd:pl:MAX \
 +</code>
 +
 +**DEF**(define), permet de définir une variable provenant de la base de données afin qu'elle puisse être tracée sur le graphique. Ici on définit 2 variables **roundtrip** et **packetloss**. Les variables peuvent être récupérées dans différentes bases et subir des traitements.
 +  * **DEF** directive de définition
 +  * roundtrip=roundtrip=pingdb.rrd:rtt assignation des valeurs de rrt dans la base pingdb.rrd à la variable rountrip
 +  * MAX type de la variable tel qu'il a été déclaré dans la base. 
 +
 +
 +<code>
 +LINE1:roundtrip#0000FF:"latency(ms)" \
 +</code>
 +
 +Création d'une ligne et de la légende associée
 +  * **LINE1** tracer une ligne le suffixe 1 permet de spécifier l'épaisseur. Si la ligne générée semble discontinue a cause du lissage augmenter la valeur du suffixe.
 +  * **roundtrip#0000FF** utilise la valeur de la variable roundtrip avec la couleur bleue (valeur RVB #RRVVBB)
 +  * **"latency(ms)** label associé à la ligne.
 +
 +
 +
 +
 ===== Références ===== ===== Références =====
  
   * https://calomel.org/rrdtool.html   * https://calomel.org/rrdtool.html
app/rrdtool/ping-graph.1475495801.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)