Table des matières

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 :

Pour connaître le principe de base du fonctionnement de RRDtool, je vous conseille de lire l'article édité par Laurent COUSTET.

Tout d'abord il faut définir la base RRDtool :

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 RRA2), soit une par graphique.

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 :

rrdtool_collect_cpuLA.sh
#!/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 :

rrdtool_graph_cpuLA.sh
#!/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 binch3)

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"
1)
Data Source
2)
Round Robin Archive
3)
Une bière quoi ;)