Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
rrdtools [Le 16/02/2011, 15:15] ChoiZ |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>administration serveur système supervision}} | ||
- | ---- | ||
- | |||
- | |||
- | ====== RRDTool : base de données tournante dédié à la supervision ====== | ||
- | |||
- | RRDTool 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 l'audience d'une radio en fonction de l'heure et du nombre d'auditeurs connectés simultannés | ||
- | |||
- | Nous allons pouvoir faire plusieurs choses avec les données : | ||
- | |||
- | - Affichage des données en fonction du temps (par exemple un graph pour le jour en cours, pour la semaine, pour le mois et l'année). | ||
- | |||
- | - Si la radio a plusieurs canaux différents par exemple une radio avec de la musique uniquement et l'autre avec des animateurs on poura combiner les données des deux stations sur le meme graph. | ||
- | |||
- | ===== Installation ===== | ||
- | |||
- | Il suffit d'[[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt://rrdtool|rrdtool]]** | ||
- | |||
- | Maintenant nous allons attaquer les choses sérieuses ! | ||
- | |||
- | ===== Premiere base RRDTool ===== | ||
- | |||
- | Cet exemple permet de créer une base de donnée RRD Tool pour deux radios. | ||
- | |||
- | Pour ce qui est de l'heure on converti la date et l'heure actuel en timestamp unix (nombre de secondes depuis le 1er janvier 1970 à 0h00:00) | ||
- | |||
- | Note pour connaitre le timestamp plusieurs solutions : | ||
- | |||
- | * En ligne de commande | ||
- | |||
- | $ date +%s | ||
- | |||
- | * Sinon un petit plugin dans firefox qui se nomme : TimeStamp Converter est très pratique ;) | ||
- | |||
- | ===== Création de notre base RRDTool ===== | ||
- | |||
- | Nous allons créer une base RRD pour une Radio avec 2 flux : Rock et Alternative | ||
- | |||
- | rrdtool create radios.rrd --start 1297810800 \ | ||
- | DS:rock:GAUGE:600:U:U \ | ||
- | DS:alternative:GAUGE:600:U:U \ | ||
- | RRA:AVERAGE:0.5:1:24 \ | ||
- | RRA:AVERAGE:0.5:6:12 | ||
- | |||
- | Reprenons ligne par ligne le fonctionnement : | ||
- | * rrdtool create -> jusque là tout va bien c'est pour dire qu'on créer une base de donnée RRD | ||
- | * radios.rrd -> c'est le fichier rrd que nous utiliserons comme base de donnée | ||
- | * --start 1297810800 -> indique la date de départ de ma base de donnée (en Timestamp) ici le 16 Février 2011 à 0h00. | ||
- | |||
- | La seconde et la 3eme ligne sont des DS (DATA SOURCE) sources de données en Français. | ||
- | |||
- | * DS:ds-name:GAUGE | COUNTER | DERIVE | ABSOLUTE:heartbeat:min:max | ||
- | |||
- | Explications : | ||
- | |||
- | * DS: -> DATA SOURCE | ||
- | * ds-name -> Nom de votre source de donnée (dans l'exemple rock) à savoir qu'elle doit faire entre 1 et 19 caracteres et alphanumérique avec possibilité d'utiliser "_" l'underscore soit [a-zA-Z0-9_] | ||
- | * GAUGE | COUNTER | DERIVE | ABSOLUTE -> DST (DATA SOURCE TYPE) | ||
- | * COUNTER -> valeurs incrémentales, ne diminue jamais sauf quand un compteur déborde. Si il dépasse 32 ou 64 bit. | ||
- | * GAUGE -> valeurs entrées par l'utilisateur tel qu'une température ou autre... | ||
- | * DERIVE -> valeurs positives ou négatives | ||
- | * ABSOLUTE -> est pour les compteurs qui se réinitialisent à la lecture. Il est utilisé pour les compteurs de vitesse qui ont tendance à déborder. | ||
- | |||
- | Pour plus d'infos je vous renvoi à la doc http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html | ||
- | |||
- | |||
- | |||
- | Passons à la 4eme et 5eme ligne qui sont les Round Robin Archives. | ||
- | |||
- | Une archive se compose d'un certain nombre de valeurs de données ou des statistiques pour chacune des sources de données définies (DS) et est définie par une ligne RRA. | ||
- | |||
- | * RRA:AVERAGE | MIN | MAX | LAST:xff:steps:rows | ||
- | * RRA: -> Round Robin Archive | ||
- | * AVERAGE -> moyenne des valeurs | ||
- | * MIN -> plus petite valeur enregistrée | ||
- | * MAX -> plus grande valeur enregistrée | ||
- | * LAST -> la derniere valeur enregistrée | ||
- | * 0.5 -> frequence de lecture de la donnée (en secondes) soit ici l'équivalent de 5mn (600 * 0.5 = 300) | ||
- | * 1 -> nombre de valeur pour faire la moyenne (ici 1 donc aucune moyenne) | ||
- | * 24 -> nombre d'enregistrement que l'on souhaite conserver : 24 soit 2 heures (5mn x 24 = 2h00) | ||
- | |||
- | Idem pour la ligne suivante : | ||
- | |||
- | * 0.5 -> frequence de lecture de la donnée (en secondes) soit ici l'équivalent de 5mn (600 * 0.5 = 300) | ||
- | * 6 -> nombre de valeur pour faire la moyenne (ici 6 donc une moyenne sur 6 enregistrements) | ||
- | * 24 -> nombre d'enregistrement que l'on souhaite conserver : 12 soit 6 heures (la moyenne de 6 enregistrement : 6 x 5mn = 30mn ces 30mn x 12 = 6h00) | ||
- | |||
- | |||
- | ===== Enregistrement des données ===== | ||
- | |||
- | rrdtool update radios.rrd \ | ||
- | 1297810801:0:0 \ | ||
- | 1297811101:5:1 \ | ||
- | 1297811401:8:0 \ | ||
- | 1297811701:10:2 \ | ||
- | 1297812001:13:3 \ | ||
- | 1297812301:15:5 \ | ||
- | 1297812601:23:4 \ | ||
- | 1297812901:30:8 \ | ||
- | 1297813201:34:9 \ | ||
- | 1297813501:35:5 \ | ||
- | 1297813801:38:10 \ | ||
- | 1297814101:38:12 | ||
- | |||
- | |||
- | A 0h00:01 il y avait 0 auditeur sur les deux flux. (timestamp:valeurflux1:valeurflux2) | ||
- | |||
- | A 0h05:01 il y avait 5 auditeurs sur le flux rock et 1 auditeur sur le flux alternative | ||
- | |||
- | Et on continue d'insérer les données grâce au timestamp toutes les 300 secondes (5mn) | ||
- | |||
- | |||
- | A savoir je peux pas enregistrer ma premiere donnée a 0h00:00 car lors de la création de notre RRD nous avons précisé qu'il commence a 0h00:00 il faut donc ajouté une seconde pour le 1er enregistrement. Sinon vous aurez une erreur de ce type : ERROR: radios.rrd: illegal attempt to update using time 1297810800 when last update time is 1297810800 (minimum one second step). | ||
- | |||
- | |||
- | ===== Affichage des données ===== | ||
- | |||
- | rrdtool graph radios1.png -s 1297810800 -e 1297814101 -h 300 -w 600 -t "Graph d'audience" \ | ||
- | DEF:rock=radios.rrd:rock:AVERAGE LINE3:rock#FF0000:"Rock" \ | ||
- | DEF:alternative=radios.rrd:alternative:AVERAGE LINE3:alternative#000000:"Alternative" | ||
- | | ||
- | Avec cette commande on affiche les données de notre base RRD dans un fichier png. | ||
- | |||
- | * -s -> date (toujours en timestamp) de départ du graph pas forcement celle des données. | ||
- | |||
- | * -e -> date de fin du graph pas forcement celle des données. | ||
- | |||
- | * -h -> height hauteur du graph ici 300px | ||
- | |||
- | * -w -> width largeur du graph ici 600px | ||
- | |||
- | * -t -> titre du graphique | ||
- | |||
- | * DEF: -> fetch les datas depuis le fichier rrd | ||
- | |||
- | * rock: -> le nom de notre flux qu'on avait déjà défini (mais on peut en choisir un autre c'est un nom utilisé uniquement pour afficher la valeur) | ||
- | |||
- | * =radios.rrd -> le nom de notre fichier rrd | ||
- | |||
- | * rock: -> ici c'est le nom exact du Data Source | ||
- | |||
- | * AVERAGE -> pour dire qu'on veut une moyenne | ||
- | |||
- | * LINE3:rock#FF000:"Rock" -> Pour afficher dans la légende notre valeur "rock" avec comme couleur rouge et comme label Rock. | ||
- | |||
- | |||
- | |||
- | ===== Affichage du graphique ===== | ||
- | |||
- | {{:radios1.png}} | ||
- | |||
- | |||
- | |||
- | |||
- | Voilà pour l'instant vous savez : créer une base RRDTool, Updater les données de cette base et afficher un graphique. | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | // Contributeurs : [[utilisateurs:ChoiZ]]// |