====== Archives 2006 ====== ===== Statistiques RRDtool ===== __**But**__ : Obtenir ces graphiques (FIXME : Lien HS). __**Note**__ : Fonctionne avec RRDtool >= 1.2x Ce script permet de récupérer la charge (Load average) moyenne du serveur toute les 5 minutes, et d'inscrire ces valeurs dans une base RRDtool. De ces données, je génère 4 graphiques : * Statistique sur 24h * Statistique sur 7 jours * Statistique sur 30 jours * Statistique sur 1 an Pour connaître le principe de base du fonctionnement de RRDtool, je vous conseille de lire [[http://old.ed.zehome.com/?page=rrdtool|l'article édité par Laurent COUSTET]]. Tout d'abord il faut définir la base RRDtool : * La base RRDtool se nommera /root/rrdtool/localhost_load.rrd * On veut récupérer les valeurs de la charge CPU toutes les 5min (ce me semble correcte pour avoir un bon rapport précision / quantité de donnée) * Dans cette base, on va n'avoir besoin que d'une DS((Data Source)) qui correspondra à la charge CPU et que l'on nommera **load** * La DS sera de type GAUGE pour relever les valeurs tel quel, sans traitement particulier * Le délai maxi entre 2 mise à jours va être de 600sec (ce qui correspond à 2 fois la durée de polling choisi, donc 2*5min) * La valeur mini des données DS ne descendra pas en dessous de 0 (un Load Average <0 est impossible) * La valeur maxi quand à elle est inconnue. Une valeur inconnue avec RRDtool se note **U**. ==== Définitions des RRA ==== Sachant que le polling sera de 5 min, et que l'on veut garder les 5 min de précision, on garde le coefficient de 1.\\ On aura 4 RRA((Round Robin Archive)), soit une par graphique. * Pour obtenir les 24h, on va donc avoir besoin de 24h / (5min * 1) -> (24*60) / 5 = 288 (288 points de mesure sur 24h donc) * Pour 7 jours avec une donnée toutes les 30min -> (7j * 24h * 60m) / (30min*1) = 336 * Pour 30 jours avec une donnée toutes les 2h (120min) -> (30j * 24h * 60m) / (120min*1) = 360 * Pour 1 an avec une donnée toutes les 12h (720min) -> (365j * 24h * 60m) / (720min*1) = 730 Avec toutes ces informations, on va pouvoir créer la base : rrdtool create /root/rrdtool/localhost_load.rrd \ DS:load:GAUGE:600:0:U \ RRA:AVERAGE:0.5:1:288 \ RRA:AVERAGE:0.5:6:336 \ RRA:AVERAGE:0.5:24:360 \ RRA:AVERAGE:0.5:144:730 Une fois la base crée, il faut la remplir (maintenant que l'on a fait le plus dur, on ne va pas s'arrêter là)... ==== Récupération des valeurs ==== Pour cela j'utilise un script perso : #!/bin/bash # Mise à jour le 18/02/2006 # Par Ludovic DROUARD sous licence GPL évidemment :) # https://drouard.eu/ ################################################ # Config RRDSOURCE="/root/rrdtool/localhost_load.rrd" ################################################ # Récupération des valeurs LOAD=`cat /proc/loadavg | awk '{print $2}'` # Inscription de ces valeurs dans la base /usr/bin/rrdtool update $RRDSOURCE N:$LOAD ==== Génération des graphs ==== Pour cela j'utilise un autre script perso : #!/bin/bash # Date MAJ : 11/02/2006 # Par Ludovic DROUARD sous licence GPL évidemment :) # https://drouard.eu/ ################################################ # Config RRDSOURCE="/root/rrdtool/localhost_load.rrd" GRAPH="/var/www/localhost/htdocs/rrdtool/load" GRAPHTITLE="Charge CPU (Load Average) sur serveur mono-processeur" DATE_MAJ=`date '+%-d %B %Y - %H\:%M'` # Note : Pour le "flamming", je me suis # inspiré du travail de Laurent COUSTET (http://ed.zehome.com) ################################################ # Pour info : # 86400 ( 24h * 60 m * 60s ) # 604800 ( 7j * 24h * 60m * 60s ) # 2592000 ( 30j * 24h * 60m * 60s ) # 31536000 ( 365j * 24h * 60m * 60s ) for i in -86400 -604800 -2592000 -31536000 do if $i == -86400 then GRAPH2="${GRAPH}-jour.png" fi if $i == -604800 then GRAPH2="${GRAPH}-semaine.png" fi if $i == -2592000 then GRAPH2="${GRAPH}-mois.png" fi if $i == -31536000 then GRAPH2="${GRAPH}-annee.png" fi /usr/bin/rrdtool graph "${GRAPH2}" \ --start ${i} \ --vertical-label "Charge CPU" \ --title "${GRAPHTITLE}" \ --width 500 \ --height 150 \ --lower-limit 0 \ --units-exponent 0 \ --slope-mode \ --imgformat PNG \ --font-render-mode normal \ --color CANVAS#000000 \ --color BACK#101010 \ --color FONT#ffffdf \ --color MGRID#337fbf \ --color GRID#615900 \ --color ARROW#ff0099 \ --color SHADEA#000000 \ --color SHADEB#000000 \ DEF:load=${RRDSOURCE}:load:AVERAGE \ VDEF:load_max=load,MAXIMUM \ VDEF:load_avg=load,AVERAGE \ VDEF:load_last=load,LAST \ CDEF:load_flaming1=load,40,*,100,/ \ CDEF:load_flaming2=load,5,*,100,/ \ LINE1:1#c81818 \ COMMENT:"\n" \ COMMENT:"Charge CPU \:\t\tMaximum\tMoyenne\tActuelle\n" \ AREA:load_flaming1#ffff5f:"Load Average " \ AREA:load_flaming2#fffc51::STACK \ AREA:load_flaming2#fff651::STACK \ AREA:load_flaming2#fff046::STACK \ AREA:load_flaming2#ffe95f::STACK \ AREA:load_flaming2#ffd237::STACK \ AREA:load_flaming2#ffc832::STACK \ AREA:load_flaming2#ffbe2d::STACK \ AREA:load_flaming2#ffaa23::STACK \ AREA:load_flaming2#ff9619::STACK \ AREA:load_flaming2#ff841e::STACK \ AREA:load_flaming2#ff841e::STACK \ AREA:load_flaming2#ff6600::STACK \ GPRINT:load_max:"\t%1.1lf" \ GPRINT:load_avg:"\t%1.1lf" \ GPRINT:load_last:"\t%1.1lf\n" \ COMMENT:"\n" \ COMMENT:"${DATE_MAJ}\r" done ==== Le mot de la fin ==== Enfin, il ne reste qu'a planifier les tâches dans la crontab en rajoutant les lignes (par exemple) : # CPU polling 5 Min / Graph 30 Min */5 * * * * /root/scripts/rrdtool_collect_cpuLA.sh >/dev/null 2>&1 */30 * * * * /root/scripts/rrdtool_graph_cpuLA.sh >/dev/null 2>&1 Et voilà! Sur ce, j'irais bien boire une petite binch((Une bière quoi ;) )) ===== Gentoo : Lirc 0.8pre1 ===== Et voilà, Lirc en sortie en version 0.8pre1 (Stable) sous Gentoo Linux. Cette version assure la compatibilité avec les kernels 2.6.14 et >. Par contre, les devices ont changé, maintenant, le device /dev/lirc0 a été visiblement remplacé par /dev/lirc/0 Pour prendre en compte cette nouvelle configuration sous la Gentoo Linux, modifiez le fichier /etc/conf.d/lircd : vi /etc/conf.d/lircd Et remplacez la ligne LIRCD_OPTS="-d /dev/lirc0" par : LIRCD_OPTS="-d /dev/lirc/0"