Sommaire :
=> Installation de base SNMP et MRTG
=> Ajouter un graphique de contrôle du ping
=> Ajouter un graphique de contrôle de la mémoire CACHE
=> Ajouter un graphique de contrôle de la mémoire RAM
=> Ajouter un graphique de surveillance CPU (1ère méthode)
=> Ajouter un graphique de surveillance CPU (2ème méthode)
=> Ajouter un graphique de surveillance de Hits Apache2
=> Ajouter un graphique de surveillance de Traffic Apache2
=> Ajouter un graphique de contrôle des requêtes MySQL
=> Ajouter un graphique de contrôle de traffic réseau
Installation de base SNMP et MRTG :
Installer snmpd :
# apt-get install snmpd
Editer le fichier de configuration du serveur snmp afin de le rendre utilisable par MRTG :
# nano /etc/snmp/snmpd.conf
### commenter cette ligne ###
# com2sec paranoid default public
### décommenter cette ligne ###
com2sec readonly default public
Redémarrer snmpd :
# /etc/init.d/snmpd restart
Installer MRTG :
# apt-get install mrtg
Créer le dossier /etc/mrtg qui contiendra les scripts spécifiques :
# mkdir /etc/mrtg
Créer le fichier de configuration par défaut de MRTG :
# cfgmaker public@127.0.0.1 --global 'Language: French' > /etc/mrtg.cfg
Créer l'index.html MRTG afin de visionner le 1er graphique :
# indexmaker --output /var/www/mrtg/index.html /etc/mrtg.cfg --columns=2 --nolegend
L'option --columns=2 indique qu'on affiche 2 graphiques par ligne
L'option --nolegend indique qu'on affiche pas le bas de page publicitaire de MRTG
haut
Ajouter un graphique de contrôle du ping :
Créer le script ping
/etc/mrtg/ping :
#!/bin/sh
P=`ping -c3 -q 217.12.3.11|grep avg|cut -d" " -f4`
MIN=`echo $P|cut -d"/" -f1`
MAX=`echo $P|cut -d"/" -f2`
echo $MAX
echo $MIN
Donner les droits d'exécution root à ce script :
# chmod 700 /etc/mrtg/ping
Ajouter la configuration du script ping à
/etc/mrtg.cfg :
#---------Ping YAHOO--------------------
Target[ping_yahoo]: `/etc/mrtg/ping`
Options[ping_yahoo]: nopercent,growright,gauge,noinfo, nobanner
MaxBytes[ping_yahoo]: 10000
AbsMax[ping_yahoo]: 10000
YLegend[ping_yahoo]: Latence
ShortLegend[ping_yahoo]: ms
Legend1[ping_yahoo]: Latence max en ms
Legend2[ping_yahoo]: Latence min en ms
LegendI[ping_yahoo]: Latence Max:
LegendO[ping_yahoo]: Latence Min:
Title[ping_yahoo]: Ping sur yahoo.fr
PageTop[ping_yahoo]: <h1>Latence yahoo.fr</h1>
WithPeak[ping_yahoo]:wmy
Legend4[ping_yahoo]: Max de la latence min
Legend3[ping_yahoo]: Max de la latence max
#--------end ping-----------------------------
Regénérer l'index.html MRTG :
# indexmaker --columns=2 --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend
Ajouter un graphique du contrôle de la mémoire cache :
Ajouter le script mem
/etc/mrtg/mem :
#!/bin/sh
USED=`free -b|grep cache:|cut -d ":" -f2|cut -c1-11`
FREE=`free -b|grep cache:|cut -d ":" -f2|cut -c12-22`
echo $FREE
echo $USED
Donner les droits d'exécution root à ce script :
# chmod 700 /etc/mrtg/mem
Ajouter la conf du script mem à
/etc/mrtg.cfg :
#---------Memory--------------------
Target[mem]: `/etc/mrtg/mem`
Options[mem]: nopercent,growright,gauge,noinfo, nobanner
Unscaled[mem]:dwmy
MaxBytes[mem]: 261025792
Kilo[mem]:1024
YLegend[mem]: RAM
ShortLegend[mem]: o
Legend1[mem]: Mémoire libre
Legend2[mem]: Mémoire utilisée
LegendI[mem]: Mém. Libre:
LegendO[mem]: Mém. Utilisée:
Title[mem]: Mémoire
PageTop[mem]: <h1>Mémoire</h1>
WithPeak[mem]:wmy
Legend3[mem]: Mémoire libre max
Legend4[mem]: Mémoire utilisée max
#--------end Memory-----------------------------
Puis générer l'index.html :
# indexmaker --columns=2 --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend
Ajouter un graphique du contrôle de la mémoire RAM :
Ajouter le script mem2
/etc/mrtg/mem2 :
#!/bin/sh
USED=`free -b|grep Mem| cut -d ":" -f2|cut -c16-26`
FREE=`free -b|grep Mem| cut -d ":" -f2|cut -c27-37`
echo $USED
echo $FREE
Donner les droits d'exécution root à ce script :
# chmod 700 /etc/mrtg/mem2
Ajouter la conf du script mem à
/etc/mrtg.cfg :
#---------Memory--------------------
Target[mem]: `/etc/mrtg/mem2`
Options[mem]: nopercent,growright,gauge,noinfo, nobanner
Unscaled[mem]:dwmy
MaxBytes[mem]: 261025792
Kilo[mem]:1024
YLegend[mem]: RAM
ShortLegend[mem]: o
Legend1[mem]: Mémoire libre
Legend2[mem]: Mémoire utilisée
LegendI[mem]: Mém. Libre:
LegendO[mem]: Mém. Utilisée:
Title[mem]: Mémoire
PageTop[mem]: <h1>Mémoire</h1>
WithPeak[mem]:wmy
Legend3[mem]: Mémoire libre max
Legend4[mem]: Mémoire utilisée max
#--------end Memory-----------------------------
Puis générer l'index.html :
# indexmaker --columns=2 --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend
Ajouter un graphique de contrôle de l'utilisation processeur (1ère méthode) :
Pour utiliser ce script, il faut installer le package sysstat (commande sar) :
# apt-get install sysstat
Activer le processus sysstat en remplaçant
FALSE par
TRUE dans le fichier
/etc/default/sysstat :
# ENABLED="false"
ENABLED="true"
Ajouter le script cpu
/etc/mrtg/cpu1 :
#!/usr/bin/perl
@line = `/usr/bin/sar | grep all | /usr/bin/tail -n 2 | /usr/bin/head -n 1 | /bin/sed 's/\ \ */ /g'`;
@data = split(/ /, @line[0]);
if (@data[2] eq "") {
printf "0\n";
}else {
printf ("%3.0f\n", @data[2] + 0.5);
}
printf ("%3.0f\n", (@data[3])+(@data[2])+(@data[4]+0.5));
$uptime = `/usr/bin/uptime | sed 's/\ \ */ /g'`;
@uptime = split(/,/, $uptime);
@uptime = split(/up/, @uptime[0]);
$server = `/bin/uname -n`;
printf "@uptime[1]\n";
printf $server;
Donner les droits d'exécution root à ce script :
# chmod 700 /etc/mrtg/cpu1
Ajouter la configuration du script cpu1 à
/etc/mrtg.cfg :
#---------CPU-------------------
Target[cpu]: `/etc/mrtg/cpu1`
Options[cpu]: nopercent,growright,gauge,noinfo, nobanner
#Unscaled[cpu]:dwmy
MaxBytes[cpu]: 100
YLegend[cpu]: % CPU
ShortLegend[cpu]: % CPU
Legend1[cpu]: % CPU Utilisateur
Legend2[cpu]: % CPU Utilisateur + Système
LegendI[cpu]: Utilisateur:
LegendO[cpu]: Total:
Title[cpu]: CPU
PageTop[cpu]: <h1>CPU</h1>
WithPeak[cpu]:wmy
Legend3[cpu]: Max % CPU Utilisateur
Legend4[cpu]: Max % CPU Utilisateur + Système
#--------end CPU-----------------------------
Regénérer l'index.html MRTG :
# indexmaker --columns=2 --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend
Ajouter un graphique de contrôle de l'utilisation processeur (2ème méthode) :
Ajouter le script cpu
/etc/mrtg/cpu2 :
#!/usr/bin/perl
#Affichage de la consommation cpu pour MRTG
my $cpu =`cat /proc/stat | grep "cpu "`;
$cpu=~ /cpu (.*) (.*) (.*) (.*)/;
my $conso = $1 + $2 + $3;
$conso = int($conso);
print "$conso\n";
print "$conso\n";
Donner les droits d'exécution root à ce script :
# chmod 700 /etc/mrtg/cpu2
Ajouter la configuration du script cpu2 à
/etc/mrtg.cfg :
#---------CPU-------------------
Target[cpu2]: `/etc/mrtg/cpu2`
Options[cpu2]: noinfo, nopercent, growright, nobanner, noi
Title[cpu2]: Suivi de la consommation du CPU2
MaxBytes[cpu2]: 9999999999
YLegend[cpu2]: CPU2
ShortLegend[cpu2]: %
LegendO[cpu2]: CPU2
Legend2[cpu2]: CPU2
PageTop[cpu2]: <H1>Suivi de la consommation du CPU2</H1>
WithPeak[cpu2]:wmy
Legend3[cpu2]: Max % CPU Utilisateur
Legend4[cpu2]: Max % CPU Utilisateur + Système
#--------end CPU-----------------------------
Regénérer l'index.html MRTG :
# indexmaker --columns=2 --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend
haut
Ajouter un graphique de surveillance de Hits Apache2
Il vous faut bien évidemment avoir apache2 d'installé (
ce tutoriel vous indique comment l'installer ) ainsi que lynx.
Il faut décommenter la partie server-status dans la configuration d'Apache2 pour avoir accès aux status serveur :
# nano /etc/apache2/apache2.conf
Verifier la présence de ses lignes, les ajouter si besoin :
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
ExtendedStatus On
sauvegarder le ficher et redémarrer apache2 :
# /etc/init.d/apache2 restart
Ajouter le script apache2
/etc/mrtg/apache2 : (qui servira pour les hits et pour le traffic apache2)
#!/usr/bin/perl
# can return hits or bytes (counters)
@res = `lynx -dump http://localhost:80/server-status`;
foreach $res (@res) {
if ($res =~ /Server uptime: (.*)$/) { $up = $1; last } else { next }
if ($res =~ /Server at/) { $server = $res; last } else { next }
}
@res = `lynx -dump http://localhost:80/server-status?auto`;
foreach $res (@res) {
if ($res =~ /Total Accesses: (\d+)/) { $d1 = $1; next }
if ($res =~ /Total kBytes: (\d+)/) { $d2 = $1 * 1024; next }
}
$d1 = int($d1);
$d2 = int($d2);
if ($ARGV[0] eq "hits") {
print "$d1\n";
print "$d1\n";
} elsif ($ARGV[0] eq "bytes") {
print "$d2\n";
print "$d2\n";
}
print "$up\n";
print "$server";
Donner les droits d'exécution root à ce script :
# chmod 700 /etc/mrtg/apache2
Ajouter la configuration du script apache2_hits à
/etc/mrtg.cfg :
#---------Apache2 hits-----------------------
Target[apache2_hits]: `/etc/mrtg/apache2 hits`
Options[apache2_hits]: perhour, nopercent, growright, noinfo, nobanner, noi
PageTop[apache2_hits]: <h1>Hits Apache2</h1>
MaxBytes[apache2_hits]: 1000000
YLegend[apache2_hits]: hits/heure
ShortLegend[apache2_hits]: par heure
LegendO[apache2_hits]: Hits:
Legend2[apache2_hits]: Hits horaires
Legend4[apache2_hits]: Hits Horaires max
Title[apache2_hits]: Hits horaires du serveur Apache
WithPeak[apache2_hits]: wmy
#------------End Apache2 Hits------------------
Regénérer l'index.html MRTG :
# indexmaker --columns=2 --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend
Ajouter un graphique de surveillance de Traffic Apache2
Il vous faut bien évidemment avoir apache2 d'installé (
ce tutoriel vous indique comment l'installer ) ainsi que lynx.
Il faut décommenter la partie server-status dans la configuration d'Apache2 pour avoir accès aux status serveur :
# nano /etc/apache2/apache2.conf
Verifier la présence de ses lignes, les ajouter si besoin :
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
ExtendedStatus On
sauvegarder le ficher et redémarrer apache2 :
# /etc/init.d/apache2 restart
Ajouter le script apache2
/etc/mrtg/apache2 : (qui servira pour les hits et pour le traffic apache2)
#!/usr/bin/perl
# can return hits or bytes (counters)
@res = `lynx -dump http://localhost:80/server-status`;
foreach $res (@res) {
if ($res =~ /Server uptime: (.*)$/) { $up = $1; last } else { next }
if ($res =~ /Server at/) { $server = $res; last } else { next }
}
@res = `lynx -dump http://localhost:80/server-status?auto`;
foreach $res (@res) {
if ($res =~ /Total Accesses: (\d+)/) { $d1 = $1; next }
if ($res =~ /Total kBytes: (\d+)/) { $d2 = $1 * 1024; next }
}
$d1 = int($d1);
$d2 = int($d2);
if ($ARGV[0] eq "hits") {
print "$d1\n";
print "$d1\n";
} elsif ($ARGV[0] eq "bytes") {
print "$d2\n";
print "$d2\n";
}
print "$up\n";
print "$server";
Donner les droits d'exécution root à ce script :
# chmod 700 /etc/mrtg/apache2
Ajouter la configuration du script apache2_traffic à
/etc/mrtg.cfg :
#---------Apache2 Traffic-----------------------
Target[apache2_traffic]: `/etc/mrtg/apache2 bytes`
Options[apache2_traffic]: nopercent, growright, noinfo, nobanner, noi
PageTop[apache2_traffic]: <h1>Traffic Apache</h1>
MaxBytes[apache2_traffic]:16000
AbsMax[apache2_traffic]:20000
YLegend[apache2_traffic]: octets/s
ShortLegend[apache2_traffic]: o/s
LegendO[apache2_traffic]: Traffic Apache:
Legend2[apache2_traffic]: Traffic Apache
Title[apache2_traffic]: Traffic du serveur Apache
WithPeak[apache2_traffic]: wmy
Legend4[apache2_traffic]: Traffic max Apache
#------------End Apache2 Traffic------------------
Regénérer l'index.html MRTG :
# indexmaker --columns=2 --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend
Ajouter un graphique de contrôle des requêtes MySQL
Il faut bien sûr que MySQL soit installé, à partir de là, on installe le script qui va permettre de récupérer les statistiques.
Pour cela on télécharge un script déjà fait à l'adresse suivante :
http://www.bitbybit.dk/mysql/mrtg-mysql-load/
Télécharger le fichier suivant :
mrtg-mysql-load v. 1.02 (tar.gz, 20kb)
Le décompresser dans le dossier /etc/mrtg/ et lui donner les droits d'éxecution en root :
# chmod 700 /etc/mrtg/mrtg-mysql-load
Ajouter la configuration du script mrtg-mysql-load à
/etc/mrtg.cfg : (en précisant les host, login et mot de passe mysql)
#----------------MYSQL---------------#
Target[myserver.MySQL]: `/etc/mrtg/mysql -u utilisateur -p mot_de_passe -h host`
Options[myserver.MySQL]: perminute, nopercent, integer, growright
MaxBytes[myserver.MySQL]: 200
AbsMax[myserver.MySQL]: 100000
Unscaled[myserver.MySQL]: dwmy
Title[myserver.MySQL]: MySQL load analysis - BDD
PageTop[myserver.MySQL]: <H1>MySQL load Analysis - BDD</H1>
YLegend[myserver.MySQL]: # of questions
ShortLegend[myserver.MySQL]: q/m
Legend1[myserver.MySQL]: # of questions
Legend2[myserver.MySQL]: # of slow queries
Legend3[myserver.MySQL]: Maximal # of questions per min.
Legend4[myserver.MySQL]: Maximal # of slow queries per min.
LegendI[myserver.MySQL]: # of questions:
LegendO[myserver.MySQL]: # of slow queries:
Regénérer l'index.html MRTG :
# indexmaker --columns=2 --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend
Ajouter un graphique de contrôle de traffic réseau
en bleu le traffic en sortie
en vert le traffic en entrée
en orange le pourcentage
Ce graphique indique la bande passante en entrée, la bande passante en sortie, et le pourcentage de l'un par rapport à l'autre.
Pour cela ajoutez seulement cette configuration au fichier
/etc/mrtg.cfg :
#----------------eth0---------------#
Target[eth0]: `perl -e '@a=split(/[:\s]+/,qx(grep eth0 /proc/net/dev));printf "%.0f\n%.0f\n1\neth0 traffic\n",$a[2],$a[10];'`;
Options[eth0]: dorelpercent, growright, nobanner, noinfo, transparent
MaxBytes[eth0]: 2000000
AbsMax[eth0]: 10000000
kilo[eth0]: 1024
YLegend[eth0]: Bytes per second
ShortLegend[eth0]: B/s
Legend1[eth0]: Incoming Traffic in Bytes per second
Legend2[eth0]: Outgoing Traffic in Bytes per second
LegendI[eth0]: In:
LegendO[eth0]: Out:
Title[eth0]: net eth0 traffic
PageTop[eth0]: <H1>net eth0 traffic</H1>
Regénérer l'index.html MRTG :
# indexmaker --columns=2 --output /var/www/mrtg/index.html /etc/mrtg.cfg --nolegend