Grapher la Freebox avec Cacti et EasyPHP sous Windows

Depuis la version 1.5.18 du firmware de la Freebox v5/Crystal il est possible de récupérer (entre autres choses) des informations concernant l'état de la connexion ADSL. Il est dès lors tentant d'exploiter ces informations à l'aide d'un logiciel de métrologie comme Cacti afin de suivre, par exemple, l'évolution de la marge de bruit au cours du temps.

Alors que l'installation de Cacti sur les plateformes Linux/Unix est très largement documentée sur le Net et ne présente pas de difficulté majeure, son installation sur les plateformes Windows n'est pas aussi aisée, d'où la raison d'être de ce tutoriel.

Téléchargements requis

Vous trouverez ici une archive qui regroupe tous les logiciels dont vous aurez besoin pour mener à bien ce tutoriel. Il contient les logiciels suivant :

Logiciel Fichier URL d'origine
EasyPHP EasyPHP-DevServer-13.1VC9-setup.exe http://www.easyphp.org/save-easyphp-devservervc9-latest.php
EasyPHP (mise à jour MySQL) MySQL-5.6.12-for-EasyPHP-DevServer-13.1VC9-setup.exe http://www.easyphp.org/save-component-mysql-56x-vc9-latest.php
Package redistribuable Microsoft Visual C++ 2008 (x86) vcredist_x86.exe http://www.microsoft.com/fr-fr/download/details.aspx?id=5582
Cacti cacti-0.8.8b.zip http://cacti.net/downloads/cacti-0.8.8b.zip
RRDtool rrdtool-1.4.5-win32-vc2008.rar http://cacti.net/downloads/packages/Windows/rrdtool-1.4.5-win32-vc2008.rar
Python python-2.7.5.msi http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi
Net-SNMP net-snmp-5.6.1.1-1.x86.exe http://sourceforge.net/projects/net-snmp/files/net-snmp%20binaries/5.6.1.1-binaries/net-snmp-5.6.1.1-1.x86.exe/download
Script de collecte Freebox fbx_poller.py  
Templates Cacti pour collecte Freebox cacti_host_template_freebox.xml  

Tutoriel

  1. Installation d'EasyPHP
  2. Installation d'EasyPHP

    Nous allons utiliser EasyPHP afin d'installer rapidement la suite logicielle composée d'Apache, PHP et MySQL.

    Cette suite logicielle dépend du runtime Visual C++ 2008. S'il n'est pas déjà présent sur votre ordinateur il convient d'exécuter l'installateur vcredist_x86.exe

    1. Installation du runtime Visual C++ 2008
    2. Installateur d'EasyPHP
    3. Nous pouvons maintenant exécuter l'installateur d'EasyPHP : EasyPHP-DevServer-13.1VC9-setup.exe

    4. Mise à jour de MySQL
    5. La version de MySQL contenue dans l'installateur d'EasyPHP est boguée (conformément à ce qui est indiqué sur le site, je ne suis pas allé vérifier...), nous allons donc le mettre à jour avec la version recommandée : MySQL-5.6.12-for-EasyPHP-DevServer-13.1VC9-setup.exe

    6. Démarrage d'EasyPHP
    7. Nous pouvons maintenant démarrer EasyPHP : Démarrer > Tous les programmes > EasyPHP DevServer 13.1 VC9 > EasyPHP DevServer 13.1 VC9

      L'icône d'EasyPHP () apparait dans la barre de notification et permet de lancer la console d'administration en cliquant sur "Administration".

  3. Installation de Python
  4. Installation de Python

    Passons maintenant à l'installation de Python qui sera utilisé par le script de collecte de données. Lancer l'installateur : python-2.7.5.msi

  5. Installation de Net-SNMP
  6. Installation de Net-SNMP

    Net-SNMP n'est pas réellement nécessaire pour l'utilisation que nous allons faire de Cacti, mais il est quasiment indispensable si nous voulons pouvoir grapher autre chose que la Freebox. Nous allons donc tout de même l'installer afin que l'installation de Cacti soit vraiment fonctionnelle.

    Nous allons donc lancer l'installateur : net-snmp-5.6.1.1-1.x86.exe

  7. Installation de Cacti
  8. Installation de Cacti

    Il n'y a pas d'installateur pour Cacti, il suffit de décompresser le contenu de l'archive cacti-0.8.8b.zip dans C:\cacti

    Ensuite, déposer le script fbx_poller.py dans le dossier de scripts de Cacti : C:\cacti\scripts

  9. Installation de RRDtool
  10. Installation de RRDtool

    Idem pour RRDtool, il suffit de décompresser le contenu de l'archive rrdtool-1.4.5-win32-vc2008.rar dans C:\rrdtool

  11. Création de la base de données
  12. Création de la base de données

    Cacti utilise une base de données MySQL pour stocker tout son paramétrage. Pour la créer, lancer la console d'administration d'EasyPHP à partir de l'icône de la barre de notification en cliquant sur "Administration"

    1. Démarrage de phpMyAdmin
    2. Création de la base de données "cacti"
    3. Création de l'utilisateur "cactiuser"
    4. Importation des données
    5. Ajustement du fichier de configuration de Cacti
  13. Configuration de Cacti
  14. Configuration de Cacti

    Revenir sur la console d'administration d'EasyPHP ( > Administration).

    1. Ajout d'un alias
    2. Accéder à Cacti
    3. Configuration des différents chemins
    4. Ajustement de la fréquence de collecte
    5. Importation des templates
    6. Initialisation de la collecte
  15. Création de la tâche planifiée
  16. Création de la tâche planifiée

    Afin de collecter les données de manière périodique, nous allons créer une tâche planifiée à l'aide du "Planificateur de tâches" de Windows.

    Lancer Démarrer > Panneau de configuration > Outils d'administration > Planificateur de tâches

  17. Consultation des graphiques
  18. Voila, l'installation est maintenant terminée, il ne reste plus qu'à contrôler que les données de la Freebox sont bien collectées et affichées sur les graphiques.

    Après quelques minutes (afin que la tâche ai pu s'exécuter plusieurs fois) nous retournons sur Cacti.