OVH Cloud OVH Cloud

MRTG + Telnet

11 réponses
Avatar
Mydesign
Bonjour,

Je suis completement novice avec Perl mais j'utilise MRTG (sous XP) et j'ai
le besoin suivant:

Recuperer des stats sur un routeur non SNMP (Netgear RP114). Je sais le
faire par Telnet mais il me faut un script qui sache "poller" le routeur et
"parser" les infos pour MRTG. Je peux donner + d'infos (format + commandes)
si quelqu'un veut bien s'y pencher...

Merci.

--
YM

10 réponses

1 2
Avatar
Sébastien Cottalorda
Mydesign wrote:

Bonjour,

Je suis completement novice avec Perl mais j'utilise MRTG (sous XP) et
j'ai le besoin suivant:

Recuperer des stats sur un routeur non SNMP (Netgear RP114). Je sais le
faire par Telnet mais il me faut un script qui sache "poller" le routeur
et "parser" les infos pour MRTG. Je peux donner + d'infos (format +
commandes) si quelqu'un veut bien s'y pencher...

Merci.

--
YM


Salut,

Le module Net::Telnet est alors ton ami.

Sébastien
--
[ retirer NOSPAM pour répondre directement
remove NOSPAM to reply directly ]

Avatar
Mydesign
Sébastien Cottalorda wrote:

Le module Net::Telnet est alors ton ami.



Oui surement :-)

Merci mais j'avais precise en preambule "Je suis completement novice avec
Perl"...
Je n'ai pas l'intention d'apprendre Perl, j'ai juste un besoin ponctuel de
script kivabien pour MRTG.

--
YM

Avatar
Nicolas Chuche
"Mydesign" disait que :

Je n'ai pas l'intention d'apprendre Perl, j'ai juste un besoin ponctuel de
script kivabien pour MRTG.


Alors on va s'entendre. Vous payez combien ?

Avatar
Sébastien Cottalorda
Mydesign wrote:

Sébastien Cottalorda wrote:

Le module Net::Telnet est alors ton ami.



Oui surement :-)

Merci mais j'avais precise en preambule "Je suis completement novice avec
Perl"...
Je n'ai pas l'intention d'apprendre Perl, j'ai juste un besoin ponctuel de
script kivabien pour MRTG.

--
YM
Salut,


Si tu ne nous en dit pas plus sur les commandes telnet que tu entres, on ne
pourra rien pour toi.
Extraits de Perldoc Net::Telnet
================================================================== use Net::Telnet ();
$t = new Net::Telnet (Timeout => 10,
Prompt => '/bash$ $/');
$t->open("sparky");
$t->login($username, $passwd);
@lines = $t->cmd("who");
print @lines;
=================================================================== my ($forecast, $t);
use Net::Telnet ();
$t = new Net::Telnet;
$t->open("rainmaker.wunderground.com");
## Wait for first prompt and "hit return".
$t->waitfor('/continue:.*$/');
$t->print("");
## Wait for second prompt and respond with city code.
$t->waitfor('/city code.*$/');
$t->print("BRD");
## Read and print the first page of forecast.
($forecast) = $t->waitfor('/[ t]+press return to continue/i');
print $forecast;
exit
==================================================================== Essaye de voir ce que tu peux en tirer pour répondre à ton attente.
Ou bien dis nous exactement ce que tu entres et ce que tu dois obtenir.

Sébastien
--
[ retirer NOSPAM pour répondre directement
remove NOSPAM to reply directly ]


Avatar
Mydesign
Sébastien Cottalorda wrote:
Essaye de voir ce que tu peux en tirer pour répondre à ton attente.
Ou bien dis nous exactement ce que tu entres et ce que tu dois
obtenir.



Ok,

Les commandes Telnet sont:

telnet 10.0.0.1 [enter]
password [enter]
24 [enter]
8 [enter]
ip ifconfig [enter]

et j'obtiens ca:

----------------------------------------------------------------------------
-
enif0: mtu 1500
inet 10.0.0.1, netmask 0xffffff00, broadcast 10.0.0.255
RIP RX:Ver 1 & 2, TX:Ver 1,
[InOctets 1498754656] [InUnicast 3077921] [InMulticast
9032]
[InDiscards 0] [InErrors 0] [InUnknownProtos
0]
[OutOctets 2317686750] [OutUnicast 3261672] [OutMulticast
5231]
[OutDiscards 1] [OutErrors 0]
wanif0: mtu 1492
inet 62.4.20.207, netmask 0xffffffff, broadcast 255.255.255.255
RIP RX:None, TX:None,
[InOctets 2318388341] [InUnicast 3277053] [InMulticast
0]
[InDiscards 0] [InErrors 0] [InUnknownProtos
0]
[OutOctets 1488452806] [OutUnicast 3066052] [OutMulticast
0]
[OutDiscards 1] [OutErrors 0]
----------------------------------------------------------------------------
-

Les datas a recuperer sont InOctects et OutOctects pour wanif0, sous la
forme par exemple:

print "$Inn";
print "$Outn";

Un grand merci pour votre aide !

--
YM

Avatar
Mydesign
Nicolas Chuche wrote:

