Installer MRTG sur sa machine

Qu'est-ce que MRTG ?

MRTG signifie "Multi Router Traffic Grapher". Ce logiciel permet de construire des pages html avec de jolis graphes représentant par exemple sur des périodes plus ou moins longues les débits réseau, la charge CPU, la mémoire utilisée et plein d'autres choses.

{i} Il existe une alternative : Munin qui est très simple à mettre en oeuvre. Ce dernier est baseé sur RRDtool.

Installer un serveur web : Apache

Les statistiques MRTG seront visibles via un serveur web, il faut donc en installer un.

aptitude install apache apache-common apache-utils

Le répertoire racine du serveur web est /var/www/. Je ne détaille pas ici comment configurer Apache qui est relativement simple.

Utilisation de SNMP

Qu'est-ce que SNMP ?

SNMP signifie "Simple Network Management Protocol". Protocole d'administration distante ou locale, utilisé sur les réseaux de type Internet, à l'origine conçu pour les ponts et les routeurs, maintenant utilisé pour un peu tout. C'est grâce à SNMP que l'on pourra éditer des graphes MRTG de la charge du CPU, de l'utilisation de la mémoire, de l'uptime ...

L'utilisation de SNMP est expliqué sur ce Wiki : CransNounous/SimpleNetManagementProtocol

Toutefois, si on édite soi-même les fichiers de configuration de MRTG, il est possible de ne pas utiliser SNMP.

Installer SNMP

Avec debian : aptitude install snmp libsnmp-base libsnmp-perl libsnmp-session-perl libsnmp5 snmpd 

Installer MRTG

Avec debian : aptitude install mrtg mrtgutils

Utilitaires sysstat

Afin de pouvoir dialoguer avec le système il faut installer les commandes nécessaires : aptitude install sysstat

Maintenant que les paquets sont installés, passons à la configuration.

Configuration

SNMP

Commençons par créer des fichiers de logs qui seront ensuite exploités par MRTG. Pour cela faites un crontab -e et ajoutez la ligne suivante 0 * * * * /usr/lib/sysstat/sa1 300 12 &

Cela permettra de faire un état du système toutes les 5 minutes et tout cela sera sauvegardé dans /var/log/sa/sadd où dd représente le jour du mois.

Remplacez le fichier /etc/snmp/snmpd.conf par le suivant :

com2sec mynetwork 127.0.0.1  public

group MyROGroup v1 mynetwork
group MyROGroup v2c mynetwork
group MyROGroup usm mynetwork
group MyROSystem v1        paranoid
group MyROSystem v2c       paranoid
group MyROSystem usm       paranoid
group MyRWGroup v1         readwrite
group MyRWGroup v2c        readwrite
group MyRWGroup usm        readwrite

view all    included  .1                               80
view system included  .iso.org.dod.internet.mgmt.mib-2.system

access MyROSystem ""     any       noauth    exact  system none   none
access MyROGroup ""      any       noauth    exact  all    none   none
access MyRWGroup ""      any       noauth    exact  all    all    none

syslocation Unknown (configure /etc/snmp/snmpd.local.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmpd.local.conf)

Ne pas oublier de faire un /etc/init.d/snmpd restart afin de prendre en compte le nouveau fichier de configuration.

Créez le répertoire où sera placer les fichiers MRTG :

mkdir /var/www/mrtg/local

Créons maintenant le fichier de configuration MRTG avec la commande suivante :

cfgmaker \ 
--global 'WorkDir: /var/www/mrtg/local' \
--global 'Language: french' \
--global 'Options[_]: bits,growright' \
--ifdesc=descr public@localhost \
--output /var/www/mrtg/local/local.cfg

