La Fibre

Télécom => Logiciels et systèmes d'exploitation => Logiciels Logiciels => Discussion démarrée par: Adrieth le 25 novembre 2014 à 11:13:42

Titre: Cyberus Network - RRDTOOL
Posté par: Adrieth le 25 novembre 2014 à 11:13:42
Bonjour à tous,

Comme il y a assez peu d'explications sur cette technologie, je souhaitais vous faire partager mes impressions et mes expériences au travers d'un projet de supervision du réseau de mon école IN'TECH INFO.

Nom du projet - Cyberus Network

Partie RRDTOOL
Ce projet nécessite l'utilisation du générateur de graphique RRDTool afin de surveiller les éléments constituant le réseau.
Infrastructure :
Ici je souhaite générer des graph sur l'utilisation:
Statistiques utilisées :

RRD (Round Robin Database) est une base de donnée cyclique et fixe fonctionnant en First IN First OUT. Avantage : C'est que l'on connait à l'avance sa taille et donc la quantité de données stockés. De plus, données les plus anciennes sont remplacées par les plus récentes.
Enfin, les types de données supportées sont multiple. On peut tout mettre à partir du moment où celle-ci sont numérique.
Pour ce faire, il faut d'abord créer la/les table(s) RRD, puis aller collecter l'information et isoler la valeur numérique, et enfin donner la valeur à RRDtool.

Pour chaque élèment à superviser, il y aura 3 scripts shell (create, update et graph) libellés de la manière suivante :

CREATE

La création d'une db rrd se fait de la façon suivante : rrdtool create filename --start --step DS :ds-name:type:heartbeat:min:max RRA:CF:xff:steps:rows

Ici nous avons plusieurs éléments comme :
NB : Sur OpenBSD, notamment quand on met le script dans une Crontab, il faut indiquer le chemin absolut de rrdtool. ici /usr/local/bin/rrdtool puis la commande relatif à l'action create et enfin le chemin de la db /var/www/htdocs/admin/db/ramused.rrd. Surtout, ne pas oublier l'anti slash \ à la fin, sans quoi, le retour à la ligne va être interpréter comme une fin de commande par RRD.

UPDATE

Voici la syntaxe de la commande :

rrdtool update filename [--template|-t ds-name[:ds-name]...] N| timestamp:value[:value...] [timestamp:value[:value...] ...]

Ici encore, nous avons plusieurs éléments comme :

GRAPH

Voici la syntaxe de la commande :

rrdtool graph filename [option] rrdgraph_data rrdgraph_graph

Ici enfin, nous retrouvons plusieurs éléments comme :
Titre: Cyberus Network - RRDTOOL
Posté par: Adrieth le 25 novembre 2014 à 11:14:30
Supervision de la RAM

Dans ce post, je vais détailler un maximum des éléments qui composent le script.

CREATE

Ici, nous allons dire à RRDTOOL (ci-après rrd) par l'intermédiaire d'un script en shell de nous créer une base de donnée (ci-après db) relatif à la mémoire RAM : memram_rrd_create.sh

#!/bin/sh
# Script de création de la base de données RRDTools pour l'utilisation de la RAM

/usr/local/bin/rrdtool create /var/www/htdocs/admin/db/ramused.rrd \
--step 60 \
DS:ramused:GAUGE:120:0:U \
RRA:AVERAGE:0.5:1:1440 \
RRA:AVERAGE:0.5:15:672 \
RRA:AVERAGE:0.5:60:168

Nous avons donc les éléments suivants :


UPDATE

Ici, nous allons dire à rrd de mettre à jour sa db avec les nouvelles valeur : memram_rrd_update.sh

#!/bin/sh
# Script pour l'update de la base de données RRDTools pour l'utilisation de la RAM

# Récupération des informations de la RAM
ramfreeko=$(vmstat | /usr/bin/tail -n1 | /usr/bin/awk '{print $5}')
ramtotbytes=$(sysctl -n hw.physmem)
let "ramtotko=$ramtotbytes / 1024"
let "ramused=$ramtotko-$ramfreeko"

# Update de RRDTool
/usr/local/bin/rrdtool update /var/www/htdocs/admin/db/ramused.rrd N:$ramused

Nous avons 2 parties : La première va aller interroger le système sur différents paramètres que l'on veux "grapher" et les mettre dans la même unité (ici le Ko) et l'autre partie va à son tour transmettre les valeurs à RRD.

