MRTG et script externe
Résolu
El_tiranos
-
samira_bel Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
samira_bel Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis actuellement en stage dans une entreprise où le réseau informatique est plutot enorme.
Mon responsable de stage m'a alors demandé de comprendre et d'utiliser l'outil MRTG afin de pouvoir
gerer et surveiller le traffic de chaque interface réseau.Maintenant que je commence à maitriser (un peu) ce logiciel, il m'a demandé de me débrouiller pour que en cas de dépassement de seuil maximal de débit, s'affiche alors une alerte sur une page html que j'ai créé moi même.Sachant que lorsque le débit est compris entre 31,25 MB et 62.5MB l'alerte affichée doit etre en orange pr signifier un depassement de seuil d'alerte et lorque le débit est superieur a 62.5MB l'alerte afficher doit etre en rouge pr signifier un depassement de seuil critique.
J'ai donc créé un script en Perl qui va récupérer les informations des fichier logs et qui permet d'afficher une alerte ds les deux conditions citées au dessus.Ce script marche très bien,seul problème je voudrais qu'il soit intégré au fichier de config de mrtg pour qu'il soit executé toutes les 5min comme ce dernier.Je précises que je suis sous Windows XP et que j'ai beau essayé toutes les manips possible je n'arrive pas à ajouter RRDtool.
Voici le script que j'ai écri :
use Time::Piece ;
my($logs,$nom,$saler,$nbaler,$by1,$scrit,$nbcrit,$by2);
my($l,$timest,$moyin,$moyout,$maxin,$maxout);
open(FIC,"<c:\\www\\mrtg\\Logs\\LOGS.txt") or die ("open: $!");
while( defined ( $logs = <FIC> ) ) #boucle qui permet la recherche de tous les fichiers .log écrient dans le fichier LOGS.
{
($nom,$saler,$nbaler,$by1,$scrit,$nbcrit,$by2) = split ( / / ,$logs);
my $i = 1;
open(FIC2,"<c:\\www\\mrtg\\Logs\\$nom.log") or die ("open: $!");
while( defined ( $l = <FIC2> ) )
{
($timest,$moyin,$moyout,$maxin,$maxout) = split ( / / ,$l);
if ( $i == 1 ) #sert à éviter de compter la première ligne des fichiers .log
{
$i++;
}
elsif ( $nbaler <= $moyin && $moyin < $nbcrit ) #recherche le seuil d'alerte en entrée dans les fichiers .log et affiche la date de l'évènement
{
my $t = Time::Piece->new($timest);
$t->datetime;
print "Seuil d'alerte atteint en entree(superieur a $nbaler $by1): $moyin $by1 \nInterface: $nom \nDate d'alerte:",$t->datetime,"\n\n";
}
elsif ( $moyin >= $nbcrit ) #recherche le seuil critique en entrée dans les fichiers .log et affiche la date de l'évènement
{
my $t = Time::Piece->new($timest);
$t->datetime;
print "Seuil critique atteint en entree(superieur a $nbcrit $by1): $moyin $by1 \nInterface: $nom \nDate d'alerte:",$t->datetime,"\n\n";
}
elsif ( $nbaler <= $moyout && $moyout < $nbcrit ) #recherche le seuil d'alerte en sortie dans les fichiers .log et affiche la date de l'évènement
{
my $t = Time::Piece->new($timest);
$t->datetime;
print "Seuil d'alerte atteint en sortie(superieur a $nbaler $by1): $moyout $by1 \nInterface: $nom \nDate d'alerte:",$t->datetime,"\n\n";
}
elsif ( $moyout >= $nbcrit ) #recherche le seuil critique en sortie dans les fichiers .log et affiche la date de l'évènement
{
my $t = Time::Piece->new($timest);
$t->datetime;
print "Seuil critique atteint en sortie(superieur a $nbcrit $by1): $moyout $by1 \nInterface: $nom \nDate d'alerte:",$t->datetime,"\n\n";
}
}
close( FIC2 );
}
close( FIC );
Merci de vos réponses.
Je suis actuellement en stage dans une entreprise où le réseau informatique est plutot enorme.
Mon responsable de stage m'a alors demandé de comprendre et d'utiliser l'outil MRTG afin de pouvoir
gerer et surveiller le traffic de chaque interface réseau.Maintenant que je commence à maitriser (un peu) ce logiciel, il m'a demandé de me débrouiller pour que en cas de dépassement de seuil maximal de débit, s'affiche alors une alerte sur une page html que j'ai créé moi même.Sachant que lorsque le débit est compris entre 31,25 MB et 62.5MB l'alerte affichée doit etre en orange pr signifier un depassement de seuil d'alerte et lorque le débit est superieur a 62.5MB l'alerte afficher doit etre en rouge pr signifier un depassement de seuil critique.
J'ai donc créé un script en Perl qui va récupérer les informations des fichier logs et qui permet d'afficher une alerte ds les deux conditions citées au dessus.Ce script marche très bien,seul problème je voudrais qu'il soit intégré au fichier de config de mrtg pour qu'il soit executé toutes les 5min comme ce dernier.Je précises que je suis sous Windows XP et que j'ai beau essayé toutes les manips possible je n'arrive pas à ajouter RRDtool.
Voici le script que j'ai écri :
use Time::Piece ;
my($logs,$nom,$saler,$nbaler,$by1,$scrit,$nbcrit,$by2);
my($l,$timest,$moyin,$moyout,$maxin,$maxout);
open(FIC,"<c:\\www\\mrtg\\Logs\\LOGS.txt") or die ("open: $!");
while( defined ( $logs = <FIC> ) ) #boucle qui permet la recherche de tous les fichiers .log écrient dans le fichier LOGS.
{
($nom,$saler,$nbaler,$by1,$scrit,$nbcrit,$by2) = split ( / / ,$logs);
my $i = 1;
open(FIC2,"<c:\\www\\mrtg\\Logs\\$nom.log") or die ("open: $!");
while( defined ( $l = <FIC2> ) )
{
($timest,$moyin,$moyout,$maxin,$maxout) = split ( / / ,$l);
if ( $i == 1 ) #sert à éviter de compter la première ligne des fichiers .log
{
$i++;
}
elsif ( $nbaler <= $moyin && $moyin < $nbcrit ) #recherche le seuil d'alerte en entrée dans les fichiers .log et affiche la date de l'évènement
{
my $t = Time::Piece->new($timest);
$t->datetime;
print "Seuil d'alerte atteint en entree(superieur a $nbaler $by1): $moyin $by1 \nInterface: $nom \nDate d'alerte:",$t->datetime,"\n\n";
}
elsif ( $moyin >= $nbcrit ) #recherche le seuil critique en entrée dans les fichiers .log et affiche la date de l'évènement
{
my $t = Time::Piece->new($timest);
$t->datetime;
print "Seuil critique atteint en entree(superieur a $nbcrit $by1): $moyin $by1 \nInterface: $nom \nDate d'alerte:",$t->datetime,"\n\n";
}
elsif ( $nbaler <= $moyout && $moyout < $nbcrit ) #recherche le seuil d'alerte en sortie dans les fichiers .log et affiche la date de l'évènement
{
my $t = Time::Piece->new($timest);
$t->datetime;
print "Seuil d'alerte atteint en sortie(superieur a $nbaler $by1): $moyout $by1 \nInterface: $nom \nDate d'alerte:",$t->datetime,"\n\n";
}
elsif ( $moyout >= $nbcrit ) #recherche le seuil critique en sortie dans les fichiers .log et affiche la date de l'évènement
{
my $t = Time::Piece->new($timest);
$t->datetime;
print "Seuil critique atteint en sortie(superieur a $nbcrit $by1): $moyout $by1 \nInterface: $nom \nDate d'alerte:",$t->datetime,"\n\n";
}
}
close( FIC2 );
}
close( FIC );
Merci de vos réponses.
A voir également:
- MRTG et script externe
- Chkdsk disque dur externe - Guide
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Batterie externe clignote ne charge pas - Forum Mobile
2 réponses
bonjour je suis actuellement en stage et je travail aussi sur mrtg , et on ma demander la meme chose (afficher des alerte en cas e depassement d'un seuil ,ou lorsqu'une interface tomb en panne..) ,s'il vous plait si c'est possible pouriez vous m'indiquer la procedure tant qque vous l'avez deja realisé .
merci davance
merci davance