Recherche


imprimer pdf
Comment ajouter d'autres graphes pour monitorer votre machine ?


Introduction

MRTG est un processus qui génère à intervalle régulier un ou plusieurs graphiques. Chaque graphique a besoin d'une série de 4 valeurs pour être mis à jour. MRTG fait donc appel, via son fichier de configuration, à un script qui se charge d'interroger l'élément que nous souhaitons monitorer et de retourner la série de 4 valeurs.

Si vous avez déjà installé les courbes MRTG à l'aide de notre guide, vous devriez avoir un fichier de configuration du type mrtg_nsXXXX.ovh.net.cfg (nsXXXX représente bien entendu le nom de votre serveur dédié). Pour chaque élément pour lequel nous souhaitons ajouter le tracé d'un graphe, il suffit d'ajouter une section de ce genre :

[root@julien /]# more /home/ovh/www/mrtg/mrtg-sys/mrtg_julien.ovh.net.cfg

Target[julien.ovh.net_dns]: `/home/ovh/www/mrtg/mrtg-sys/dns.pl`
PageTop[julien.ovh.net_dns]:

Requêtes DNS


Options[julien.ovh.net_dns]: growright, perhour, noi
MaxBytes[julien.ovh.net_dns]: 1000000
Title[julien.ovh.net_dns]: Requêtes DNS
YLegend[julien.ovh.net_dns]: reqs/heure
LegendO[julien.ovh.net_dns]: Requêtes DNS
Legend2[julien.ovh.net_dns]: Requêtes DNS horaires
ShortLegend[julien.ovh.net_dns]: /heure


Target[julien.ovh.net_dns] représente le nouveau graphe que nous souhaitons générer avec MRTG. Le script /home/ovh/www/mrtg/mrtg-sys/dns.pl sera appelé chaque fois que MRTG devra mette à jour le graphe, il est chargé de retourner les 4 valeurs représentant l'activité de l'élément monitoré. Tous les champs contenant [julien.ovh.net_dns] sont des options de ce graphe.

Pour que les graphes ajoutés dans MRTG s'affichent sur votre page d'accueil habituelle, vous devez regénérer l'index après chaque modification:

cd /home/ovh/www/mrtg

/usr/local/mrtg-2/bin/indexmaker --output=index.html /home/ovh/www/mrtg/mrtg-sys/mrtg_nsXXXX.ovh.net.cfg
Pour l'installation par les sources

/usr/bin/indexmaker --output=index.html /home/ovh/www/mrtg/mrtg-sys/mrtg_nsXXXX.ovh.net.cfg
Pour l'installation par RPM



Exemples de nouveaux graphes

N'importe quel script peut être utilisé pour monitorer votre serveur. La plupart de ceux qui existent déjà dans le répertoire /home/ovh/www/mrtg/mrtg-sys/ sont écrits en Perl mais vous pouvez les écrire en bash ou même en python. La seule condition est que le résultat retourné soit 4 valeurs les une en dessous des autres (une par ligne). Vous pouvez placer vos nouveaux scripts dans le même répertoire, puis effectuer les commandes suivantes :

chown ovh.ovh /home/ovh/www/mrtg/mrtg-sys/nouveau_script.pl
chmod 705 /home/ovh/www/mrtg/mrtg-sys/nouveau_script.pl


Les scripts suivants sont des exemples de graphes que vous pouvez ajouter. Il est ainsi très facile de monitorer d'autres éléments comme la température du processeur ou la taille de la queue du serveur de mail. Il suffit pour cela de créer le script qui retourne les valeurs adéquates.


Requêtes DNS

Ce graphe va nous permettre de monitorer le nombre de requêtes traitées par votre serveur DNS toutes les heures. Nous allons pour cela utiliser la commande /usr/sbin/rdnc stats. Si cette commande vous retourne une erreur, il vous faut en premier lieu résoudre le problème avec ce guide:BindServeurDns