Ici encore, nous avons plusieurs éléments comme :

GRAPH

Enfin, nous allons dire à rrd de créer un graphique avec les données stockées dans la db : memram_rrd_graph.sh

#!/bin/sh
# Script pour la génération des graphique sur de la base de donnée RRDTools pour l'utilisation de la RAM

# Pour 1 Heure
/usr/local/bin/rrdtool graph /var/www/htdocs/admin/graph/ramused-1h.png \
--start -3600 --end now \
--vertical-label Megaoctet \
--width 500 \
--height 200 \
--title "Quantité de mémoire RAM utilisée sur 1 heure" \
--slope-mode \
--watermark "`date`" \
--color CANVAS#000000 \
--color BACK#333333 \
--color FONT#C0C0C0 \
--color MGRID#EFECCA \
--color GRID#A7A37E \
--color FRAME#808080 \
--color ARROW#FFFFFF \
--color SHADEA#404040 \
--color SHADEB#404040 \
DEF:ramused=/var/www/htdocs/admin/db/ramused.rrd:ramused:AVERAGE \
CDEF:ramusedmo=ramused,1024,\/ \
AREA:ramusedmo#046380:"Mémoire RAM utilisée" \

# Pour 1 jour
/usr/local/bin/rrdtool graph /var/www/htdocs/admin/graph/ramused-1d.png \
--start -86400 --end now \
--vertical-label Megaoctet \
--width 500 \
--height 200 \
--title "Quantité de mémoire RAM utilisée sur 1 jour" \
--slope-mode \
--watermark "`date`" \
--color CANVAS#000000 \
--color BACK#333333 \
--color FONT#C0C0C0 \
--color MGRID#EFECCA \
--color GRID#A7A37E \
--color FRAME#808080 \
--color ARROW#FFFFFF \
--color SHADEA#404040 \
--color SHADEB#404040 \
DEF:ramused=/var/www/htdocs/admin/db/ramused.rrd:ramused:AVERAGE \
CDEF:ramusedmo=ramused,1000,\/ \
AREA:ramusedmo#046380:"Mémoire RAM utilisée" \

# Pour 1 semaine
/usr/local/bin/rrdtool graph /var/www/htdocs/admin/graph/ramused-1w.png \
--start -604800 --end now \
--vertical-label Megaoctet \
--width 500 \
--height 200 \
--title "Quantité de mémoire RAM utilisée sur 1 semaine" \
--slope-mode \
--watermark "`date`" \
--color CANVAS#000000 \
--color BACK#333333 \
--color FONT#C0C0C0 \
--color MGRID#EFECCA \
--color GRID#A7A37E \
--color FRAME#808080 \
--color ARROW#FFFFFF \
--color SHADEA#404040 \
--color SHADEB#404040 \
DEF:ramused=/var/www/htdocs/admin/db/ramused.rrd:ramused:AVERAGE \
CDEF:ramusedmo=ramused,1024,\/ \
AREA:ramusedmo#046380:"Mémoire RAM utilisée"

