Monitorez l'uptime de votre freebox sans télé
dimanche 26 décembre 2010 à 18:30 par Dju - 1570 lectures
Aujourd'hui une petite astuce pour connaitre et monitorer l'uptime de votre freebox, sans avoir à la brancher à la télé, et de manière automatique grâce à munin.
Mais comment donc, me demandez vous ?
Grâce à la RFC 1323, et surtout Nmap
Comme vous le savez peut être, la freebox est directement joignable avec le nom mafreebox.freebox.fr, et répond sur quelques ports tcp.
Juste ce qu'il nous faut 
Commencons avec un
nmap -O mafreebox.freebox.fr pour avoir quelques infos :
Starting Nmap 4.62 ( http://nmap.org ) at 2010-12-26 18:03 CET Interesting ports on freeplayer.freebox.fr (212.27.38.253): Not shown: 1712 filtered ports PORT STATE SERVICE 80/tcp open http 554/tcp open rtsp 9100/tcp open jetdirect Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: remote management|WAP|general purpose|broadband router Running (JUST GUESSING) : HP embedded (98%), Linksys embedded (94%), Linux 2.6.X (94%) Aggressive OS guesses: HP Onboard Administrator management console (98%), Linksys WRT300N wireless broadband router (94%), Linux 2.6.18 - 2.6.22 (94%), Linksys WRV200 wireless broadband router (93%), Linux 2.6.15 - 2.6.20 (93%), Linux 2.6.20 (Ubuntu 7.04 server, x86) (90%), Linux 2.6.13 - 2.6.24 (90%), Linux 2.6.24 (Debian) (89%), Linux 2.6.22 - 2.6.23 (88%) No exact OS matches for host (test conditions non-ideal). Uptime: 3.228 days (since Thu Dec 23 12:35:21 2010) OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 31.066 seconds
Avec cette commmande, on indique à nmap de scanner la freebox et de deviner l'OS qui la fait tourner.
On peut y voir l'uptime 
Maintenant, affinons la commande pour ne scanner que le port 80 et ainsi réduire le temps de scan
nmap -O --osscan-guess -p80 mafreebox.freebox.fr
Starting Nmap 4.62 ( http://nmap.org ) at 2010-12-26 18:06 CET Interesting ports on freeplayer.freebox.fr (212.27.38.253): PORT STATE SERVICE 80/tcp open http Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: remote management Running: HP embedded OS details: HP Onboard Administrator management console Uptime: 3.230 days (since Thu Dec 23 12:35:22 2010) OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 2.325 seconds
Et hop, on est passé à 2 secondes et demi.
Maintenant qu'on est capable de déterminer l'uptime de la freebox à distance, on peut alors utiliser cette commande pour créer un plugin pour Munin
J'ai donc écrit ce plugin et l'ai mis à disposition sur le site Munin Exchange, contenant tous les plugins créés pour munin
Comme munin effectue ses checks toutes les 5 minutes, j'ai fait en sorte que le plugin utilise un cache, et ainsi, détermine l'uptime toutes les 3 heures (c'est configurable of course)
De même, ce plugin remonte la date du dernier reboot, du dernier check, et la fréquence de check.
Dans une prochaine version, sera inclus l'envoi d'alarme pour détecter que la freebox a rebooté 
Voila un petit screen du plugin :

Le plugin est accessible ici : http://exchange.munin-monitoring.org/plugins/freeboxuptime/details/
Pour l'instant il est en cours de validation ,ce qui donne une erreur quand on essaye d'accéder au lien ci dessus.
Mais d'ici peu, il sera disponible
edit: en attendant que le plugin soit validé, vous pouvez le télécharger directement ici
Pour installer le plugin :
dézippez le puis mettez le script dans le dossier /usr/share/munin/plugins/, faites un lien symboliques vers /etc/munin/plugins/
unzip ./FreeboxUptime.zip
mv ./FreeboxUptime /usr/share/munin/plugins/
chmod +x /usr/share/munin/plugins/FreeboxUptime
ln -s /usr/share/munin/plugins/FreeboxUptime /etc/munin/plugins/FreeboxUptime
enfin, éditer le fichier /etc/munin/plugin-conf.d/munin-node et rajoutez y ces 2 lignes :
[FreeboxUptime]
user root
et redémarrez munin
/etc/init.d/munin-node restart
Enjoy 
Commentaires
j'ai la version 5.00 de nmap par contre pas d'uptime :/
Effectivement, le problème vient de la version de nmap.
La version fournie avec mon OS était la 5.0, qui n'affiche pas l'uptime. Après recherche et installation manuelle de la 4.62, j'avais l'uptime.
salut (désolé pour le retard...)
Je confirme la chose. j'ai effectué plusieurs tests.
- avec la version de nmap 4.62 fournie dans Lenny (installé sur mon serveur), l'uptime est trouvé.
- sur un serveur sous squeeze, avec nmap 5.00, pas d'uptime.
- avec la dernière en date (5.50) compilée from source, ça ne marche pas non plus.
Vais voir si je peux trouver quelque chose la dessus
J'ai la version 5.30 beta1.
Ajouté l'option -v
nmap -v -O --osscan-guess -p80 XXX.XXX.XXX.XXX, l'uptime apparaît.
@slic merci pour le retour !
effectivement, ajouter un bête -v donne l'uptime
Sinon j'ai mis à jour le plugin.
Il est donc téléchargeable dans le lien donné ci dessus dans le billet.
par contre le site de munin donne des erreurs 500 quand on veut s'y logger ou uploader un plugin donc je l'y mettrai dès que possible.