Aller au contenu

[TUTO] Monitorer sa Freebox Revolution


bruno78

Messages recommandés

@Jeff777,

finalement, avec cette url "v8", il me manque des données (temp, system fan, ...). Je reviens donc à la v4 qui doit être plus en accord avec mon matériel.

Tiens nous au courant de ce que cela donne pour la POP.

Cdt

Bruno78

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777,

oui, sans argument, tu obtiens un état "de base". Ensuite chaque argument ajoute des infos supplémentaires. Mais là, sans documentation précise sur la POP, ca va être coton de progresser. Je ne sais pas si il existe un moyen de "découvrir" les paramètres accessibles ?

Si nouvelles idées ....

Cdt

Lien vers le commentaire
Partager sur d’autres sites

Il y a 20 heures, Jeff777 a dit :

A chaque fois que j'ajoute un argument j'ai l'impression que les données sont figées.

Les données se figent lorsque j'utilise l'argument P. Avec celui-ci j'ai systématiquement cette erreur :

2020-09-20T10:57:30Z E! [inputs.exec] Error in plugin: exec: exit status 1 for command 'python3 /usr/local/py/freebox_058.py -SPHIX': Traceback (most recent call last):...

Si j'utilise tous les arguments sauf P je n'ai plus cette erreur et le dashboard n'est plus figé :

Capture.thumb.JPG.c18961bc87b8c739e2dbc0e6617ae679.JPG

Je n'ai pas de donnée sur le disque Freebox et sur le WIFI car pas de disque et WIFI désactivé. Pas de donnée sur le switch freebox ni les tpr cpu-m et sw mais c'est peut-être normal. Qu'en penses-tu ?

Et contre toujours les erreurs suivantes dans le journal telegraf :

Capture.JPG.c1ac98effc18fb2e16237e110309a5c8.JPG

 

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

  • l'argument "-P" va chercher les compteurs sur chacun des 4 ports du switch d'une Fbox Revolution.
  • Pour cela, il adresses les url api_url = '%s/switch/port/%s/stats' % (ENDPOINT, port) c'est à dire
http://mafreebox.free.fr/api/v4/switch/port/1/stats
http://mafreebox.free.fr/api/v4/switch/port/2/stats
http://mafreebox.free.fr/api/v4/switch/port/3/stats
http://mafreebox.free.fr/api/v4/switch/port/4/stats
  • Pour chaque port, on reçoit : Tx bytes Rate, Rx Byte Rate, et TX bytes.

Ca c'est pour la Fbox Revolution qui a 4 ports 1G. Or si je ne me trompe, la POP possède 3 ports (1*2.5Gbps et 2*1Gbps). Il y a donc fort à parier que l'url permettant de récuperer ces stats soit différente. Mais de là à savoir laquelle est-ce ????? Je n'ai pas encore trouvé l'information ....

 

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777 ,

du coup j'ai un test à te proposer (mais c'est vraiment en désespoir de cause !) : à la ligne 535 du script python freebox_058.py, puisqu'il n'y a que 3 ports, faire le test de remplacer :

for i in [1, 2, 3, 4]:

par

for i in [1, 2, 3]:

Qu'en penses-tu ?

Bruno78

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777,

je n'avais pas fait attention, mais en regardant ton résultat Grafana précédent, on voit bien que le résultat du -S donne 3 ports (link#1, link#2 et link#3) ! Donc pour le -P, je pense qu'avec la modification énoncée ci-dessus ( for i in [1, 2, 3] ), ça peut le faire. Si ok, il faudra que je  change le code pour rendre cette différence de configuration physique transparente pour l'utilisateur.

Bruno78

Lien vers le commentaire
Partager sur d’autres sites

Je viens de rechanger V4 pour V8. Sans changement, c'est à dire que les données que je recevais le sont toujours !

Quant à la modif ci-dessus ça ne change rien.

En fait je crois qu'il suffit de retrouver les champs corrects s'ils existent.

Par exemple les températures manquantes je ne trouve pas les champs dans le menu déroulant quand j'édite le panneau.

Capture.thumb.png.6cf9ece7075e689f6498cd4a5d5cf3f2.png

 

Je crois que je vais me contenter des données reçues et voir si éventuellement il y en a d'autres qui m'intéressent. Seul pb l'erreur dans le journal de telegraf.

