Introduction à RRDTool
• Qu’est-ce que RRDtool ?
• Création et peuplement de la base
• Visualisation de la base
• Génération des graphs
• Exercice
• Qu’est-ce que RRDtool ?
• Création et peuplement de la base
• Visualisation de la base
• Génération des graphs
• Exercice
SommaireSommaire
• Une base de données cyclique
• Un outil de création de graphiques
RRDTool n’est pas :
• Un outil de collecte
• Un analyseur SNMP
• Une base de données cyclique
• Un outil de création de graphiques
RRDTool n’est pas :
• Un outil de collecte
• Un analyseur SNMP
Qu’est-ce que RRDTool ?Qu’est-ce que RRDTool ?
• Un nombre fixe de données est sauvegardé Les données les plus anciennes sont écrasées On fait une moyenne pour avoir des données• sur le long terme
• Un nombre fixe de données est sauvegardé Les données les plus anciennes sont écrasées On fait une moyenne pour avoir des données• sur le long terme
Qu’est-ce qu’une basede données cyclique ?Qu’est-ce qu’une basede données cyclique ?
Qu’est-ce qu’une basede données cyclique ?Qu’est-ce qu’une basede données cyclique ?
Une base de donnéesavec ses données
On ajoutedes donnéesIl n’y a plusde place !
On enlève les donnéesles plus anciennes pour
faire de la place
La base ne changejamais de taille
• Avec la commande rrdtool createPar exemple:rrdtool create memory.rrd --step 60 DS:buffer:GAUGE:120:U:U RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:15:672
• Avec la commande rrdtool createPar exemple:rrdtool create memory.rrd --step 60 DS:buffer:GAUGE:120:U:U RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:15:672
Comment créer une base ?Comment créer une base ?
rrdtool create memory.rrd --step 60 DS:buffer:GAUGE:120:U:U RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:15:672
1- Création d’une base memory.rrd qui sera alimentée toutes les 60 secondes
2- Création d’une variable nommée buffer, de type GAUGE
rrdtool create memory.rrd --step 60 DS:buffer:GAUGE:120:U:U RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:15:672
1- Création d’une base memory.rrd qui sera alimentée toutes les 60 secondes
2- Création d’une variable nommée buffer, de type GAUGE
Comment créer une base ?Comment créer une base ?
rrdtool create memory.rrd --step 60 DS:buffer:GAUGE:120:U:U RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:15:672
3- On crée une table de 1440 cases qui sera alimentée toutes les step (60 secondes)
4- On crée une table de 672 cases qui sera alimentée toutes les 15 step (15 minutes)
rrdtool create memory.rrd --step 60 DS:buffer:GAUGE:120:U:U RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:15:672
3- On crée une table de 1440 cases qui sera alimentée toutes les step (60 secondes)
4- On crée une table de 672 cases qui sera alimentée toutes les 15 step (15 minutes)
Comment créer une base ?Comment créer une base ?
• GAUGE, COUNTER, DERIVE, ABSOLUTE, etc.
• GAUGE, Valeur oscillante (temperature, RAM, etc.)
• COUNTER, Valeur croissante (Octets échangés,âge, etc.)
• DERIVE, Dérivée de la fonction (Pente d’unefonction, etc.)
• ABSOLUTE, Valeur par rapport à la précédente
• GAUGE, COUNTER, DERIVE, ABSOLUTE, etc.
• GAUGE, Valeur oscillante (temperature, RAM, etc.)
• COUNTER, Valeur croissante (Octets échangés,âge, etc.)
• DERIVE, Dérivée de la fonction (Pente d’unefonction, etc.)
• ABSOLUTE, Valeur par rapport à la précédente
Types de donnéesTypes de données
Comment créer une base ?Comment créer une base ?
Une table de1440 cases
Une table de672 cases
On alimente la basetoutes les
60 secondes
On fait la moyennedes15 valeurs
précédentes pouralimenter la
seconde table
• En combien de temps la base sera-t-elle remplie ?
• Pourrais-je faire des graphs de 2h ? et 4h ?
• Quelle sera la taille de la base à sacréation ?
• Et quand elle sera remplie ?
• Quel âge aura l’information la plus vieillede la base ?
• En combien de temps la base sera-t-elle remplie ?
• Pourrais-je faire des graphs de 2h ? et 4h ?
• Quelle sera la taille de la base à sacréation ?
• Et quand elle sera remplie ?
• Quel âge aura l’information la plus vieillede la base ?
Questions ?Questions ?
• Quel est l’intérêt de créer plusieurs RRA ?
• Quelle commande utiliser pour créer desgraphs d’une heure, sur une semaine ?
• Même chose pour aussi pouvoir faire desgraphs d’un mois, sur une année ?
• Quel est l’intérêt de créer plusieurs RRA ?
• Quelle commande utiliser pour créer desgraphs d’une heure, sur une semaine ?
• Même chose pour aussi pouvoir faire desgraphs d’un mois, sur une année ?
Questions ?Questions ?
• A la main: rrdtool update test.rrd 920804700:12345 920805000:12357 920805300:12363
•Automatiquement: #!/bin/sh mem=`snmpget -v2c -c macommunaute localhost hrStorageUsed.2 | cut -d ":" -f 4 | cut -d " " -f 2` rrdtool update /root/rrdtool/memory.rrd N:$mem
• A la main: rrdtool update test.rrd 920804700:12345 920805000:12357 920805300:12363
•Automatiquement: #!/bin/sh mem=`snmpget -v2c -c macommunaute localhost hrStorageUsed.2 | cut -d ":" -f 4 | cut -d " " -f 2` rrdtool update /root/rrdtool/memory.rrd N:$mem
Comment alimenter la base ?Comment alimenter la base ?
• A l’aide de rrdtool dump: rrdtool dump test.rrd | less
<!-- Round Robin Database Dump --> <rrd> <version> 0001 </version> <step> 60 </step> <!-- Seconds --> <lastupdate> 1170153361 </lastupdate> <!-- 2007-01-30 11:36:01 CET --> …
• A l’aide de rrdtool dump: rrdtool dump test.rrd | less
<!-- Round Robin Database Dump --> <rrd> <version> 0001 </version> <step> 60 </step> <!-- Seconds --> <lastupdate> 1170153361 </lastupdate> <!-- 2007-01-30 11:36:01 CET --> …
Comment lire la base ?Comment lire la base ?
C’est très simple ! C’est très simple !
Comment créer des graphs ?Comment créer des graphs ?
A l’aide de rrdtool graph:A l’aide de rrdtool graph:
rrdtool graph /var/www/graphs/traffic_heure.png --start -3600 --vertical-label bps DEF:inoctets=/root/rrdtool/dedibox.rrd:input:AVERAGE DEF:outoctets=/root/rrdtool/dedibox.rrd:output:AVERAGE CDEF:inbps=inoctets,8,\* CDEF:outbps=outoctets,8,\* AREA:inbps#00FF00:"Traffic entrant" LINE1:outbps#0000FF:"Traffic sortant"
Comment créer des graphs ?Comment créer des graphs ?
rrdtool graph /var/www/graphs/traffic_heure.png --start -3600 --vertical-label bps DEF:inoctets=/root/rrdtool/dedibox.rrd:input:AVERAGE DEF:outoctets=/root/rrdtool/dedibox.rrd:output:AVERAGE CDEF:inbps=inoctets,8,\* CDEF:outbps=outoctets,8,\* AREA:inbps#00FF00:"Traffic entrant" LINE1:outbps#0000FF:"Traffic sortant"
1- On crée un graph nommé traffic_heure.png qui démarre ily a 3600s, soit une heure
2- On crée deux variables qui vont correspondre à des valeurs de ma base dedibox.rrd, input et output
3- On crée deux autrs variables qui vont correspondre à un calcul fait sur les deux variables précédentes pour les avoir en bits par secondes
Comment créer des graphs ?Comment créer des graphs ?
rrdtool graph /var/www/graphs/traffic_heure.png --start -3600 --vertical-label bps DEF:inoctets=/root/rrdtool/dedibox.rrd:input:AVERAGE DEF:outoctets=/root/rrdtool/dedibox.rrd:output:AVERAGE CDEF:inbps=inoctets,8,\* CDEF:outbps=outoctets,8,\* AREA:inbps#00FF00:"Traffic entrant" LINE1:outbps#0000FF:"Traffic sortant"
1- On graphs la variable inbps en vert sous forme d’histogrammes
2- On graph la variable outbps en bleu sous forme de ligne
Et voilà !Et voilà !
Comment créer des graphs ?Comment créer des graphs ?
• Choisissez une variable à monitorer, depréférence avec plusieurs entrées (mémoire, CPU, LAN, etc.)
• Faites un scripts qui récupère ces valeursproprement
• Calculez les valeurs de temps dont vousaurez besoin pour afficher les données parheure, jour et semaine
• Choisissez une variable à monitorer, depréférence avec plusieurs entrées (mémoire, CPU, LAN, etc.)
• Faites un scripts qui récupère ces valeursproprement
• Calculez les valeurs de temps dont vousaurez besoin pour afficher les données parheure, jour et semaine
Comment créer des graphs ?Comment créer des graphs ?
• Créez votre base
• Ajoutez à votre script l’insertion des valeursdans la base
• Mettez le script dans le crontab toutes lesminutes
• Créez votre base
• Ajoutez à votre script l’insertion des valeursdans la base
• Mettez le script dans le crontab toutes lesminutes
Comment créer des graphs ?Comment créer des graphs ?
• Créez un premier graph simple
• Créez trois graphs, chacun pour les périodesde temps différentes (heure, jour, semaine)
• Créez une page web qui affiche vos graphs
• Créez un premier graph simple
• Créez trois graphs, chacun pour les périodesde temps différentes (heure, jour, semaine)
• Créez une page web qui affiche vos graphs
Comment créer des graphs ?Comment créer des graphs ?
• Utilisez les options de graph pour améliorervos graphs
• Faites différents graphs (somme,positif/négatif, etc.)
• Utilisez des couleurs, rafraichissezautomatiquement vos pages.
• Utilisez les options de graph pour améliorervos graphs
• Faites différents graphs (somme,positif/négatif, etc.)
• Utilisez des couleurs, rafraichissezautomatiquement vos pages.