Alors on va s'entendre. Vous payez combien ?


Je paye uniquement en points-sympathie :-)

--
YM

Avatar
Mydesign
Arf le formatage est tronque...

Si besoin de l'ouput telnet exact, voir ici:
http://mydesign.nerim.net/Temp/Telnet_RP114.txt
http://mydesign.nerim.net/Temp/Telnet_RP114.png

--
YM
Avatar
Mydesign
Bon je suppose que je dois bucher Perl tout seul comme un grand... ou
utiliser autre chose.

Merci quand meme pour les pistes.

--
YM
Avatar
Sébastien Cottalorda
Mydesign wrote:

Sébastien Cottalorda wrote:
Essaye de voir ce que tu peux en tirer pour répondre à ton attente.
Ou bien dis nous exactement ce que tu entres et ce que tu dois
obtenir.



Ok,

Les commandes Telnet sont:

telnet 10.0.0.1 [enter]
password [enter]
24 [enter]
8 [enter]
ip ifconfig [enter]

et j'obtiens ca:


----------------------------------------------------------------------------

-
enif0: mtu 1500
inet 10.0.0.1, netmask 0xffffff00, broadcast 10.0.0.255
RIP RX:Ver 1 & 2, TX:Ver 1,
[InOctets 1498754656] [InUnicast 3077921] [InMulticast
9032]
[InDiscards 0] [InErrors 0] [InUnknownProtos
0]
[OutOctets 2317686750] [OutUnicast 3261672] [OutMulticast
5231]
[OutDiscards 1] [OutErrors 0]
wanif0: mtu 1492
inet 62.4.20.207, netmask 0xffffffff, broadcast 255.255.255.255
RIP RX:None, TX:None,
[InOctets 2318388341] [InUnicast 3277053] [InMulticast
0]
[InDiscards 0] [InErrors 0] [InUnknownProtos
0]
[OutOctets 1488452806] [OutUnicast 3066052] [OutMulticast
0]
[OutDiscards 1] [OutErrors 0]

----------------------------------------------------------------------------

-

Les datas a recuperer sont InOctects et OutOctects pour wanif0, sous la
forme par exemple:

print "$Inn";
print "$Outn";

Un grand merci pour votre aide !

--
YM
Salut,


J'ai essayé de chercher de mon côté, mais je ne suis pas parvenu à quelque
chose de vraiment fonctionnel.
En fait, j'arrive jusqu'au menu qui contient les infos, mais je bute sur le
dernier écran : celui qui affiche les datas.
Sur mes routeurs, je ne sais pas si chez vous c'est pareil, mais chez moi,
la trame de l'écran s'affiche, puis les données viennent et se mettent à
jour.
Je n'arrive malheureusement qu'à obtenir la trame (les titres et les nom de
variables, mais pas les variables elles mêmes).
Si par contre, chez vous les informations utiles s'affichent tout de suite,
cela devrait marcher.

Voici mon script
#=================================================================== #!/usr/bin/perl -w
use Net::Telnet;
my $t= new Net::Telnet();
$t->open("10.0.0.1");
$t->waitfor('/Password/'); # chaine qui vous invite à entrer le password
$t->print('password'); # entrée du password
$t->waitfor('/Number/'); # mettez le prompt que vous obtenez
$t->print('24'); # Menu 24
$t->waitfor('/Number/'); # mettez le prompt que vous obtenez
$t->print('8'); # Menu 8
$t->waitfor('/Number/'); # mettez le prompt que vous obtenez
$t->print('ip_ifconfig'); # ip ifconfig
my @lines = $t->getlines([Timeout=>10]);
print "@linesn"; # vous devez obtenir les lignes que vous avez
# précisé dans votre mail
exit;
#====================================================================
Essayez déjà cela (en adaptant) sur vos routeurs pour voir si ça fonctionne.
Si c'est le cas, envoyez moi un mail directement pour que je m'occupe de
l'extraction de "InOctects et OutOctects pour wanif0".
J'en profiterai pour vous fiabiliser ce script, il ne gère pas actuellement
de time out ni de cas d'erreur.


Sébastien
--
[ retirer NOSPAM pour répondre directement
remove NOSPAM to reply directly ]


Avatar
Mydesign
Sébastien Cottalorda wrote:
(...)
Essayez déjà cela (en adaptant) sur vos routeurs pour voir si ça
fonctionne. Si c'est le cas, envoyez moi un mail directement pour que
je m'occupe de l'extraction de "InOctects et OutOctects pour wanif0".
J'en profiterai pour vous fiabiliser ce script, il ne gère pas
actuellement de time out ni de cas d'erreur.



Merci Sébastien,

Je teste ca des que possible, ca a l'air d'un bon debut :-)
J'ai mis la sequence complete des ecrans telnet pour info ici:
http://mydesign.nerim.net/Temp/rp114.htm

Oui les infos s'affichent instantanement ici. En fait l'ecran est
"remplacer" par le suivant jusqu'a l'ecran "24", ensuite (quand on tappe
"8") les infos arrivent ligne par ligne et font defiler l'ecran (mode
console).

--
YM

1 2