Cacti étant installé sur votre Nas Synology, nous avons pouvoir y intégrer la Freebox V6 et ainsi suivre sur le long terme, certaines informations.

Il faut avoir déjà installé IPKG et Cacti sur votre Syno.

Cacti peut suivre des périphériques réseau grace au snmpd intégré dans bon nombre d'entre eux. Ce système permet l'échange d'information via un protocole standard. Malheureusement, la Freebox ne le permet pas. Il est en revanche possible de le faire via un script bash qui se chargera d'interroger la Freebox via son API et de formater les données reçues afin que Cacti puisse les utiliser via rrdtool que nous avons également installé.

Installations des paquets nécessaires :
Les scripts utilisés sont écrit en bash. Manque de chance, il n'est pas installé sur nos Syno. Connectez vous depuis Terminal en root avec la commande :

ssh root@ip-du-syno

Tapez les commandes suivantes :

ipkg update
ipkg upgrade
ipkg install bash
ipkg install grep
ipkg install text-utils
ipkg install util-linux
ipkg install wget

Je m'explique :

  • les deux premières permettent de mettre à jour la liste des paquets dispos via ipkg et de mettre à jour ceux déjà installés ci-besoin.
  • "install bash" installe donc bash pour permettre l'execution des scripts.
  • les 4 autres permettent d'installer des commandes supplémentaires utilisées par les scripts.

Même si nos Syno tournent sur Linux, il s'agit d'une version très light et modifié auquel il manque de nombreuses choses.

Installation des scripts :
Récupérez le dossier scripts_cacti_freebox.zip contenant les scripts et la template pour Cacti. Vous trouverez entre autre, deux fichiers nommés "freebox-api ADSL.sh" et "freebox-api VDSL.sh". Utilisez celui correspondant à votre connexion et renommez le en "freebox-api.sh. Pour l'autre fichier, conservez le si un jour vous changez de type de connexion car selon celle-ci, la Freebox retourne les données dans un ordre différent (pourquoi faire simple quand...).

Il faut maintenant copier les fichiers .sh sur le Syno, dans le dossier /web/cacti/scripts/. File Station le fait très bien. Il reste à donner les bons droits aux scripts. Depuis Terminal, on tape :

cd /volume1/web/cacti/scripts/
chown 1000:users freebox-api.sh
chown 1000:users freeboxos_bash_api.sh
chown 1000:users fbx-api-authorize.sh
chmod 777 freebox-api.sh
chmod 777 freeboxos_bash_api.sh
chmod 777 fbx-api-authorize.sh

Tout est en place, mais il reste une dernière manipulation à effectuer. Toujours depuis Terminal, il faut taper la commande :

bash /volume1/web/cacti/scripts/fbx-api-auhtorize.sh

Vous verrez sur l'écran de votre Freebox, que le script demande un accès et si vous souhaitez l'autoriser. Appuyez sur la flèche de droite et le bouton OK. Sur votre ordinateur, dans Terminal, vous voyer que le script tourne en boucle. Les premières lignes informent que l'accès est refusés "denied" (vous n'aviez pas encore effectué la validation sur votre box) puis passe à "granted" après l'avoir fait. Vous pouvez stopper le script (command + C). NE FERMEZ PAS TERMINAL.

Depuis votre navigateur, il faut allez sur l'interface de la Freebox en tapant l'adresse http://mafreebox.freebox.fr/login.php. Puis allez dans "Paramètres de la Freebox" puis "Gestions des accès". Vous verrez un onglet nommé "Applications". Vous y trouverez le script avec une liste de droits accordés. Il faut rajouter "Modifications des réglages" comme sur l'image ci-dessous :

Revenez sur l'écran de Terminal. Vous devez avoir une ligne APP_TOKEN avec une suite de caractères. Il faut inscrire cette suite dans le fichier "freebox-api.sh" à la ligne MY_APP_TOKEN. Vous pouvez le faire avec la commande vi (vi freebox-api.sh). Sinon, faite le depuis le fichier sur votre ordinateur puis vous le copiez sur le Syno. Pensez juste à revoir les droits.

C'est terminé, le plus difficile est fait. Votre script est validé et autorisé par la Freebox.

Paramétrage de Cacti :
Il faut maintenant importer dans Cacti, la template de la Freebox. Très simple, dans le menu de gauche, rubrique Import/export, import templates. Pensez - sélectionner tous les rra dans la rubrique concernée. Après avoir cliqué sur import, vous aurez une confirmation. Il faut créer le Devices pour la Freebox :

Ajoutez vos graphs et attendez environ 15/20 mn pour que les graphs affichent quelque chose. Voici ce que vous pouvez obtenir au bout d'une semaine :



Ne faites pas attention à la barre grise verticale sur les graphs. Suite à une mauvaise manipulation, j'avais planté Cacti.

Conclusion :
Quelle utilité puisque sur l'interface de la Freebox permet d'avoir les mêmes graphs ? Pour le fun par exemple. Ou alors, si comme moi vous avez des pertes fréquentes de synchro et cela, malgré de nombreux tickets ouverts auprès de l'assistance de Free, vous pouvez conserver les données plus longtemps car la Freebox ne permet une consultation que sur un mois maximum. Mais j'en parlerais prochainement dans un autre billet.

Remerciements :
Un grand merci à GLR pour les scripts et la template. J'ai un peu galéré car ils étaient adaptés à l'API v2 de la Freebox. Depuis, la v3 a été intégré par Free. Le freebox-api.sh ne collait plus.
Un grand merci à Gilbert Marin qui a inspiré GLR. Son plus, une explication très précise de l'API de la freebox.

Mise à jour : 13 septembre 2015
Depuis un peu plus de 4 jours, certaines données n'étaient plus graphées par Cacti. Après vérification, le fichier "freebox-api.sh" ne parvenait plus à extraire les informations nécessaires à Cacti. Il n'y a pas eu de mise à jour du Freebox Server. Le seul changement est mon passage au VDSL car depuis quelques temps, ma connexion est quasi stable. Le médiateur serait-il intervenu ?
Le fichier est corrigé. Vous le trouverez dans le pack dont le lien est plus haut dans le billet. Vous n'avez qu'à écraser l'ancien avec le nouveau et lancer les commandes suivantes depuis Terminal :

cd /volume1/web/cacti/cli/
php -f rebuild_poller_cache.php

Normalement, en regardant dans le log de Cacti, vous ne devriez pas avoir d'erreurs signalées.

Mise à jour : 22 septembre 2015
Finalement, me revoilà en ADSL. Ma connexion était tellement instable durant 24 heures que je me suis décidé à désactiver le VDSL depuis mon espace Web sur le site de Free. La bascule s'est déroulé cette nuit vers 2 heures du matin. Et Cacti ne parvenait plus à grapher l'uptime. J'ai réinstaller l'ancien fichier "freebox-api.sh" et s'est résolu. Du coup, le billet initial a été corrigé pour mettre à dispo les deux versions.