Outils pour utilisateurs

Outils du site


app:rrdtool:exemples:trafic-interface

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
app:rrdtool:exemples:trafic-interface [2018/04/01 12:15] – créée yoannapp:rrdtool:exemples:trafic-interface [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1
Ligne 5: Ligne 5:
 On se propose ici d'historiser les trafics entrant/sortant d'une interface réseau via RRDtool. On se propose ici d'historiser les trafics entrant/sortant d'une interface réseau via RRDtool.
  
 +
 +===== Définition de la RRD =====
 +
 +On souhaite créer une base qui sera alimentée au moins toutes les 60 secondes et commencera immédiatement. On  identifie 2 DS (Data Source) qui correspondent aux quantités d'octets émis **Rx** et reçus **Rx** par l'interface. Si aucune valeur n'est transmise à la RRD pour Rx ou Tx au bout de 120 secondes, la valeur sera considérée inconnue. On souhaite avoir deux historiques, un sur la journée et une second sur la semaine.
 +
 +Le script ci dessous permet de créer la base:
 +
 +<code bash make_rrd.sh>
 +#!/bin/bash
 +
 +START=$(date +%s)
 +
 +rrdtool create trafic_wlan0.rrd --step 60 --start $START \
 +        DS:rx:COUNTER:120:0:U \
 +        DS:tx:COUNTER:120:0:U \
 +        RRA:LAST:0.5:1:1440 \
 +        RRA:AVERAGE:0.5:5:2016 \
 +
 +</code>
 +
 +  * La première ligne déclare le nom de la base et spécifie le step de 60 secondes et la date de départ à l'instant présent via la variable $START.
 +  * Les DS, en premier argument le nom suivit du type **COUNTER** de leur hertbeat de 120 secondes, puis la valeur minimale 0 et la maximum n'est pas définie U = Unknown.
 +  * Enfin définition de 2 RRA:
 +    * la première utilisant la CF LAST et un seul DPD (pas de consolidation) enregistrant 1440 CDP toutes les 60 secondes ce qui donne un visibilité sur 1440 * 60 = 86400 secondes équivalent à une journée.
 +    * La secondes utilisant 5 PDP pour former le CDP, ce qui donne 1 CDP toutes les 5 * 60 =300 secondes et enregistrant 2016 CDP. La visibilité est donc de 300 * 2016 = 604800 secondes équivalent a une semaine.
 +
 +
 +===== Alimenter la base =====
 +
 +Maintenant que la base est créée, il faut l'alimenter régulièrement, pour cela on utilisera l'outil **rrdupdate** en séparant les paramètres via le caractère '**:**'.
 +
 +<code bash>
 +$ rrdupdate base.rrd timestamp:rx:tx
 +</code>
 +
 +Le script suivant met en forme les données et de les transmet à la base via rrdupdate:
 +<code bash update_rrd.sh>
 +#!/bin/bash
 +
 +RRD=/tmp/trafic_wlan0.rrd
 +
 +DATAS=$(grep wlan0 /proc/net/dev | cut -d: -f 2 | awk -v ts=$(date +%s) '{print ts":"$2":"$10}')
 +
 +rrdupdate $RRD $DATAS
 +</code>
 +
 +Utiliser crontab pour l’exécuter régulièrement (toutes les minutes):
 +
 +<code bash>
 +$ crontab -l
 +...
 +* * * * * /tmp/update_rrd.sh
 +</code>
 +
 +===== Tracer le graphique =====
 +
 +La base est régulièrement alimentée, on peut à présent tracer un graphique simple:
 +
 +<code bash make_graph.sh>
 +#!/bin/bash
 +
 +RRD=/tmp/trafic_wlan0.rrd
 +
 +rrdtool graph trafic_wlan0.png -s -1h -t "Trafic wlan0" \
 + DEF:Rx=$RRD:rx:AVERAGE \
 + DEF:Tx=$RRD:tx:AVERAGE \
 + LINE:Rx#ff0000:"Rx\n" \
 + LINE:Tx#0000ff:"Tx\n"
 +
 +</code>
app/rrdtool/exemples/trafic-interface.1522584950.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)