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.
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
où 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...








