Aller au contenu

[TUTO] Monitorer sa Freebox Revolution


bruno78

Messages recommandés

Il y a 5 heures, Lelolo a dit :

Le user a bien les droits en exécution sur le fichier

oui

Capture.jpg

Il y a 5 heures, .Shad. a dit :

docker exec -it <nom_du_conteneur> python3 --version

OCI runtime exec failed: exec failed: container_linux.go:367: starting container process caused: exec: "python3": executable file not found in $PATH: unknown
Bien vu ! 

Par contre je n'ai pas résolu le problème :

root@NAS:~# which python3
/bin/python3
root@NAS:~# export PATH=/bin/python3:$PATH
root@NAS:~#  echo $PATH
/bin/python3:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
root@NAS:~# cd /volume1/docker/pop_telegraf
root@NAS:/volume1/docker/pop_telegraf# docker-compose down
Stopping pop_telegraf ... done
Removing pop_telegraf ... done
Network data_export is external, skipping
root@NAS:/volume1/docker/pop_telegraf# docker-compose up -d
Creating pop_telegraf ... done

 

python semble bien installé. J'ai bien ajouté au path le chemin de python3....même log.

Et en fait j'ai toujours:

root@NAS:~# echo $PATH
/bin/python3:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
root@NAS:~# docker exec -it pop_telegraf python3 --version
OCI runtime exec failed: exec failed: container_linux.go:367: starting container process caused: exec: "python3": executable file not found in $PATH: unknown


 

Qu'est-ce que j'ai mal fait ?

Lien vers le commentaire
Partager sur d’autres sites

Complément d'info. Lors de l'installation selon le tuto j'ai ce message sur putty :

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
 

Est-ce que ceci pourrait être la cause de mon problème ?

Lien vers le commentaire
Partager sur d’autres sites

il y a 12 minutes, bliz a dit :

mais on peut les changer sur windows en cas de connexion admin

oui j'ai WinSCP connecté en root

J'ai les mêmes droits sur usr/local/py et volume1/docker/py

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

Bonjour,

Après de nombreuses bidouilles j'ai réussi à rétablir le monitoring Freebox avec telegraf:latest.

Jusqu'à présent je donnais les droits dans WinSCP (connecté au nas en root) à l'utilisateur télégraf sur usr/local/py où j'avais mis le fichier freebox_061.py.

J'ai fait la même chose sur putty en root mais en me connectant d'abord au docker (pop_telegraf pour moi) et cela a réussi.

Pensez-vous que c'est pour cette raison que cela a fonctionné ?

Lien vers le commentaire
Partager sur d’autres sites

Le 10/09/2022 à 08:35, Jeff777 a dit :

Pensez-vous que c'est pour cette raison que cela a fonctionné ?

Non.

En fait pour utiliser "telegraf latest", il faut  donner les droits à l'utilisateur telegraf (avec WinSCP en root par exemple) sur le dossier fbx_telegraf (pop_telegraf pour moi) et au répertoire usr/local/py dans lequel on à placé le fichier freebox_0.61.py. Mettre les uid:gid de l'utilisateur dans le docker-compose.  Puis, reconstruire le docker fbx_telegraf (docker-compose down puis docker-compose up -d).

Enfin, supprimer le fichier volume1/docker/fbx_telegraf/py/.credential.  et aussi l'appli Grafanamonitor dans Freebox OS et refaire dans putty les 9 commandes pour remettre à jour le docker fbx_telegraf et réinstaller python (car il y a non persistance de ces modifications lorsque l'on reconstruit le docker). 

 

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Bonjour à tous !

Pour ajouter un peu de facilité sur le montage de ce setup, j'ai testé et appliqué les modifications suivantes :

Sachant que les opérations sont faites sur un NAS OpenMediaVault, avec un docker-compose, on y trouve tout de même beaucoup de similitudes 🙂

Voici donc mon compose :

