Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| app:rrdtool:start [2018/03/25 20:10] – yoann | app:rrdtool:start [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| ====== RRDtool ====== | ====== RRDtool ====== | ||
| - | Étapes pour la création d'une application basée sur **rrdtool**: | + | ===== Généralités ===== |
| - | * Initialiser la base de données. Création | + | Créé en 1999 par Tobias Oetiker, RRDtool comprend une une base de données de type buffer circulaire pour valeurs numériques accompagnée d' |
| - | * Collecter | + | |
| - | * Création du graphique. Relire les données de la base pour faire les calculs et créer les graphiques. | + | |
| ===== La base de données ===== | ===== La base de données ===== | ||
| - | **RRD** pour **R**ound **R**obin **D**atabase (base de données tourniquet). Le nombre d' | + | **RRD** pour **R**ound **R**obin **D**atabase (base de données tourniquet). Le fichier de la base RRD contient un nombre d' |
| + | |||
| + | Les données enregistrées dans une RRD sont fondamentalement liées au temps. L' | ||
| + | |||
| + | Une RRD est caractérisée par sa date de début et son **step**, elle est le conteneur global d'un certain nombre d' | ||
| - | La plage de temps servant de base pour la mesure est également bornée (déterminée et fixée). Si plus d' | + | La plage de temps servant de base pour la mesure est également bornée (déterminée et fixée). Si plus d' |
| ===== Terminologie ===== | ===== Terminologie ===== | ||
| - | * **DS** pour **Data Source**, description d'une source de données | + | * **DS** pour **Data Source**, description d'une source de données |
| * **DST** pour **Data Source Type**, une **DS** est également caractérisée par son type qui peut être: | * **DST** pour **Data Source Type**, une **DS** est également caractérisée par son type qui peut être: | ||
| * **COUNTER**, | * **COUNTER**, | ||
| Ligne 23: | Ligne 26: | ||
| * **ABSOLUTE**: | * **ABSOLUTE**: | ||
| * **GAUGE**: stocke une valeur (la mesure), non un delta. | * **GAUGE**: stocke une valeur (la mesure), non un delta. | ||
| - | * **RRA** pour **Round Robin Archive**, c'est la base de données round robin. Elle peut être assimilée | + | * **RRA** pour **Round Robin Archive**. |
| - | * **PDP** pour **Primary Data Point**. A chaque intervalle de temps égal a **step**, une nouvelle valeur provenant d'une **DS** est une **PDP**. La PDP est qualifiée de primaire car elle n'est pas directement stockée | + | * **PDP** pour **Primary Data Point**. A chaque intervalle de temps égal à **step**, une nouvelle valeur provenant d'une **DS** est une **PDP**. La PDP est qualifiée de primaire car elle n'est pas directement stockée |
| - | * **CDP** pour **Consolided Data Point**, c'est l' | + | * **CDP** pour **Consolided Data Point**, c'est l' |
| - | * **CF** pour **Consolidation Function** Lors de la création | + | * **CF** pour **Consolidation Function** Lors de la définition |
| - | |||
| - | A la création du fichier base, on définit notamment un plusieurs objets de type **DS** et de type **RRA** : | ||
| - | * **DS** (**D**ata **S**ource) définit le type de données et les limites permettant de contrôler la validité de la valeur | ||
| ==== Data Source ==== | ==== Data Source ==== | ||
| Ligne 45: | Ligne 45: | ||
| L' **heartbeat** s' | L' **heartbeat** s' | ||
| - | **min** et **max** permettent de définir un intervalle de validité pour la valeur. Toute valeurs hors de cet intervalle sera considérée inconnue. | + | **min** et **max** permettent de définir un intervalle de validité pour la valeur. Toute valeurs hors de cet intervalle sera considérée inconnue |
| Ci dessous, un exemple de déclaration utilisé pour stocker des relevés de température: | Ci dessous, un exemple de déclaration utilisé pour stocker des relevés de température: | ||
| Ligne 53: | Ligne 53: | ||
| </ | </ | ||
| - | Dans l' | + | Dans l' |
| ==== RRA ==== | ==== RRA ==== | ||
| - | Définition des Round Robin Archives. Une base RRD peut contenir une ou plusieurs RRA. Chaque RRA est une vue différente stockant indépendamment les données chacune avec un nombre prédéfinit d' | + | **RRA** pour **R**ound **R**obin **A**rchive. Une base RRD peut contenir une ou plusieurs RRA afin de couvrir des plages d' |
| + | |||
| + | La couverture temporelle de la RRA est ajustable via deux paramètres: | ||
| + | * step: nombre de PDP à agréger pour former le CDP | ||
| + | * rows: nombre de CDP conservés dans la RRA | ||
| + | |||
| + | Il est donc possible de concevoir des plages d' | ||
| Lors de l' | Lors de l' | ||
| - | Syntaxe: | + | ==== Syntaxe |
| < | < | ||
| Ligne 74: | Ligne 81: | ||
| * LAST | * LAST | ||
| - | Le champ **XFF** **XF**iles **F**actor, | + | Le champ **XFF** **XF**iles **F**actor, est le pourcentage de **PDP** |
| La valeur **nb_PDPs** correspond au nombre de PDP utilisés pour un enregistrement. | La valeur **nb_PDPs** correspond au nombre de PDP utilisés pour un enregistrement. | ||
| Ligne 80: | Ligne 87: | ||
| La valeur nb_REC | La valeur nb_REC | ||
| + | |||
| + | ===== Consulter la RRD ===== | ||
| + | |||
| + | La commande rrdinfo permet de retourner des information sur la structure de la RRD | ||
| + | <code bash> | ||
| + | $ rrdinfo / | ||
| + | </ | ||
| + | |||
| + | |||
| + | Pour recuperer la date de derniere mise a jour: | ||
| + | <code bash> | ||
| + | $ rrdtool last / | ||
| + | </ | ||
| + | |||
| + | La valeur retournée est un timestamp Unix, pour la mettre en forme de facon plus lisible: | ||
| + | |||
| + | <code bash> | ||
| + | $ date -d @$(rrdtool last / | ||
| + | </ | ||
| + | ===== Étapes pour la création d'une application ===== | ||
| + | |||
| + | * Initialiser la base de données. Création de la base de données et préparer pour accepter les données. Il va falloir préciser la quantité de données à sauvegarder, | ||
| + | * Collecter les données. Un processus devra périodiquement écrire les données dans la base. C'est probablement l’étape qui prendra le plus de temps de développement. | ||
| + | * Création du graphique via [[app: | ||
| ===== Exemples ===== | ===== Exemples ===== | ||
| + | * [[app: | ||
| * Enregistrer le temps moyen de réponse d'un ping sur 1h [[app: | * Enregistrer le temps moyen de réponse d'un ping sur 1h [[app: | ||
| Ligne 90: | Ligne 122: | ||
| * https:// | * https:// | ||
| * http:// | * http:// | ||
| + | * GLM N°143 de Novembre 2011 | ||
| + | * https:// | ||