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 15/02/2011, 23:29] ChoiZ |
— (Version actuelle) | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>administration serveur système supervision}} | ||
| - | ---- | ||
| - | |||
| - | |||
| - | ====== RRDTools : base de données tournante dédié à la supervision ====== | ||
| - | |||
| - | 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 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]]// | ||