Rajoutez maintenant la ligne suivante au crontab (même méthode que tout à l'heure) :

0-59/5 * * * *  /usr/bin/mrtg /var/www/mrtg/local/local.cfg

Ce cron permet de mettre les statistiques MRTG à jour toutes les 5 minutes.

Ensuite, il faut créer la page d'index qui permettra de regrouper les différentes statistiques.

Ceci se fait à l'aide de la commande "indexmaker".

indexmaker --columns=1 --sort=descr \ 
--sidebyside /var/www/mrtg/local/local.cfg \
--output=/var/www/mrtg/local/index.html

Lancez à la main pour les premières fois la commande suivante (c'est celle que l'on a placée dans le crontab) :

mrtg /var/www/mrtg/local/local.cfg

Il est normal qu'il y ait des messages d'erreur, à partir de la troisième fois il ne doit plus y en avoir.

Aller voir avec le navigateur internet la page suivante :

http://nom_de_machine/mrtg/local/index.html

nom_de_machine est le nom de l'ordinateur en question.

Et là si tout va bien il devrait apparaitre les statistiques de la carte réseau (eth0) -> plus de détails en cliquant sur le graphe

Autres statistiques

Pour monitorer la charge du micro-processeur il faut rajouter ce qui suit au fichier /var/www/mrtg/local/local.cfg

#---------CPU-------------------
Target[cpu]: `/var/www/mrtg/local/cpustat`
Options[cpu]: nopercent,growright,gauge,noinfo,nobanner
#Unscaled[cpu]:dwmy
PageTop[cpu]: <H1>CPU</H1>
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]: CPU
WithPeak[cpu]:wmy
Legend3[cpu]: Max % CPU Utilisateur
Legend4[cpu]: Max % CPU Utilisateur + Système
#--------end CPU-----------------------------

Pour visualiser l'utilisation de la mémoire il faut y rajouter la section suivante :

LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt

#---------Memory--------------------
Target[mem]: `/var/www/mrtg/local/mem`
Options[mem]: nopercent,growright,gauge,noinfo,nobanner
Unscaled[mem]:dwmy
MaxBytes[mem]: 536387584
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-----------------------------

L'uptime sera observé grâce à cette section :

LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt

#---------uptime---------------------------
#Target[uptime]: .1.3.6.1.4.1.2021.8.1.101.1&.1.3.6.1.4.1.2021.8.1.101.1:public@localhost
Target[uptime]: `/var/www/mrtg/local/uptime.pl`
Suppress[uptime]: d
Options[uptime]: gauge,noinfo, nopercent, growright, nobanner, noi
Title[uptime]: Uptime
PageTop[uptime]: <H1>uptime</H1>
MaxBytes[uptime]: 1000000
YLegend[uptime]: jours
ShortLegend[uptime]: jours
LegendO[uptime]: Uptime:
Legend2[uptime]: Uptime en jours
#PageTop[uptime]: Uptime
#-------End uptime------------------------------

L'utilisation des différentes partitions, c'est à dire l'espace libre et utilisé sera suivi grâce à ce qui suit:

#---------Espace libre disk hda1--------------------
Target[hda1]: `/var/www/mrtg/local/checkdisk hda1`
Options[hda1]: nopercent,growright,gauge,noinfo, nobanner
MaxBytes[hda1]:9200
Unscaled[hda1]:dwmy
kMG[hda1]:M,G,T,P
YLegend[hda1]: octets
ShortLegend[hda1]: o
Kilo[hda1]:1024
Legend1[hda1]: Espace disponible
Legend2[hda1]: Espace utilisé
LegendI[hda1]: Espace dispo :
LegendO[hda1]: Espace Utilisé:
Title[hda1]: Espace partition système racine
PageTop[hda1]: <H1>Espace partition système racine</H1>
#--------end disk hda1-----------------------------

On peut répéter ce même paragraphe autant de fois que l'on a de partitions à monitorer, il faudra bien penser à changer le nom de la partition (ici hda1) partout où il apparait.

Il faut également penser à changer la dynamique du graphe généré pour l'adapter à la taille de la partition (ici la partition hda1 fait 9200 Mo, c'est la ligne Maxbytes[hda1]).

Afin de pouvoir utiliser ces fonctionnalités il faut placer dans le répertoire /var/www/mrtg/local les scripts suivants:

Pensez bien à rendre ces scripts exécutables !

Enfin, pensez également à refaire l'index par la commande indexmaker vue plus haut pour prendre en compte les différentes sections de configuration ajoutées.

Rajouter dans le crontab la ligne suivante :  5 19 * * * /usr/lib/sysstat/sa2 -A & 

Pour voir plus rapidement les résultats (pour voir si ça marche) vous pouvez lancer tout ce qu'il y a dans le crontab à la main dans un premier temps.

Il y a encore plein de choses à monitorer pour surveiller l'activité de son PC, pour plus d'infos il y a les liens suivants, ou peut-être que je continuerai d'expliquer ici comment paramétrer les autres graphes...

Liens


CatégoriePagePublique