Ici enfin, nous retrouvons plusieurs éléments comme :
Pour la RAM - 1 heure
(http://fairsys.fr/doc/images/lafibre-info/ramused-1h.png)

Pour la RAM - 1 jour
(http://fairsys.fr/doc/images/lafibre-info/ramused-1d.png)

Pour la RAM - 1 semaine
(http://fairsys.fr/doc/images/lafibre-info/ramused-1w.png)
Titre: Cyberus Network - RRDTOOL
Posté par: Adrieth le 25 novembre 2014 à 11:14:46
Supervision du CPU

CREATE

#!/bin/sh
# Script de création de la base de données RRDTools pour l'utilisation du CPU

/usr/local/bin/rrdtool create /var/www/htdocs/admin/db/cpuused.rrd \
--step 60 \
DS:user:GAUGE:120:0:U \
DS:sys:GAUGE:120:0:U \
RRA:AVERAGE:0.5:1:1440 \
RRA:AVERAGE:0.5:15:672 \
RRA:AVERAGE:0.5:60:168

Même principe que pour la RAM sauf que ici nous avons 2 Data Sources (DS) "user" et "sys"

UPDATE

#!/bin/sh
# Script pour l'update de la base de données RRDTools pour l'utilisation du CPU

# Récupération des informations du CPU - user et sys
cpuuser=$(vmstat | /usr/bin/tail -n1 | /usr/bin/awk '{print $16}')
cpusys=$(vmstat | /usr/bin/tail -n1 | /usr/bin/awk '{print $17}')

/usr/local/bin/rrdtool update /var/www/htdocs/admin/db/cpuused.rrd N:$cpuuser:$cpusys

Comme nous avons 2 DS, nous allons indiqué à RRD successivement "user" et ensuite "sys" en respectant l'ordre des DS que nous avaons defini dans CREATE.

GRAPH

#!/bin/sh
# Script pour la génération des graphique sur de la base de donnée RRDTools pour l'utilisation du CPU

# Pour 1 Heure
/usr/local/bin/rrdtool graph /var/www/htdocs/admin/graph/cpuused-1h.png \
--start -3600 --end now \
--vertical-label "en %" \
--width 500 \
--height 200 \
--title "Pourcentage du CPU utilisée sur 1 heure" \
--slope-mode \
--watermark "`date`" \
--color CANVAS#000000 \
--color BACK#333333 \
--color FONT#C0C0C0 \
--color MGRID#EFECCA \
--color GRID#A7A37E \
--color FRAME#808080 \
--color ARROW#FFFFFF \
--color SHADEA#404040 \
--color SHADEB#404040 \
DEF:cpuuser=/var/www/htdocs/admin/db/cpuused.rrd:user:AVERAGE \
DEF:cpusys=/var/www/htdocs/admin/db/cpuused.rrd:sys:AVERAGE \
AREA:cpuuser#046380:"CPU utilisée - user" \
STACK:cpusys#C03000:"CPU utilisée - system" \

# Pour 1 jour
/usr/local/bin/rrdtool graph /var/www/htdocs/admin/graph/cpuused-1d.png \
--start -86400 --end now \
--vertical-label "en %" \
--width 500 \
--height 200 \
--title "Pourcentage du CPU utilisée sur 1 jour" \
--slope-mode \
--watermark "`date`" \
--color CANVAS#000000 \
--color BACK#333333 \
--color FONT#C0C0C0 \
--color MGRID#EFECCA \
--color GRID#A7A37E \
--color FRAME#808080 \
--color ARROW#FFFFFF \
--color SHADEA#404040 \
--color SHADEB#404040 \
DEF:cpuuser=/var/www/htdocs/admin/db/cpuused.rrd:user:AVERAGE \
DEF:cpusys=/var/www/htdocs/admin/db/cpuused.rrd:sys:AVERAGE \
AREA:cpuuser#046380:"CPU utilisée - user" \
STACK:cpusys#C03000:"CPU utilisée - system" \

# Pour 1 semaine
/usr/local/bin/rrdtool graph /var/www/htdocs/admin/graph/cpuused-1w.png \
--start -604800 --end now \
--vertical-label "en %" \
--width 500 \
--height 200 \
--title "Pourcentage du CPU utilisée sur 1 semaine" \
--slope-mode \
--watermark "`date`" \
--color CANVAS#000000 \
--color BACK#333333 \
--color FONT#C0C0C0 \
--color MGRID#EFECCA \
--color GRID#A7A37E \
--color FRAME#808080 \
--color ARROW#FFFFFF \
--color SHADEA#404040 \
--color SHADEB#404040 \
DEF:cpuuser=/var/www/htdocs/admin/db/cpuused.rrd:user:AVERAGE \
DEF:cpusys=/var/www/htdocs/admin/db/cpuused.rrd:sys:AVERAGE \
AREA:cpuuser#046380:"CPU utilisée - user" \
STACK:cpusys#C03000:"CPU utilisée - system" \

Même chose qu'en RAM, mais avec 2 DS. Ici les valeurs sont exprimées en % donc, il y a pas de calcul à faire (pas de CDEF). Par contre on va empiler les valeurs de USER et de SYS. On fait donc intervenir "STACK"

Pour le CPU - 1 heure
(http://fairsys.fr/doc/images/lafibre-info/cpuused-1h.png)

Pour le CPU - 1 jour
(http://fairsys.fr/doc/images/lafibre-info/cpuused-1d.png)

Pour le CPU - 1 semaine
(http://fairsys.fr/doc/images/lafibre-info/cpuused-1w.png)
Titre: Cyberus Network - RRDTOOL
Posté par: Adrieth le 25 novembre 2014 à 11:15:49
Supervision du HDD

CREATE

#!/bin/sh
# Script de création de la base de données RRDTools pour l'utilisation du disque dur

/usr/local/bin/rrdtool create /var/www/htdocs/admin/db/diskused.rrd \
--step 60 \
DS:diskused:GAUGE:2400:0:U \
RRA:AVERAGE:0.5:20:504

Ici, on ne va rafraîchir la db que toutes les 10 minutes, pour garder une valeur toutes les 20 minutes. On les graph que sur 1 journée

UPDATE

#!/bin/sh
# Script RRDTool pour la mémoire du disque dur

diskused=$(/bin/df -kP / | /usr/bin/tail -n1 | /usr/bin/awk '{print $5}' | /usr/bin/sed 's/%$//')

/usr/local/bin/rrdtool update /var/www/htdocs/admin/db/diskused.rrd N:$diskused

Même principe que sur la RAM ou le CPU

GRAPH

#!/bin/sh
#Script de creation du graphique Memoire disque

# Pour 1 jour
/usr/local/bin/rrdtool graph /var/www/htdocs/admin/graph/diskused-1d.png \
--start -86400 --end now \
--vertical-label "en %" \
--width 500 \
--height 200 \
--title "Quantité de mémoire DISK utilisée sur 1 jour" \
--slope-mode \
--watermark "`date`" \
--color CANVAS#000000 \
--color BACK#333333 \
--color FONT#C0C0C0 \
--color MGRID#EFECCA \
--color GRID#A7A37E \
--color FRAME#808080 \
--color ARROW#FFFFFF \
--color SHADEA#404040 \
--color SHADEB#404040 \
DEF:diskused=/var/www/htdocs/admin/db/diskused.rrd:diskused:AVERAGE \
AREA:diskused#046380:"Mémoire DISK utilisée"


Pour le HDD- 1 jour
(http://fairsys.fr/doc/images/lafibre-info/diskused-1d.png)
Titre: Cyberus Network - RRDTOOL
Posté par: Adrieth le 25 novembre 2014 à 11:16:08
Supervision des interfaces réseaux - sis4

Je ne vais pas vous faire les 4 interfaces de la Soekris. Je vais m'attarder sur sis4 qui est le futur LAN et où j'ai un peu de trafic dessus. Cet exemple sera vrai pour les autres interfaces de la machine.

CREATE

#!/bin/sh
# Script de création de la base de données RRDTools pour l'utilisation du réseau

#Sis0
/usr/local/bin/rrdtool create /var/www/htdocs/admin/db/netsis0.rrd \
--step 60 \
DS:in:COUNTER:120:0:U \
DS:out:COUNTER:120:0:U \
RRA:AVERAGE:0.5:1:1440 \
RRA:AVERAGE:0.5:15:672 \
RRA:AVERAGE:0.5:60:168 \

#Sis1
/usr/local/bin/rrdtool create /var/www/htdocs/admin/db/netsis1.rrd \
--step 60 \
DS:in:COUNTER:120:0:U \
DS:out:COUNTER:120:0:U \
RRA:AVERAGE:0.5:1:1440 \
RRA:AVERAGE:0.5:15:672 \
RRA:AVERAGE:0.5:60:168 \

#Sis2
/usr/local/bin/rrdtool create /var/www/htdocs/admin/db/netsis2.rrd \
--step 60 \
DS:in:COUNTER:120:0:U \
DS:out:COUNTER:120:0:U \
RRA:AVERAGE:0.5:1:1440 \
RRA:AVERAGE:0.5:15:672 \
RRA:AVERAGE:0.5:60:168 \

#Sis3
/usr/local/bin/rrdtool create /var/www/htdocs/admin/db/netsis3.rrd \
--step 60 \
DS:in:COUNTER:120:0:U \
DS:out:COUNTER:120:0:U \
RRA:AVERAGE:0.5:1:1440 \
RRA:AVERAGE:0.5:15:672 \
RRA:AVERAGE:0.5:60:168 \

#Sis4
/usr/local/bin/rrdtool create /var/www/htdocs/admin/db/netsis4.rrd \
--step 60 \
DS:in:COUNTER:120:0:U \
DS:out:COUNTER:120:0:U \
RRA:AVERAGE:0.5:1:1440 \
RRA:AVERAGE:0.5:15:672 \
RRA:AVERAGE:0.5:60:1684

Ici, on créer d'un seul coup toutes les bases et ce pour toutes les interfaces.

UPDATE

#!/bin/sh
# Script pour l'update de la base de données RRDTools pour l'utilisation du réseau

# Récupération des informations sur les interfaces

#Sis4 - FREE/PROXAD
sis4in=$(/usr/local/bin/snmpget -v2c -c public localhost IF-MIB::ifInOctets.5 | /usr/bin/awk '{print $4}')
sis4out=$(/usr/local/bin/snmpget -v2c -c public localhost IF-MIB::ifOutOctets.5 | /usr/bin/awk '{print $4}')

# Update de RRDTool

#Sis4 - FREE/PROXAD
/usr/local/bin/rrdtool update /var/www/htdocs/admin/db/netsis4.rrd N:$sis4in:$sis4out

Même principe que sur la RAM ou le CPU. Sauf que ici on utilise le protocole SNMP (Simple Network Management Protocol) qui lui va interroger la base MIB de la machine. Les données issus de cette base ne sont que croissant. Nous, ce qui nous intéresse c'est les variations. Pour ce faire, nous allons utiliser le paramètre COUNTER de RRD à la place de GAUGE. Ce denier va calculer cette variation par rapport aux données remontées par SNMP-MIB.

GRAPH

#!/bin/sh
# Script pour la génération des graphique sur de la base de donnée RRDTools pour l'utilisation de l'interface réseau sis4 - FREE

# Pour 1 Heure
/usr/local/bin/rrdtool graph /var/www/htdocs/admin/graph/network-sis4-1h.png \
--start -3600 --end now \
--vertical-label "Kilo-octet" \
--width 500 \
--height 200 \
--title "Flux IN/OUT sur la sis4 (FREE) - 1 heure" \
--slope-mode \
--watermark "`date`" \
--color CANVAS#000000 \
--color BACK#333333 \
--color FONT#C0C0C0 \
--color MGRID#EFECCA \
--color GRID#A7A37E \
--color FRAME#808080 \
--color ARROW#FFFFFF \
--color SHADEA#404040 \
--color SHADEB#404040 \
DEF:in=/var/www/htdocs/admin/db/netsis4.rrd:in:AVERAGE \
DEF:out=/var/www/htdocs/admin/db/netsis4.rrd:out:AVERAGE \
CDEF:in_bits=in,8,* \
CDEF:out_bits=out,8,* \
LINE3:in_bits#046380:"Traffic IN" \
LINE3:out_bits#C03000:"Traffic OUT" \

# Pour 1 jour
/usr/local/bin/rrdtool graph /var/www/htdocs/admin/graph/network-sis4-1d.png \
--start -86400 --end now \
--vertical-label "Kilo-octet" \
--width 500 \
--height 200 \
--title "Flux IN/OUT sur la sis4 (FREE) - 1 jour" \
--slope-mode \
--watermark "`date`" \
--color CANVAS#000000 \
--color BACK#333333 \
--color FONT#C0C0C0 \
--color MGRID#EFECCA \
--color GRID#A7A37E \
--color FRAME#808080 \
--color ARROW#FFFFFF \
--color SHADEA#404040 \
--color SHADEB#404040 \
DEF:in=/var/www/htdocs/admin/db/netsis4.rrd:in:AVERAGE \
DEF:out=/var/www/htdocs/admin/db/netsis4.rrd:out:AVERAGE \
CDEF:in_bits=in,8,* \
CDEF:out_bits=out,8,* \
LINE3:in_bits#046380:"Traffic IN" \
LINE3:out_bits#C03000:"Traffic OUT" \

# Pour 1 Semaine
/usr/local/bin/rrdtool graph /var/www/htdocs/admin/graph/network-sis4-1w.png \
--start -604800 --end now \
--vertical-label "Kilo-octet" \
--width 500 \
--height 200 \
--title "Flux IN/OUT sur la sis4 (FREE) - 1 semaine" \
--slope-mode \
--watermark "`date`" \
--color CANVAS#000000 \
--color BACK#333333 \
--color FONT#C0C0C0 \
--color MGRID#EFECCA \
--color GRID#A7A37E \
--color FRAME#808080 \
--color ARROW#FFFFFF \
--color SHADEA#404040 \
--color SHADEB#404040 \
DEF:in=/var/www/htdocs/admin/db/netsis4.rrd:in:AVERAGE \
DEF:out=/var/www/htdocs/admin/db/netsis4.rrd:out:AVERAGE \
CDEF:in_bits=in,8,* \
CDEF:out_bits=out,8,* \
LINE3:in_bits#046380:"Traffic IN" \
LINE3:out_bits#C03000:"Traffic OUT"

On converti le tout en bits.

Pour le sis4 - 1 heure
(http://fairsys.fr/doc/images/lafibre-info/network-sis4-1h.png)

Pour le sis4 - 1 jour
(http://fairsys.fr/doc/images/lafibre-info/network-sis4-1d.png)

Pour le sis4 - 1 semaine
(http://fairsys.fr/doc/images/lafibre-info/network-sis4-1w.png)
Titre: Cyberus Network - RRDTOOL
Posté par: kgersen le 25 novembre 2014 à 11:32:07
Je suis surpris qu'on utilise encore RRDTool de nos jours.

Du moins, je pensais que tout les (plus) jeunes (et écoles d'info) utilisaient des trucs plus récents comme InfluxDB et Graphite (et leurs dérivées flashy comme http://grafana.org/ et http://jondot.github.io/graphene/ par exemple).

Une raison a cela ?
Titre: Cyberus Network - RRDTOOL
Posté par: tontonrobert le 25 novembre 2014 à 17:09:08
Hum, je n'ai pas l'impression que ce sont vraiment des projects sur les mêmes segments d'utilisations, si ?

Un avantage de rrdtool : parler le rrdtool, c'est cool.
Titre: Cyberus Network - RRDTOOL
Posté par: Adrieth le 29 novembre 2014 à 12:14:04
Je suis surpris qu'on utilise encore RRDTool de nos jours.

Du moins, je pensais que tout les (plus) jeunes (et écoles d'info) utilisaient des trucs plus récents comme InfluxDB et Graphite (et leurs dérivées flashy comme http://grafana.org/ et http://jondot.github.io/graphene/ par exemple).

Une raison a cela ?

Bonjour Kgersen,

Effectivement, on peut se poser la question de l'utilité d'utiliser RRDTOOL aujourd'hui alors qu'il existe des outils plus récents "graphiquement parlant". Cependant, ici nous avons une contrainte matérielle importante. Pour réaliser ce projet, nous nous basons sur du matériel disponible et parfois ancien. Ici sur une Soekris net4801 qui date de 2005, 128Mo de RAM et un SoC AMD Geode qui plane à 266Mhz, le vent dans le dos. À côté, ma RaspberryPI fait figure de PC de course ! et je ne vous parle pas des smartphones...
Il nous fallait donc utiliser des systèmes très peu gourmands en ressources : OpenBSD pour l'OS et RRDtool notamment pour les graph. InfluxDB et Graphite ont l'air plus user friendly, et plus souple dans leur utilisation, mais je pense aussi beaucoup plus lourd pour le système.

D'autre part, même si RRDTool à l'air ancien, je vois moult programme et/ou entreprise qui l'utilise encore aujourd'hui : cactis, pfsense, observium et autre weathermaps (ovh ou Knet par exemple)
Titre: Cyberus Network - RRDTOOL
Posté par: Adrieth le 29 novembre 2014 à 14:43:25
Tutoriel terminé !

Si vous avez des remarques et autres suggestions, elles sont bienvenues !!

Enjoy  ;)
Titre: Cyberus Network - RRDTOOL
Posté par: BadMax le 30 novembre 2014 à 15:10:45
D'un point de vue développement, je mettrais rrdtool à part. Mets-le dans une fonction "create_database" avec le fichier rrd en paramètres et autres options. Pour le graph, fait pareil. Ca sera plus pratique quand tu augmenteras le nombre de données en entrées.

Pour les graphs, penses "indicateur" et non pas "mesure".
Exemple de mesure : compteur de vitesse
Exemple d'indicateur: jauge d'essence

La différence c'est qu'une mesure ne permet pas de déduire quelque chose quand on la lit, il faut la ramener à un contexte pour la comprendre.
Un indicateur est compréhensible de tout le monde. Pour faire un indicateur, on prend une mesure et on la borne avec des limites/seuils, en la ramenant en % (par exemple) et en indiquant des seuils (<20%=tu glandes, 20-40%=envoi du paté, 40-60%=vas-y fais tout péter, 60-80%=oh oui encore, 80-95%=j'aime ça, >95%=débraye ça fume)

L'avantage de rrdtool est sa facilité de manipulation de données : stockage/archivage, graphs avec plusieurs fichiers rrd, etc

Par contre, un trop grand nombre de données à manipuler en meme temps peut faire exploser la machine.