Merci encore pour ton aide.

Lien vers le commentaire
Partager sur d’autres sites

oui mais ce n'est peut-être pas fini !

En effet avec l'aide de @.Shad. j'ai pu corriger les erreurs du log de telegraf.

Le problème venait du fait que j'avais un seul container telegraf et plusieurs datasources. Je n'ai maintenant qu'une seule datasource et dans telegraf.conf j'ai mis uniquement les identifiants de cette source. Avec cela le log de telegraf ne montre plus d'erreur 😄

Encore quelques erreurs ou "no data" mais c'est en cours de résolution.

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

bonjour,

Pour faire le point Mon dashboard freebox fonctionne à l'exception des valeurs suivantes :

températures cpu-b et cpu-m (dans freebox OS il figure des températures nommées 1 et 2 mais je ne sais pas à quoi elles correspondent)

disque freebox (même en branchant une clé USB) et station wifi (même en l'activant). 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Jeff777,

sans connaitre le nom des variables internes utilisées, ca va être compliqué.

Pour le CPU par exemple, les variables remontées sur une Revolution sont "temp_cpub" et "temp_cpum". Si tu me dis que sur la POP elles s'appellent temp1 et temp2, on peut essayer un script avec les paramètres "temp_cpu1" et "temp_cpu2" .... mais c'est de la pêche à la ligne. On ne ferait que tenter de deviner. Pas top !

Idem pour le disque et le Wifi, comment connaitre le noms interne des paramètres ?

Je vais regarder s' il n'y a pas moyen d'avoir une requete d'interrogation qui remonterait la liste des paramètres accessibles ... Je vais tester cela avec un script dédié. Si ca fonctionne, je te passerai la main.

A suivre.

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777 bonjour Jeff777,

ça avance ! Pour en avoir le cœur net, j'ai pris une trace entre l'application Freebox-OS sur un PC et la Freebox => c'est bien la version V8 de l'API qui est utilisée ! Donc il n'y a pas à tortiller, c'est celle là qu'il faut arriver à faire fonctionner.

En modifiant le script Python, j'ai commencé à récupérer les nouvelles structures de données V8. Certaines (beaucoup) n'ont pas bougé, mais d'autres sont nouvelles ou ont évolué (comme par exemple et au hasard les capteurs de température, le disque dur, .... ) . C'est un peu long et fastidieux, mais je pense que l'on va progresser. Dés que j'ai quelque chose d'un peu abouti, je te le transmets.

Bruno78

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @bruno78

Hier j'ai fait quelques essais sur mon dashboard freebox

et ce matin je n'ai plus aucune donnée. Je suis revenu à la config avant les essais et impossible d'obtenir quoique ce soit.

J'ai l'erreur suivante dans telegraf, même après avoir supprimé tous les arguments de la commande python :

Capture.JPG.50f997e7b06f9c2fbcc5f80266395cde.JPG

Une idée ?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Jeff777,

  • sans argument, le script va quand même chercher les paramètres "box".
  • Si dans le même temps tu fais l'essai avec "-h" (affichage du help SANS aller chercher quoi que ce soit sur la box) et que là ça fonctionne, alors je suggère de vérifier l'authentification de l'appli sur la box.
  • Le fichier ".credentials" est'il toujours présent dans /usr/local/py ?

Pour info, j'ai presque terminé une version "059" entièrement basée sur l'api V8. En fait c'est terminé, mais je n'ai pas fini les tests .... Je pense que pour la POP tu retrouveras (presque ?) tous les paramètres manquants .... mais je ne serais pas en mesure de tester sur une POP avant de le livrer .... Je ne pourrai que guarantir que c'est bon sur une Révolution. Et effectivement, certains paramètres ont changé de localisation entre la V4 et la V8 .....

 

Cdt

Bruno78

Lien vers le commentaire
Partager sur d’autres sites

Je viens de voir ta réponse. Effectivement GrafanaMonitor dit dernier accès hier soir vers 23h. Je vais confirmer avec -h et si cela fonctionne refaire le tuto pour grafanomonitor. Le fichier .credentials est toujours présent.

Si tu veux que je teste le 059 je suis volontaire 😃

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777,

pour le 059, tous les essais sont OK depuis le shell fbx_telegraf, en lançant les commandes python à la main. Il me reste à vérifier que l'intégration dans un dashboard est également OK et qu'il n'y a pas d'effet de bord. D'ici 1 jour ou 2 ce devrait être OK.

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777,

ok pardon je n'ai pas été précis.

Il ne faut pas le lancer depuis le script telegraf.

Il faut se connecter sur le docker freebox_telegraf, et lancer la commande à la main.

  • depuis un terminal en ssh sur le nas
    root@ds918blam:~# docker exec -it fbx_telegraf /bin/bash
    root@fbx_telegraf:/# cd /usr/local/py
    root@fbx_telegraf:/usr/local/py# python3 freebox_058.py -h
    usage: freebox_058.py [-h] [-s] [-r] [-n app_name] [-i app_id]
                          [-d device_name] [-f format] [-e endpoint] [-S] [-P]
                          [-H] [-D] [-L] [-W] [-I] [-X]
    
    optional arguments:
      -h, --help            show this help message and exit
      -s, --register-status
                            Get register status
      -r, --register        Register app with Freebox API
      -n app_name, --appname app_name
                            Register with app_name
      -i app_id, --appid app_id
                            Register with app_id
      -d device_name, --devicename device_name
                            Register with device_name
      -f format, --format format
                            Specify output format between graphite and influxdb
      -e endpoint, --endpoint endpoint
                            Specify endpoint name or address
      -S, --status-switch   Get and show switch status
      -P, --status-ports    Get and show switch ports stats
      -H, --status-sys      Get and show system status
      -D, --internal-disk-usage
                            Get and show internal disk usage
      -L, --lan-config      Get and show LAN config
      -W, --wifi-usage      Get and show wifi usage
      -I, --lan-interfaces  Get and show lan interfaces
      -X, --interfaces-hosts
                            Get and show interfaces hosts
    root@fbx_telegraf:/usr/local/py#
    
  • Ceci dit, l'erreur que tu as, montre qu'il n'y a pas de timeout, mais simplement que le résultat du "-h" n'est pas au format attendu par influxdb, ce qui est normal.
  • Donc c'est bien la communication avec le freebox qui est cassée. Je pense donc qu'il faut vérifier l'association de l'appli avec la freebox, et le cas échéant la refaire.

Cdt

Bruno78

Modifié par bruno78
Lien vers le commentaire
Partager sur d’autres sites

Pas brillant. La réassociation avec grafanamonitor ne fonctionne pas 😒

Pour être sûr que je n'avais pas d'erreur dans telegraf.conf j'ai restauré le fichier telegraf de la semaine passée. Et j'ai toujours ceci :

 

root@telegraf:/usr/local/py# python3 freebox_058.py -r
Doing registration
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/urllib3/connection.py", line 160, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw
  File "/usr/local/lib/python3.7/dist-packages/urllib3/util/connection.py", line 61, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/usr/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py", line 677, in urlopen
    chunked=chunked,
  File "/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py", line 392, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python3.7/http/client.py", line 1244, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.7/http/client.py", line 1290, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.7/http/client.py", line 1239, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.7/http/client.py", line 1026, in _send_output
    self.send(msg)
  File "/usr/lib/python3.7/http/client.py", line 966, in send
    self.connect()
  File "/usr/local/lib/python3.7/dist-packages/urllib3/connection.py", line 187, in connect

etc................................

 

EDIT la bonne nouvelle c'est que les autres dashboards fonctionnent toujours bien. Il n'y aurait pas un pb de python version 3.7 ou 3???

Modifié par Jeff777
Lien vers le commentaire
Partager sur d’autres sites

🙄

je suis aussi en python 3.7.3

root@ds918blam:~# docker exec -it fbx_telegraf /bin/bash
root@fbx_telegraf:/# python3 -V
Python 3.7.3
root@fbx_telegraf:/#
root@fbx_telegraf:/usr/local/py# python3 freebox_058.py -r
Already registered, exiting
root@fbx_telegraf:/usr/local/py#

 

il y a une heure, Jeff777 a dit :

File "/usr/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution

c'est normal ça ??? "temporary failure in name resolution"

As-tu recréé le docker fbx_telegraf de zéro ? et re-installé python ? tu es toujours avec la version telegraf:latest ? je suis en telegraf:latest, ce qui me donne une version 1.15.2.  Mais je vois sur DockerHub qu'il y a une 1.15.3 ... ? pas testée de mon côté.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.