Cette commande créé un fichier /var/named/named.stats contenant les statistiques du serveur DNS. Il suffit alors de récupérer la valeur du paramètre recursion pour connaitre le nombre de requêtes traitées. MRTG se chargera alors de faire une moyenne de requêtes pas heure.

Voici le script qui sera utilisé :

[root@julien mrtg-sys]# more dns.pl
#! /usr/bin/perl

$dummy = `rm -rf /var/named/named.stats`;
$dummy = `/usr/sbin/rndc stats`;
$data = `tail -3 /var/named/named.stats | head -1 | cut -f 2 -d " "`;
print $data;
print $data;
print "0
0"



Et la section à ajouter dans le fichier de configuration de MRTG :

Target[nsXXXX.ovh.net_dns]: `/home/ovh/www/mrtg/mrtg-sys/dns.pl`
PageTop[nsXXXX.ovh.net_dns]:

Requêtes DNS


Options[nsXXXX.ovh.net_dns]: growright, perhour, noi
MaxBytes[nsXXXX.ovh.net_dns]: 1000000
Title[nsXXXX.ovh.net_dns]: Requêtes DNS
YLegend[nsXXXX.ovh.net_dns]: reqs/heure
LegendO[nsXXXX.ovh.net_dns]: Requêtes DNS
Legend2[nsXXXX.ovh.net_dns]: Requêtes DNS horaires
ShortLegend[nsXXXX.ovh.net_dns]: /heure


Nous indiquons que nous souhaitons tracer le nombre de requêtes par heure grâce à l'option perhour. MRTG est prévu pour tracer deux courbes sur le même graphe. Nous pouvons forcer le tracé d'une seule courbe grâce à l'option noi. De même, pour que la courbe tracée soit celle en bleu, nous ne précisons que les paramètres LegendO et Legend2.


Température du disque dur

Il est possible de monitorer la température de votre disque sur. Pour cela, nous allons utiliser hddtemp. Vous trouverez la procédure pour l'installer cet outil via un paquet RPM dans cet autre guide : ExemplesCompilation

Une fois installé, nous allons mettre en place la base des disques durs reconnus par hddtemp :

[root@julien /]# cp /usr/share/misc/hddtemp.db /etc/hddtemp.db

Un petit test pour notre disque principal :

[root@julien /]# hddtemp -f /etc/hddtemp.db -n /dev/hda
32

Si vous obtenez un warning, c'est que votre disque n'est pas encore reconnu dans la base. Dans ce cas, nous allons déterminer ses paramètres grâce à la commande suivante :

[root@julien /]# hddtemp -D /dev/hda

Modèle: IC35L040AVVN07-0

champ(1) = 45
champ(2) = 0
champ(3) = 15
champ(4) = 13
champ(5) = 27
...
champ(194) = 32
...

Il suffit ensuite de repérer le modèle du disque ainsi que la valeur du champ qui correspond à la température du disque et d'ajouter la ligne à la fin du fichier /etc/hddtemp.db. Pour notre exemple ci dessus, la ligne sera :

"IC35L040AVVN07-0" 194 C "IC35L040AVVN07-0"


Voici le script qui sera utilisé par MRTG :

[root@julien mrtg-sys]# more hddtemp.sh
#! /bin/sh

drive=$1

line=`/usr/bin/hddtemp -f /etc/hddtemp.db -n $drive`

echo $line
echo $line
uptimed=`uptime | awk '{print $3 $4}'`
echo $uptimed
echo $drive



Et la section à ajouter dans le fichier de configuration de MRTG :

Target[nsXXXX.ovh.net_temphda]: `/home/ovh/www/mrtg/mrtg-sys/hddtemp.sh /dev/hda`
PageTop[nsXXXX.ovh.net_temphda]:

Température de /dev/hda