version: "3.8"
services:
  influxdb:
    image: influxdb:1.8
    container_name: influxdb
    restart: always
    hostname: influxdb
    environment:
      INFLUX_DB: $INFLUX_DB  # nom de la base de données créée à l'initialisation d'InfluxDB
      INFLUXDB_USER: $INFLUXDB_USER  # nom de l'utilisateur pour gérer cette base de données
      INFLUXDB_USER_PASSWORD: $INFLUXDB_USER_PASSWORD  # mot de passe de l'utilisateur pour gérer cette base de données
    volumes:
      - ./influxdb:/var/lib/influxdb  # volume pour stocker la base de données InfluxDB

  telegraf:
    image: telegraf
    mem_reservation: 128M
    cpus: 0.5
    depends_on:
      - influxdb  # indique que le service influxdb est nécessaire
    user: root
    container_name: telegraf
    command: '/usr/local/py/python.sh'
    environment:
      PID: 0
      GID: 0
    links:
      - influxdb:influxdb
    tty: true
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock  # nécessaire pour remonter les données du démon Docker
      - ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf  # fichier de configuration de Telegraf
      - ./py:/usr/local/py
    

  grafana:
    image: grafana/grafana
    depends_on:
      - influxdb  # indique que le service influxdb est nécessaire
    container_name: grafana
    restart: always
    ports:
      - 3000:3000  # port pour accéder à l'interface web de Grafana
    links:
      - influxdb:influxdb
    environment:
      GF_INSTALL_PLUGINS: "grafana-clock-panel,\
                          grafana-influxdb-08-datasource,\
                          grafana-kairosdb-datasource,\
                          grafana-piechart-panel,\
                          grafana-simple-json-datasource,\
                          grafana-worldmap-panel"
      GF_SECURITY_ADMIN_USER: $GF_SECURITY_ADMIN_USER  # nom de l'utilisateur créé par défaut pour accéder à Grafana
      GF_SECURITY_ADMIN_PASSWORD: $GF_SECURITY_ADMIN_PASSWORD  # mot de passe de l'utilisateur créé par défaut pour accéder à Grafana
    volumes:
      - ./grafana:/var/lib/grafana

Tout ce qui concerne les chemins des volumes ont été remplacés par un ./dossier, mais on peux aussi rester sur un chemin complet, comme le compose du tuto proposé 🙂

J'ai donc ajouté une ligne dans ce compose :

    command: '/usr/local/py/python.sh'

Au sein du service Telegraf, qui va servir à executer le script "python.sh" à la création du container.

Le contenu du script est le suivant :

#!/bin/bash
su #On passe en utilisateur root
apt update #On met à jour les dépots dans le container
apt -y upgrade #On met à jour les paquets dans le container
dpkg --configure -a #On configure, si besoin, les paquets
apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common #On installe les paquets nécessaires à l'éxecution du script de monitoring
 
wget https://bootstrap.pypa.io/get-pip.py #On télécharge le get-pip
apt-get -y install python3-distutils #On installe Python et ses utilitaires
python3 get-pip.py --prefix=/usr/local #On indique à python le dossier souhaité
python3 -m pip install requests #On installe les dépendances
pip install unidecode #On installe Unidecode

 

Ainsi donc, au lancement du compose, le script installe automatiquement le nécessaire pour faire fonctionner le script, nous n'aurons plus qu'à faire la partie concernant l'authentification sur la freebox, en docker-exec.

 

Cordialement,

Uzurka

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 17 minutes, uzurka a dit :

je pense monter un github avec tout le nécessaire en te créditant, ca t'irai

Mais ce n'est pas moi qu'il faut créditer....c'est l'auteur de ce tuto  :  @bruno78

Je ne suis qu'un utilisateur 😉

Lien vers le commentaire
Partager sur d’autres sites

Autant pour moi ! Après quelques tests approfondis, il semble que l'ajout de la command: dans le compose remplace le CMD du dockerfile de Telegraf, et donc en empêche le fonctionnement.

Je continue de regarder comment automatiser tout ca, mais pour le moment le plus simple semble être de garder le script en sh, et de l'exécuter en docker-exec 🙂

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour,

