Pour ceux qui ne connaissent pas, Cacti est une solution Web open source permettant de collecter sur une longue durée, les informations issues de nos LB. Ces informations seront ensuite compilées avec RRDtool pour composer des graphs.
Le site officiel, bien qu'en anglais uniquement est très bien documenté. Afin de faciliter la vie de ceux qui souhaiteraient l'utiliser vous trouverez plus bas, le lien permettant de télécharger l'ensemble des éléments à importer.
Les pré-requis :
- Un PC ou Mac tournant H24
- Avoir téléchargé Cacti
- Sans oublier les programmes complémentaires (MySQL, PHP, RRDtool et Net-SNMP). Les liens sont dans la même page Web que Cacti.
- Avoir téléchargé le fichier Cacti_Livebox.zip
L'installation sur un ordinateur ne pose pas problème, vous trouverez la marche à suivre ici selon la machine. Pour info, les utilisateurs Mac utiliseront la version et le tuto pour Unix. Il est également possible de l'installer sur un NAS Synology (et donc probablement sur un Qnap) mais c'est plus compliqué. Vous trouverez un tuto ici.
Une fois l'installation terminée, il reste à :
- Copier le fichier xdslbox.sh dans le le dossier /cacti/scripts/ du serveur Web. Dans le script "xdslbox.sh", renseignez le mot de passe de connexion à la box et si besoin, son adresse IP et la variable "$myBashDir" si vous avez installé cacti dans un dossier différent. Il faudra régler une tâche CRON (Linux ou Mac) qui exécutera ce script toutes les 5 minutes. Pour Windows, c'est une tâche planifiée qu'il faudra créer.
- Importer les Templates contenus dans le dossier ZIP. Il suffit d'aller dans le menu de gauche de Cacti, rubrique Import/export, import templates.
- Toujours dans le menu de gauche dans Cacti, il faut créer un nouveau Device que vous appellerez Livebox. Voici les paramètres à renseigner (cliquez sur l'image) :
- Dans le Device fraichement créé, il faut ajouter les graphs qui concernent la Livebox. Dans la rubrique "Associated Graph Templates", choisissez la première template que vous avez importé et cliquez sur le bouton "Add". Il faut répéter l'opération pour toutes les templates.
-Jetez un oeil dans les RRA de Cacti (menu de gauche -> Data sources -> RRAs). Si vous n'avez pas les mêmes éléments que ci-dessous (cliquez sur l'image), il faudra les modifier pour pouvoir obtenir des graphs sur 1 an :
Reste à attendre 15 à 20 minutes pour voir les premiers tracés.
Voici des exemples au bout de quasiment 24 heures :
Le débit ATM
La marge de bruit
Les erreurs
PS 1 : Le script est utilisable uniquement avec une Livebox 4. Pas de compatibilité avec les LB2 et LB3.
PS 2 : Cacti est instalable sur un NAS Synology (c'est mon cas). C'est un peu plus compliqué car les Syno embarquent une version de Linux modifiée par Synology. Il faut installer plusieurs paquets. Tous les détails sont sur ici. Désolé, je me fais un peu de pub. Mais il faut savoir que vous ne pourrez plus faire de mise à jour du firmware sous peine de voir certains paquets écrasés. Il peut y avoir deux bugs mais les correctifs sont sur le même site que le tuto.
PS 3 : Les deux graphs "Traffic temps réel" et "Traffic cumulé" ne sont pas encore parfais. J'attend de tracer sur plusieurs jours pour voir si mon impression est juste. Au besoin, j'ajouterais une mise à jour au post.
Au passage, un merci à Tetsumaki dont le script proposé m'a énormément aidé pour la phase d'authentification pour l'envoi des commandes CURL. Et comme sa structure était plus propre que celle de mon propre script, je l'ai conservé.
Bon courage.
Mise à jour du 05 juillet :
- Le graph "traffic cumule" ne sert à rien. Je l'ai retiré. J'ai également corrigé la template pour le graph de l'attenuation et ses sources. Il reprenait les mêmes données que celui affichant la marge de bruit. Le fichier ZIP est mis à jours. Vous pouvez le re-télécharger.
- Correction de fautes d'orthographes.
Mise à jour du 06 juillet :
Nouvel template pour le graph des erreurs afin de corriger une faute d'inattention. Vous pouvez la récupérer. Merci Gipeca de me l'avoir fait remarqué.
Mise à jour du 8 janvier 2017 :
Nouvelle version du script pour les nouveaux firmware rendant le précédent inopérant. Il suffit d'écraser l'ancien par le nouveau.
Pensez à renseigner votre mot de passe de la Livebox dans la variable myPassword au début du fichier et son IP si vous n'utilisez pas celle par défaut.
Mise à jour du 3 juin 2017 :
Ma box est passé sur un nouveau firmware v2.22.8. L'ordre des informations dans Mibs a changé. Vous trouverez le nouveau script ici
Pensez à le renommer en xdslbox.sh et de vérifier les droits (777).
Mise à jour du 18 décembre 2017 :
La LB4 est passé sur le firmware 3.2.18. L'ancien script n'est plus compatible. Le nouveau est dispo ici.
Pensez à le renommer en xdslbox.sh et vérifier les droits (777).
Mise à jour du 6 avril 2018 :
La LB4 est passé sur le firmware 3.4.10. Le nouveau est dispo ici.
Pensez à le renommer en xdslbox.sh et vérifier les droits (777).
Un grand merci à shdf, Gipeca et joseph25b pour leur aide.
Dernière modification par flagwatch (06-04-2018 20:43:50)
Hors ligne
Voici des exemples sur quasiment une semaine.
Le débit ATM...
...conditionné par les variabilités de la marge de bruit :
Les erreurs rencontrées. On constate bien que les erreurs du lundi sont liées à la marge de bruit. C'est la première fois que des ATUCRC sont tracées.
Le traffic de donnée envoyé et reçu par la LB4. Très actif la journée et rien la nuit.
La partie des graphs grisées signifie qu'aucune données n'étaient collectées par le script. Dans mon cas, je faisait des essais et donc j'avais stoppé la tâche CRON qui lance le script à intervalle régulier.
Dernière modification par flagwatch (30-07-2016 10:07:45)
Hors ligne
Bonjour,
excellente initiative.
J'essaye de me monter un serveur pour surveiller justement ma livebox qui a des gros soucis de ligne ADSL.
J'ai bien monté un serveur Cacti (avec CactiEZ c'est très facile).
Par contre, j'ai des erreurs à l'import des templates (je n'arrive pas à ajouter une capture d'écran) et les templates apparaissent dans la liste avec un titre vide (et du coup non sélectionnables... de toute façon on ne sait pas ce que l'on choisit).
ERREUR : "Error : XML : Hash version does not exist"
Quelqu'un a-t-il une idée ?
Merci
Hors ligne
Bonjour,
Cacti est un peu difficile à débugguer en cas de problème.
Ton message suggère une incompatibilité entre la version de Cacti d'ou les templates ont été exporté et ta version (source1, source2).
Si ce sont mes templates que tu importes, elles proviennent de Cati v0.8.8f. Tu ne peux importer que des templates issues d'une version identique ou plus récente. Laquelle as tu installé ?
Tu peux recréer toutes les templates manuellement en ouvrant les fichiers que tu souhaites importer avec un éditeur texte. Toutes les informations seront dedans. C'est long mais si c'est bien là le problème, tu n'auras pas le choix.
Hors ligne
le package CactiEZ que je viens d'installer est en 0.8.8a
Je vais essayer en important les templates en texte alors.
Merci de ta réponse rapide.
Hors ligne
Tu ne peux pas importer en texte mais les ouvrir avec un éditeur texte et consulter le contenu des fichiers.
Tu peux aussi mettre à jour ta version de Cacti et cela devrait régler le problème : source la dernière version étant la 0.8.8h.
Par contre, je n'ai pas tester cette méthode.
Bon courage.
Dernière modification par flagwatch (21-11-2016 15:14:45)
Hors ligne
sympa, merci de ton aide
Je vais alors tenter la mise à jour du CactiEZ (bien pratique au demeurant cette distrib toute prête).
Hors ligne
Merci à tous les deux.
CactiEZ mis à jour grâce à vous, templates importés, Livebox déclarée.
On va attendre les premiers graphes... je vais montrer ça au technicien demain pour lui montrer que la ligne est pourrie
Hors ligne
Problème avec le dernier firmware.
Ce matin, ma LB4 est passé sur le firmware 2.19.4. Les commandes et plus précisément, l'authentification nécessaire pour communiquer avec la LB ont changé. Du coup, le script ne parvient plus à récupérer les informations.
Je cherche une solution et si je trouve, je posterais les infos.
Dernière modification par flagwatch (26-11-2016 09:16:40)
Hors ligne
Bonjour.
Tu n'es pas le premier (http://www.forum-orange.com/viewtopic.p … 24#p757024).
La proposition que j'ai faite à shdf est valable pour toi aussi, je peux essayer de regarder sur la base d'une capture (plus on sera nombreux à s'y mettre, plus on a de chances de résoudre le problème).
Hors ligne
Bonjour,
Pour ceux qui sont touchés par les affres de ce nouveau firmware LB4, y a t-il uniquement la méthode de connexion qui a changé ?
Est ce qu'il y a toujours de présents les dossiers: getMIBs, getDSLStats, getWANStatus, DeviceInfo ?
S'ils ne sont plus là, cela signifie qu'en plus de la méthode d'identification, la méthode de récupération de données est également de nouvelle facture...
Hors ligne
Merci.
Au plus tard ce week-end, je vais tenter de récupérer tous les scripts de la LB pour les décortiquer.
Passer par les outils d'un navigateur web est trop laborieux et whireshark ne m'a pas aidé.
Hors ligne
Bonjour et bonne année également.
J'étais également sur la piste du POST vers l'URL http://livebox/ws. Je parvenais à communiquer avec la LB4 mais il me restait à trouver comment formater correctement les paramètres. Avec les fêtes, j'avais laissé de côté mes recherches.
shdf a assuré. Grace à lui, on va pouvoir avancer.
Plus qu'à s'y mettre.
Hors ligne
Hello,
Du coup, cette nouvelle version de ton outil de monitoring sera utilisable par les Libebox 4, bien sûr,
mais aussi par les LB 3 avec au moins le firmware SG30_sip-fr-5.17.5.1 ?
C'est ça ?
Cordialement
Joseph
Hors ligne
Le nouveau script est utilisable sur LB4 et LB3 ayant le nouveau firmware puisque, si j'ai bien compris, il s'agit du même système d'authentification.
J'ai laissé l'ancien script pour les modèles de box plus anciennes ou sur l'ancien firmware.
Je vais tenté de tout intégrer en un seul script pour faciliter l'installation de Cacti.
Hors ligne
Bonjour !
Je suis en train de tenter l'aventure avec un Raspberry Pi et une Livebox 2 en ADSL. J'ai importé tous les templates dans cacti, et j'ai réécrit une partie du script pour prendre en compte les spécificités du JSON envoyé par la Livebox version 2 (j'utilise la commande jq"command line JSON processor")
Je rencontre encore quelques problèmes :
Répertoire où placer le script : sur un système type Debian, cacti dispose de deux dossiers : /usr/local/share/cacti/scripts (vide au départ) et /usr/share/cacti/site/scripts (qui contient les scripts initiaux de monitoring du localhost). J'ai essayé les deux possibilités mais je n'ai pas obtenu de résultat.
Droits du script et du dossier : qui doit être propriétaire ? Quel CHMOD ?
Sortie du script : dans son fichier de log, cacti me dit :
01/16/2017 05:00:09 PM - CMDPHP: Poller[0] Host[3] DS[12] CMD: /usr/share/cacti/site/scripts/xdslbox.sh, output: ReceiveBlocks:null TransmitBlocks:null ReceiveBlocksReal:null TransmitBlocksReal:null ErroredSecs:null SeverelyErroredSecs:null FECErrors:null ATUCFECErrors:null HECErrors:null ATUCHECErrors:null CRCErrors:null ATUCCRCErrors:null Uptime:null UpstreamCurrRate:null DownstreamCurrRate:null UpstreamMaxRate:null DownstreamMaxRate:null UpstreamNoiseMargin:null DownstreamNoiseMargin:null U 01/16/2017 05:00:09 PM - CMDPHP: Poller[0] Host[3] DS[12] WARNING: Result from CMD not valid. Partial Result: ReceiveBlocks:null T
J'imagine qu'il n'arrive pas à récupérer les valeurs, certainement à cause du problème de droits mentionné ci-dessus (pourtant, j'ai mis CHMOD 777 sur le dossier et chown www-data:www-data).
Tâche CRON : pourquoi faut-il créer une tâche spécifique ? Cacti n'exécute-t-il pas son poller.php toutes les 5 minutes, ce qui appelle le script ?
En tout cas belle réalisation ces templates !
Merci d'avance pour votre aide ...
Cordialement.
Hors ligne
@tdenta
Bonsoir,
Le log qui tu communiques confirme que le script ne récupère pas les infos (ReceiveBlocks:null). Tu devrais avoir une valeur, même si durant les premières minutes, le graph ne trace rien.
"Répertoire où placer le script" : Ayant fait une installation totalement à la main, je n'ai pas deux dossiers mais un seul. Dans celui-ci se trouve des fichiers .pl et .php inclus par défaut dans Cacti. Donc je pense que celui qu'il te faut est /usr/share/cacti/site/scripts
"Droits du script et du dossier" : sur ce point j'ai vraiment galéré. Normalement, avec ceux qui tu as choisis, çà devraient fonctionner. N'étant pas chez moi, difficile de regarder mais ce site m'avait permis de corriger une erreur d'installation.
https://openmaniak.com/fr/cacti_tutorial.php
Une commande qui peut servir : php -q rebuild_poller_cache.php a effectuer depuis le dossier ou se trouve poller.php. Elle permet de rétablir le fonctionnement du poller lors d'un plantage, manipulation de fichiers liés comme le script xdslbox.sh ou interruption de la tâche Cron.
"Tâche CRON : pourquoi faut-il créer une tâche spécifique ?" Cacti n'exécute pas directement le script. D'ou lle Cron. En revanche, il surveille l'execution de la tâche Cron. Si les valeurs ne sont pas relevées selon l'intervalle choisi, il intègre une alerte dans le log et vide le cache du poller. Si tout se passe bien, il n'y aura plus d'alertes. Sinon, il faut vérifier pourquoi cette tâche ne se réalise pas. Ceci-dit, c'est effectivement dommage qu'il ne le fasse pas.
Hors ligne
Bonjour,
@flagwatch merci pour votre aide.
Cacti est vraiment compliqué à débugger !
J'ai donc mis le script dans le bon dossier, et paramétré une tâche CRON spécifique exécutée par root et par pi.
Cependant le résultat n'est pas meilleur …
Ce qui est vraiment étrange, c'est que le script, placé dans /var/www/html et exécuté par une page index.php (donc par l'utilisateur www-data), fonctionne parfaitement !
Peut-être n'ai-je pas placé la tâche CRON dans le bon utilisateur ?
EDIT: j'ai réussi à faire fonctionner le script !
J'avais fait l'erreur de mettre 5 * * * * * dans la tâche CRON, alors qu'il faut mettre */5 * * * * *
Désormais, j'ai un autre problème : certains graphes (atténuation, marge de bruit, erreurs) ne sont pas tracés.
RRDTools me dit :
ERROR: Could not parse line 'GPRINT::LAST:Current\:%5.0lf'
Une idée ?
Dernière modification par tdenta (17-01-2017 14:32:13)
Hors ligne