Outils pour utilisateurs

Outils du site


app:rrdtool:start

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
app:rrdtool:start [2018/03/25 20:10] yoannapp: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 de la base de données et préparer pour accepter les donnéesIl va falloir préciser la quantité de données à sauvegarder, la fréquence de mise à jour des données (step) et quel type de données est sauvegardé. +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'outils permettant d'alimenter la base et d'exporter les valeurs sous forme graphique ou textuelleRRDtool est couramment utilisé pour les tâches d'administration système et de supervision. On le retrouve intégré à des logiciels tels que Cacti, Munin ou Centreon
-  * 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. 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'enregistrements est fixe, la taille de la base ne croit pas indéfiniment. Lorsque le dernier enregistrement est écrit l’écriture reprend sur le premier. Ce type de stockage est particulièrement adapté aux données à durée de vie limitée.+**RRD** pour **R**ound **R**obin **D**atabase (base de données tourniquet). Le fichier de la base RRD contient un nombre d'enregistrements fixesdéfinit à la création. La taille de la base ne croit pas indéfiniment. Lorsque le dernier enregistrement est écrit l’écriture reprend sur le premier. Ce type de stockage est particulièrement adapté aux données à durée de vie limitée
 + 
 +Les données enregistrées dans une RRD sont fondamentalement liées au temps. L'intervalle de temps entre deux insertions est définit à la création de la base, c'est le **step**. Chaque enregistrement a un **timestamp UNIX**. 
 + 
 +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'éléments **RRA**, **CDP**, **PDP**. Ces éléments sont présentés dans la section terminologie.
  
-La plage de temps servant de base pour la mesure est également bornée (déterminée et fixée). Si plus d'informations sont envoyé à la base, une valeur moyenne sera determinée sur la tranche de de temps servant d'unité de mesure. Une mesure peut donc arriver avec une fréquence plus élevée sans que cela pose problème.+La plage de temps servant de base pour la mesure est également bornée (déterminée et fixée). Si plus d'informations sont envoyé à la base, une valeur moyenne sera déterminée sur la tranche de de temps servant d'unité de mesure. Une mesure peut donc arriver avec une fréquence plus élevée sans que cela pose problème.
  
 ===== Terminologie ===== ===== Terminologie =====
  
-  * **DS** pour **Data Source**, description d'une source de données brutes d'où proviennent les informations à destination du stockage. Identifiée par un nom, valeurs brutes utilisées à intervalle régulier (**heartbeat**).+  * **DS** pour **Data Source**, description d'une source de données numériques brute à destination du stockage. Identifiée par un nom, valeurs brutes utilisées à intervalle régulier (**heartbeat**).
   * **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**, valeur augmentant en continu, la valeur stockée est le delta entre la précédente et la nouvelle.     * **COUNTER**, valeur augmentant en continu, la valeur stockée est le delta entre la précédente et la nouvelle.
Ligne 23: Ligne 26:
     * **ABSOLUTE**: stocke un delta mais en considérant que la valeur précédente est 0.     * **ABSOLUTE**: stocke un delta mais en considérant que la valeur précédente est 0.
     * **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 robinElle peut être assimilée à la définitions de vues. On peut définir différentes façon de stocker les données. +  * **RRA** pour **Round Robin Archive**. Une RRD peut contenir plusieurs archives RRA. Les valeurs insérées dans la RRD sont périodiquement agrégées pour former les CDP enregistrés dans les RRA. Elles peuvent être assimilées à la définitions de vues. On peut définir différentes façon d'agréger les données. C'est lors de la création de la RRD qu'est définit l'historique couvert par l'archive via la définition des RRA
-  * **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 en base, elle est consolidée avant. +  * **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 dans la RRA, elle est consolidée avant. La consolidation consiste à agréger plusieurs PDP à l'aide d'une fonction de consolidation afin de conserver une tendance pertinente
-  * **CDP** pour **Consolided Data Point**, c'est l'entrée dans la base **RRA**. Il est possible de le determiné à l'aide d'un seul PDP mais tout l’intérêt consiste à consolider la mesure en utilisant plusieurs PDP et une méthode de consolidation **CF**. +  * **CDP** pour **Consolided Data Point**, c'est l'entrée dans la base **RRA**. Il est possible de le déterminer à l'aide d'un seul PDP mais tout l’intérêt consiste à consolider la mesure en utilisant plusieurs PDP et une méthode de consolidation **CF**. 
-  * **CF** pour **Consolidation Function** Lors de la création d'une RRA, RRDtool utilise un certain nombre de PDP pour determiner le CDP enregistrer. La manière de traiter est définei par un fonction de consolidation: **AVERAGE**, **MINIMUM**, **MAXIMUN** ou **LAST**.+  * **CF** pour **Consolidation Function** Lors de la définition d'une RRA, RRDtool utilise un certain nombre de PDP pour déterminer le CDP à enregistrer. La manière de traiter est définie par un fonction de consolidation: **AVERAGE**, **MINIMUM**, **MAXIMUN** ou **LAST**.
  
  
- 
-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'exprime en secondes, c'est un timeout ou temps limite au bout duquel la valeur est considérée inconnue. L' **heartbeat** s'exprime en secondes, c'est un timeout ou temps limite au bout duquel la valeur est 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.+**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 **UNKNOW**.
  
 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:
 </code> </code>
  