Depuis quelques jours les stats du WiFi ont une erreur avec frrebox_061 alors que cela fonctionnait bien avant :

Traceback (most recent call last):
  File "/usr/local/py/./freebox_061.py", line 1099, in <module>
    get_and_print_metrics(auth, args.status_switch, args.status_ports, args.status_sys, args.disk_usage, args.lan_config, args.wifi_usage, args.lan_interfaces, args.interfaces_hosts, args.static_dhcp, args.dynamic_dhcp, args.xdsl_tunnel)
  File "/usr/local/py/./freebox_061.py", line 812, in get_and_print_metrics
    length_l3_conn = len(sys_json_raw['result'][k]['host']['l3connectivities'])
KeyError: 'l3connectivities'

Le Wifi est bien activé et fonctionne correctement, J'ai du enlever le -W du script pour que cela fonctionne pour le reste.

 

Quelqu'un a t il une idée ?

 

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

  • 6 mois après...

Hello !

Dis moi @bruno78 , je viens à nouveau de monter un grafana pour monit ma freebox en xDSL, mais j'ai pas mal de soucis avec ton json, beaucoup de "no data".
Je pense que celui-ci est fait pour la fibre, mais je ne connait clairement pas assez Graf / Influx pour corriger ca tout seul.
Tu pense qu'il te serait possible d'en faire une version ADSL et, éventuellement, de mettre à jour celle présente sur le site de Graf ?

 

@+

Lien vers le commentaire
Partager sur d’autres sites

Salut à tous et toutes !
https://hub.docker.com/r/uzurka/freebox-telegraf

 

Possible de pull directement cette image, basée sur Telegraf, et incluant Python3 pour l'arch amd64.

Repobazarinformatique en as fait une version ARM, je pourrais également l'ajouter à cette image si beaucoup le demandent !

 

Bonne soirée !

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir tout le monde ! Après pas mal de taf, de creusage de méninges, et de bouffage de docs, j'ai enfin crée pour ce tuto l'image PARFAITE !
Rien à faire de votre côté ou presque, en tout cas pour la mise en place.

Je dois encore faire quelques ajustements sur le docker-compose en exemple, mais en gros le conteneur, une fois monté, fera ce qui suis :
- Vérification de la présence du fichier /usr/local/py/.credentials

    - Si le fichier existe, le lancement continue

    - S'il n'existe pas, il lance l'enregistrement de l'appli sur la Freebox

- Lancement de telegraf avec le script python de @bruno78

La configuration de la base de données et les arguments pour le lancement du script sont entièrement configurés à partir de variables à définir dans le docker-compose. Toute la documentation est indiquée dans le README de mon dépôt git.

 

Le must, l'image est multiarch, donc tournera aussi bien sur du ARM64/ARMv7/AMD64, bref, partout !

Bruno n'étant plus très actif sur le forum, si l'un de vous se sent de refaire un tuto en partant de mon travail, je n'y vois aucun inconvénient !

 

Source sur mon Gitea, image dispo sur Docker Hub, GLHF !

 

https://hub.docker.com/r/uzurka/freebox-telegraf

https://git.uzurka.fr/Uzurka/freebox-exporter-telegraf

Lien vers le commentaire
Partager sur d’autres sites

Il y a 7 heures, uzurka a dit :

si l'un de vous se sent de refaire un tuto en partant de mon travail, je n'y vois aucun inconvénient !

Bonjour @uzurka et bravo pour ton boulot 😉

Pour moi le tuto il est vite fait :

J'ai modifié le fichier docker-compose.yml de mon docker telegraf en remplaçant l'image par la tienne.

Puis dans putty docker-compose down puis docker-compose up -d  et roule ma poule.🤣

Maintenant j'ai pas vérifié que c'était pérenne au reboot.

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

@uzurka Salut, je faisais le curieux et regardais tes autres dépôts :

  • Comment exploites-tu le PXE sur ton réseau ? pour l'installation d'ISOs Linux pour tes VM par exemple ?
  • Une bonne source d'apprentissage d'Ansible ? ça me taquine depuis quelques temps 😉 
Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, Jeff777 a dit :