Options[nsXXXX.ovh.net_temphda]: growright, gauge ,noi
MaxBytes[nsXXXX.ovh.net_temphda]: 200
Title[nsXXXX.ovh.net_temphda]: Température de /dev/hda
Ylegend[nsXXXX.ovh.net_temphda]: Température
Legend2[nsXXXX.ovh.net_temphda]: Température /dev/hda
LegendO[nsXXXX.ovh.net_temphda]: hda
ShortLegend[nsXXXX.ovh.net_temphda]: °C


Comme ci-dessus, nous demandons à MRTG de tracer une seule courbe en bleu sur ce graphe. La température du disque est monitorée en degrés Celsius. Bien entendu, il est possible de monitorer un autre disque en changeant le paramètre passé au script (votre disque de backup par exemple : http://www.ovh.com/fr/dedie/services/2hdd.html.


Hits Apache

Votre serveur dédié est livré avec le module mod_status pour Apache. Ce module nous permet de voir un certain nombre de choses à popos du serveur Apache à l'URL http://nsXXXX.ovh.net/ovh-status/. Nous allons utiliser la version simplifiée de cette page pour monitorer le nombre de hits par heure traîtés par Apache.

Pour que notre script puisse accéder à cette page, il suffit de vérifier que le fichier de configuration /httpd.conf comporte une section de ce type :


SetHandler? server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1


Pour plus de détails, consultez le guide ConfigurerEtUtiliserServerStatus.


Voici le script qui sera utilisé par MRTG :

[root@julien mrtg-sys]# more apache_hits.pl
#!/usr/bin/perl

$dummy = `lynx -dump http://localhost/ovh-status?auto`;

$dummy =~ /Total Accesses: (d+)/;
$d1 = int($1);

print "$d1
";
print "$d1
";
print "0
0";



Et la section à ajouter dans le fichier de configuration de MRTG :

Target[julien.ovh.net_apachehits]:`/home/ovh/www/mrtg/mrtg-sys/apache_hits.pl`
PageTop[julien.ovh.net_apachehits]:

Hits Apache


Options[julien.ovh.net_apachehits]: growright, perhour, noi
MaxBytes[julien.ovh.net_apachehits]: 1000000
Title[julien.ovh.net_apachehits]: Traffic Apache
Ylegend[julien.ovh.net_apachehits]: hits/heure
Legend2[julien.ovh.net_apachehits]: Hits par heure
LegendO[julien.ovh.net_apachehits]: Hits par heure
ShortLegend[julien.ovh.net_apachehits]: /heure


L'affichage du nombre de requêtes par heure est géré par le paramètre perhour


Trafic Apache

Tout comme pour les hits, nous pouvons monitorer le débit du serveur Apache, c'est à dire le nombre d'octets par seconde qu'il traite sur le serveur. Nous allons pour cela utiliser la même page, il faut donc vérifier que les accès sont autorisés comme dans l'exemple précédent.

Voici le script qui sera utilisé par MRTG :

[root@julien mrtg-sys]# more apache_traffic.pl
#!/usr/bin/perl

$dummy = `lynx -dump http://localhost/ovh-status?auto`;

$dummy =~ /Total kBytes: (d+)/;
$d1 = int($1*1024);

print "$d1
";
print "$d1
";
print "0
0";



Et la section à ajouter dans le fichier de configuration de MRTG :

Target[julien.ovh.net_apachetraffic]:`/home/ovh/www/mrtg/mrtg-sys/apache_traffic
PageTop[julien.ovh.net_apachetraffic]:

Traffic Apache


Options[julien.ovh.net_apachetraffic]: growright, noi
MaxBytes[julien.ovh.net_apachetraffic]: 16000
Title[julien.ovh.net_apachetraffic]: Traffic Apache
Ylegend[julien.ovh.net_apachetraffic]: octets/s
Legend2[julien.ovh.net_apachetraffic]: Traffic Apache
LegendO[julien.ovh.net_apachetraffic]: Traffic Apache
ShortLegend[julien.ovh.net_apachetraffic]: octets/s




Liens