Outils pour utilisateurs

Outils du site


app:rrdtool:start

RRDtool

Généralités

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 textuelle. RRDtool 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.

La base de données

RRD pour Round Robin Database (base de données tourniquet). Le fichier de la base RRD contient un nombre d'enregistrements fixes, dé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 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

  • 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:
    • COUNTER, valeur augmentant en continu, la valeur stockée est le delta entre la précédente et la nouvelle.
    • DERIVE, similaire à COUNTER mais permet de stocker des valeurs négatives et de décroître. Le delta est stocké.
    • 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.
  • 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 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 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 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.

Data Source

La déclaration d'un DS utilise la syntaxe suivante:

DS:label:DST:heartbeat:min:max

Le champ DST pour Data Source Type peut prendre les valeurs suivantes:

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 UNKNOW.

Ci dessous, un exemple de déclaration utilisé pour stocker des relevés de température:

DS:temp-sonde1:GAUGE:600:55:95 \

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 pour Round Robin Archive. 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ées, chacune 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 Primary Data Point) 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

RRA:CF:XFF:nb_PDPs:nb_REC

Le champ CF pour Consolidation function peut prendre l'une des valeurs suivantes:

  • AVERAGE
  • MIN
  • MAX
  • LAST

Le champ XFF XFiles Factor, 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_REC

Consulter la RRD

La commande rrdinfo permet de retourner des information sur la structure de la RRD

$ rrdinfo /tmp/base.rrd

Pour recuperer la date de derniere mise a jour:

$ rrdtool last /tmp/base.rrd

La valeur retournée est un timestamp Unix, pour la mettre en forme de facon plus lisible:

$ date -d @$(rrdtool last /tmp/base.rrd)

É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 rrdgraph. Relire les données de la base pour faire les calculs et créer les graphiques.

Exemples

Références

app/rrdtool/start.txt · Dernière modification : 2021/02/01 21:51 de 127.0.0.1