====== 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"