Bonjour @uzurka et bravo pour ton boulot 😉

Pour moi le tuto il est vite fait :

J'ai modifié le fichier docker-compose.yml de mon docker telegraf en remplaçant l'image par la tienne.

Puis dans putty docker-compose down puis docker-compose up -d  et roule ma poule.🤣

Maintenant j'ai pas vérifié que c'était pérenne au reboot.

Salut Jeff ! Merci à toi ! Je n'ai, pour le moment, pas eu le temps de tester en toute conditions, mais l'avantage de Git, c'est qu'en cas de souci, vous pouvez parfaitement créer une issue, pour que je jette un œil 😄

En effet le tuto est simple, mais mon image ne gère pas l'installation de grafana, l'import de la source de données et la mise en place d'un dashboard 😉

 

il y a 38 minutes, .Shad. a dit :

@uzurka Salut, je faisais le curieux et regardais tes autres dépôts :

  • Comment exploites-tu le PXE sur ton réseau ? pour l'installation d'ISOs Linux pour tes VM par exemple ?
  • Une bonne source d'apprentissage d'Ansible ? ça me taquine depuis quelques temps 😉 

Hello Shad !

Le PXE en l’occurrence ici me permet de démarrer n'importe quelle distro linux sur mes machines physiques et virtuelles, Netbootxyz va chercher la distri sur internet et la balance sur la machine qui le demande.
On peux en plus, ce que j'ai fait, ajouter des données supplémentaires, en l’occurrence pour moi un WinPE permettant d'installer Windows 7, 10 & 11, et un second WinPE contenant un HBCD, pour du diag.

 

J'y ai passé beaucoup de temps, et je me suis énormément creusé le crâne pour faire fonctionner tout ça, je serais ravi de t'aider si tu te lance dans le montage d'un tel système 🙂

 

Concernant Ansible, je ne l'utilise que depuis fin avril grosso modo, j'ai appris ca pour un taf (que j'ai normalement, j'attends de signer le contrat :P)

Essentiellement, les tutos de "Xavki" sur Youtube, et la documentation d'Ansible, notamment les Good Practices.

Je n'utilise que très peu de ce que permet de faire Ansible, tant cet outil est un véritable couteau suisse, il est toujours bon de se plonger dedans d'autant que, de nos jours, c'est un mot-clé de plus en plus recherché sur les CV dans l'IT 🙂

 

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

Ok merci de ton retour, je vais regarder pour Netbootxyz, je l'avais vu passer il y a quelques temps sur Linuxserver, je vais y regarder 🙂

Pour le CV, pour un ingé mécanique je ne sais pas si ça fera une grande différence 😄

Mais pour ma culture personnelle, c'est toujours appréciable 🙂  

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

  • 5 mois après...

Bonjour,

@bruno78 @Jeff777

Déjà, en premier, je tiens à remercier tous les participants qui ont contribués au développement de l'API pour le monitoring de la Freebox sur "Grafana". J'espère que ce sujet n'est pas abandonné et toujours suivi...

Je suis sur une Freebox POP (Freebox v8(r1))

J'ai tout installé sur un Serveur Proxmox avec les options :  freebox_061.py -SPHDIWXYZ,

Tous les métriques remontes bien sur Grafana.

 - Sauf pour les métriques concernant le Wifi qui ne remonte pas !!!  ☹️

   (j'ai bien mon wifi qui est activé en 2,5G & 5G sur ma box avec des équipements connectés en wifi).

Si quelqu'un peut m'aider, merci d'avance.

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Dynaloo

J'ai arrêté d'utiliser ce dashboard lorsque je suis passé à la pop (c'était trop contraignant de refaire l'autorisation sur la box à chaque maj). J'ai l'intention d'utiliser cette image https://git.uzurka.fr/Uzurka/freebox-exporter-telegraf

mais pour l'instant je n'ai pas trouvé le temps.

Pour @bruno78, il n'est pas très actif sur le forum en ce moment. J'espère qu'il va pouvoir répondre.

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.