-Dans l'exemple ci dessus, on définit une variable de type mesure dont le nom est temp-sonde1 avec des valeurs pouvant varier dans l'intervalle [55, 95]. La Fenetre de validité d'une mesure est de 600 secondes.  +Dans l'exemple ci dessus, on définit une variable de type mesure dont le nom est temp-sonde1 avec des valeurs pouvant varier dans l'intervalle [55, 95]. La Fenêtre de validité d'une mesure (heartbeat) est de 600 secondes.  
  
  
 ==== 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'enregistrements.+**RRA** pour **R**ound **R**obin **A**rchive. Une base RRD peut contenir une ou plusieurs RRA afin de couvrir des plages d'historique avec plus ou moins de précision. Chaque RRA est une vue différente stockant indépendamment les donnéeschacune avec un nombre prédéfinit d'enregistrements. 
 + 
 +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'historiques avec plus ou moins de **PDP** par **CDP** ou bien plus ou moins de **CDP** par **RRA** en fonction des besoins (vues ou historiques souhaités). 
 Lors de l'insertion d'une valeur( appelée **PDP** pour **P**rimary **D**ata **P**oint) la valeur enregistrée dans chaque RRA après combinaison avec les valeurs précédentes. Cette opération est effectuée via les fonctions de consolidation ou CF (Consolidation Function) Lors de l'insertion d'une valeur( appelée **PDP** pour **P**rimary **D**ata **P**oint) la valeur enregistrée dans chaque RRA après combinaison avec les valeurs précédentes. Cette opération est effectuée via les fonctions de consolidation ou CF (Consolidation Function)
  
-Syntaxe:+==== Syntaxe ====
  
 <code> <code>
Ligne 74: Ligne 81:
   * LAST   * LAST
  
-Le champ **XFF** **XF**iles **F**actor, c'est le pourcentage de PDPs pouvant être inconnus avant de rendre la valeur enregistrée inconnue.+Le champ **XFF** **XF**iles **F**actor, est le pourcentage de **PDP** pouvant être inconnu avant de rendre le **CDP** inconnu.
  
 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 /tmp/base.rrd
 +</code>
 +
 +
 +Pour recuperer la date de derniere mise a jour:
 +<code bash>
 +$ rrdtool last /tmp/base.rrd
 +</code>
 +
 +La valeur retournée est un timestamp Unix, pour la mettre en forme de facon plus lisible:
 +
 +<code bash>
 +$ date -d @$(rrdtool last /tmp/base.rrd)
 +</code>
 +===== É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, la fréquence de mise à jour des données (step) et quel type de données est sauvegardé.
 +  * 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:rrdtool:rrdgraph]]. Relire les données de la base pour faire les calculs et créer les graphiques.
  
  
 ===== Exemples ===== ===== Exemples =====
  
 +  * [[app:rrdtool:exemples:trafic-interface| Enregistrer le trafic d'une interface]]
   * Enregistrer le temps moyen de réponse d'un ping sur 1h [[app:rrdtool:ping-graph]]   * Enregistrer le temps moyen de réponse d'un ping sur 1h [[app:rrdtool:ping-graph]]
  
Ligne 90: Ligne 122:
   * https://calomel.org/rrdtool.html   * https://calomel.org/rrdtool.html
   * http://cuddletech.com/articles/rrd/ar01s02.html   * http://cuddletech.com/articles/rrd/ar01s02.html
 +  * GLM N°143 de Novembre 2011
 +  * https://ds9a.nl/rrd-mini-howto/cvs/rrd-mini-howto/output/rrd-mini-howto-1.html
  
app/rrdtool/start.1522008621.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)