Ceci est une ancienne révision du document !
Qu'est ce RRDTools ?
RRDTools est un outil qui permet de faire des bases de données (Round-Robin Database). Il permet aussi de faire des graphes.
Exemple
Dans ces bases de données on enregistre des informations tel que le nombre de litres de bière consommé par personne pour une soirée par exemple. :)
Dans ces cas la nous allons faire une representation graphique de chaque consommation.
Soit toutes les consommations dans un même graph, soit chaque consommation dans un graph séparé. Après c'est qu'une question de présentation.
Install
"Fastoche les mains dans les poches"
$ apt-get install rrdtool
Maintenant nous allons attaquer les choses sérieuses !
Premiere base RRDTool
Il est 22h30 en ce jeudi soir, je suis déjà à 50cl de biere consommé. J'ai ouvert ma biere à 21h30 et je l'ai consomé en moins de 30mn, ensuite je n'ai pas réouvert de bière avant 22h30 donc le graph sera constant puis va réaugmenter jusqu'à 23h.
Ce qui donne le tableau suivant :
L'heure aujourd'hui et le timestamp unix : nombre de secondes depuis le 1 janvier 1970 ;)
Et ensuite le nombre de centilitres que j'ai bu (hips)
- 21h30 (1187292600) = 0
- 21h45 (1187293500) = 20
- 22h00 (1187294400) = 50
- 21h15 (1187295300) = 50
- 22h30 (1187296200) = 50
- 22h45 (1187297100) = 75
- 23h00 (1187298000) = 100
Note pour connaitre le timestamp plusieurs solutions :
- En ligne de commande
$ date +%s
- Moi j'utilise sinon un petit plugin dans firefox qui se nomme : TimeStamp Converter qui est très pratique ;)
En ligne de commande nous allons créer conso.rrd (ma conso de bière).
create conso.rrd
Le –start est utilisé pour savoir à quelle date le RRD commence (j'ai mis ici 21h30 aujourd'hui)
- -start 1187292600
J'ai ajouté un DS : pour Data Source qui se nomme conso qui est une gauge (GAUGE) et qui est lu toutes les 5mn (rappel : 5mn = 300sec) 300secondes / 0.5 = 600 ;)
DS:conso:GAUGE:600:U:U
Ensuite j'ajoute deux archives : RRA : pour archive Round Robin c'est deux moyennes (AVERAGE) (mais la premiere n'est pas une VRAIE moyenne) on prend la derniere donnée (1) et on prend 12 valeurs (12 x 5mn) soit une heure.
RRA:AVERAGE:0.5:1:12
Pour la seconde archive c'est toujours une moyenne mais on prend qu'un enregistrement sur 6 (un par demi heure) et on prend les 10 derniers (donc les 5 dernieres heures).
RRA:AVERAGE:0.5:6:10
Résultat à taper en ligne de commande :
$ rrdtool create conso.rrd \ --start 1187292599 \ DS:conso:GAUGE:600:U:U \ RRA:AVERAGE:0.5:1:12 \ RRA:AVERAGE:0.5:6:10
Ajoutons maintenant dans la base la consomation :)
- 21h30 (1187292600) = 0
- 21h45 (1187293500) = 20
- 22h00 (1187294400) = 50
- 21h15 (1187295300) = 50
- 22h30 (1187296200) = 50
- 22h45 (1187297100) = 75
- 23h00 (1187298000) = 100
$ rrdtool update conso.rrd 1187292600:0 1187293500:20 $ rrdtool update conso.rrd 1187294400:50 1187295300:50 $ rrdtool update conso.rrd 1187296200:50 1187297100:75 $ rrdtool update conso.rrd 1187298000:100
$rrdtool fetch conso.rrd AVERAGE
Cet article est en cours suite prochainement…
Contributeurs : ChoiZ