Aller au contenu

bruno78

Membres
  • Compteur de contenus

    706
  • Inscription

  • Dernière visite

  • Jours gagnés

    14

Tout ce qui a été posté par bruno78

  1. bruno78

    [TUTO] Docker : Introduction

    Bonsoir @.Shad. tu as entièrement raison , j'aurais dû supprimer les références à Pihole et Plex qui n'ont rien à faire là, ... mais c'était mon existant et quand on a la tête dans le guidon, on ne s'en rend pas compte. et oui, l'inconvénient du macvlan c'est de court-circuiter le firewall. Je n'y ai pas prêté attention. Je pense que ça va être mon prochain terrain de jeu. Que pourrais-tu proposer à ce sujet ? quelle solution techniquement abordable pour obtenir un résultat correct ? pfSense ?
  2. bruno78

    [TUTO] Docker : Introduction

    @Fredje_B pas de problème à utiliser une autre plage d'adresses que celle que j'ai pris. C'est totalement libre. adressage : le problème de la route additionnelle pour joindre le réseau macvlan, c'est que ce n'est pas permanent. Si tu le fait juste en console et que tu redémarres le NAS, c'est perdu. C'est pour cela qu'il faut placer ce script qui ne va s’exécuter qu'au démarrage du NAS, ainsi il te repositionnera la route nécessaire automatiquement. ensuite la commande elle même : la notation 192.168.1.248/29 représente un réseau de 8 adresses IP en tout (masque /29) 192.168.1.248/29 : réseau complet, les 8 adresses, de 192.168.1.248 à 192.168.1.255 l'adresse individuelle 192.168.1.248 (encore notée 192.168.1.248/32) est réservé pour le réseau (comme 192.168.1.0 sur notre LAN) les 6 adresses individuelles 192.168.1.249 à 192.168.1.254 sont utilisables pour des machines / stations enfin la dernière adresses 192.168.1.255 est dite "adresse de broadcast", c'est elle qui représente sur ce réseau l'adresse de diffusion pour s'adresser à toutes les machines à la fois (pour les protocoles qui doivent découvrir une cible) il y a pas mal de documentation sur le sujet, par exemple https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing Bruno78 Bonjour @Didier3L la gateway sur un réseau : tu prends exactement l'adresse que tu veux, il n'y a pas de contrainte technique. Cependant, par commodité et habitude, on prend en général la première (192.168.1.1) ou la dernière (192.168.1.254). Mais vraiment aucune différence de fonctionnement. jeedom accède à mariadb sans passer par PiHole. D'autant que l'on adresse mariadb par son adresse IP directement. Mais pour que Jeedom puisse sortir sur le monde externe (deb.debian.org par exemple) on a besoin d'une résolution de noms, qui dans mon cas est assurée par le Pihole. Cependant, on peut très bien se passer du PiHole, et indiquer nameserver 8.8.8.8 # DNS google image jeedom:master : bon ben je n'ai pas vu qu'elle n' était pas maintenue. Il y a t'il une autre image plus récente ? macvlan : je reconnais qu'à la première mise en place, pour pihole, j'en ai un peu bavé !
  3. Bonjour, c'est toujours moi 🙂 Si quelqu'un passe sur ce fil, j'ai une petite question: j'ai fait un post qui traite d'un autre sujet, à savoir le docker Jeedom. A titre de précaution, ayant lu qu'il pouvait consommer de la mémoire de façon un peu excessive, j'ai décidé de grapher la consommation mémoire de mes différents dockers. Et là, surprise ! Si je regarde par exemple les dockers Jeedom et MariaDB, j’obtiens sur le NAS : Alors que si je regarde le graphe Grafana, j'obtiens : Soit pour Jeedom, 208MB d'un côté et 30.7MB de l'autre !! Grafana/Influxdb/telegraf sont configurés pour remonter le paramètre "docker_container_mem" pour chaque "container_name". Le point de collecte sur telegraf.conf, concernant les dockers, est "endpoint = "unix:///var/run/docker.sock"" dans le fichier telegraf.conf. Les autres valeurs sont également erronées, mais de façon moins forte. Est-ce normal d'avoir une telle différence ? Ou est-ce que simplement on ne mesure pas la même chose ? Merci de vos lumières.
  4. bruno78

    [TUTO] Docker : Introduction

    Je te souhaite bonne réussite !
  5. bruno78

    [TUTO] Docker : Introduction

    Je vous présente ici la façon dont j'ai pu configurer un docker Jeedom, avec sa base associée mariaDB, sur un réseau docker de type macvlan. En 2 mots, l'avantage du réseau macvlan est de configurer l'équivalent d'une vraie machine physique sur son LAN, avec ses adresses MAC et IP propres. Cela permet entre autre d'exposer les ports standards puisqu'il n'y a pas de doublons. Il y a également quelques inconvénients, comme l'impossibilité de communiquer avec l'hôte (mais il y a un contournement possible) 1) ma configuration initiale : Un réseau LAN en 192.168.1.0/24 Une box Freebox Révolution sur ce LAN en 192.168.1.1. Cette Box fait fonction de gateWay, et de serveur DHCP pour le LAN. La plage IP allouée pour le DHCP est : [192.168.1.100 <=> 192.168.1.247] Au niveau Docker du NAS : Un réseau de type "bridge" qui est utilisé pour du monotoring (telegraf / influxdb / grafana). Ce n'est pas l'objet ici. (mais j'ai promis aussi de faire un tuto "monitoring freebox basé sur ce trio. Ca va venir, mais entre temps le disque dur de ma box a cramé. Ca m'a un peu ralenti !) Un réseau de type "bridge macvlan" utilisé pour 2 dockers: serveur DNS/Pihole (192.168.1.250) et serveur Plex (192.168.1.249). Cf. schéma ci-dessous. Les configurations correspondantes sont les suivantes : docker-compose.yaml version: '2' networks: brw_network: driver: macvlan driver_opts: parent: ovs_eth0 ipam: config: - subnet: 192.168.1.0/24 gateway: 192.168.1.1 ip_range: 192.168.1.248/29 services: pihole: container_name: pihole-pihole1 image: pihole/pihole:latest hostname: pihole domainname: xxxxx.eu mac_address: d0:ca:ab:cd:ef:01 cap_add: - NET_ADMIN networks: brw_network: ipv4_address: 192.168.1.250 volumes: - /volume1/docker/compose/piconfig/pietc:/etc/pihole - /volume1/docker/compose/piconfig/pidnsmasq:/etc/dnsmasq.d dns: - 127.0.0.1 ports: - 443/tcp - 53/tcp - 53/udp - 67/udp - 80/tcp environment: ServerIP: 192.168.1.171 # <-- Update (match NAS ipv4_address) DNS1: 80.67.169.12 DNS2: 80.67.169.40 VIRTUAL_HOST: pihole.xxxxx.eu # <-- Update (match hostname + domainname) restart: unless-stopped plex: image: linuxserver/plex:latest container_name: PlexLesMongets mac_address: d0:ca:ab:cd:ef:02 networks: brw_network: ipv4_address: 192.168.1.249 dns: - 192.168.1.250 # <- .250 PiHole hostname: PlexLesMongets volumes: - /volume1/docker/compose/plexconfig:/config - /volume1/music:/docker/musiquedocker - /volume1/homes/momuser/Drive/Moments:/docker/photodocker - /volume1/video:/docker/videodocker environment: - VERSION=latest - TZ=Europe/Paris restart: unless-stopped Script de routage vers le réseau macvlan, à lancer au demarrage du NAS. C'est ce qui permet aux dockers sur ce réseau de communiquer vers l'exterieur. #!/bin/sh # permettre au docker PiHole cree selon la méthode dite Tony Lawrence # a l'addresse 192.168.1.250/32 # http://tonylawrence.com/posts/unix/synology/free-your-synology-ports/ # de communiquer avec l'hote cad le NAS DNS-server # # creation non persistante # a relancer a chaque demarrage du NAS #Set timeout to wait host network is up and running sleep 60 #Host macvlan bridge recreate ip link add bridgemacvlan link ovs_eth0 type macvlan mode bridge ip addr add 192.168.1.251/32 dev bridgemacvlan # address MAC. cf https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax # il faut que le premier octet soit PAIR # cela permet d'avoir a chaque redemarrage la meme addr MAC, sinon elle change # cela facilite les stats dans PiHole onglet >network ip link set dev bridgemacvlan address 0:1:2:3:4:5 ip link set bridgemacvlan up # ip route add 192.168.1.248/29 dev bridgemacvlan 2) La cible : Ajouter et configurer les 2 containers, Jeedom et MariaDB, sur le réseau macvlan. Cf. figure ci-dessous 3) Jeedom & mariaDB : préparation du fichier docker-compose.yaml dédié. Jeedom a besoin d'une base de données, je prendrais donc MariaDB10. J'ai dejà le paquet Syno MariaDB installé, mais par mesure de sécurité je préfère dissocier. Donc je vais également monter un docker MariaDB dédié à Jeedom. Image Jeedom : jeedom/jeedom:master Image MariaDB : mariadb:latest Service Jeedom : adresse MAC (arbitraire) : a0:ca:ab:cd:ef:01 adresses IP sur le réseau macvlan : 192.168.1.252 limite utilisatin mémoire (soyons prudents) : 500M montage fichiers (persistence) : volumes: - "/volume1/docker/jeedom/html:/var/www/html" montage fichier (resolution DNS, indispensable !): volumes: - "/volume1/docker/jeedom/etcresolv.conf:/etc/resolv.conf:ro" montage volume (listes sources, c'est juste du confort pour la suite): volumes: - "/volume1/docker/jeedom/aptsources.list:/etc/apt/sources.list:ro" Service MariaDB : adresse MAC (arbitraire) : a0:ca:ab:cd:ed:10 adresses IP sur le réseau macvlan : 192.168.1.253 limite utilisatin mémoire (soyons prudents) : 500M montage fichiers (persistence de la database) : volumes: - "/volume1/docker/mariadb/db:/val/lib/mysql" variables d'environnement mariadb:création compte root et mot de passe et nom de la databse. environment: - MYSQL_ROOT_PASSWORD=toto - MYSQL_DATABASE=jeedomdb Réseau pour les 2 dockers : il faut indiquer que l'on fait appel au réseau macvlan existant (compose_brw_network), défini en dehors de ce docker-compose, de la façon suivante pour chaque docker: networks: default: ipv4_address: 192.168.1.252 (ou 253 suivant le service) Récapitulatif : fichier docker-compose.yaml complet pour les 2 dockers Jeedom et mariaDB: # test jeedom version: '2' networks: default: external: name: compose_brw_network services: jeedom: container_name: jeedom-server image: jeedom/jeedom:master hostname: jeedom mac_address: a0:ca:ab:cd:ef:01 networks: default: ipv4_address: 192.168.1.252 mem_limit: 500M volumes: - "/volume1/docker/jeedom/html:/var/www/html" - "/volume1/docker/jeedom/etcresolv.conf:/etc/resolv.conf:ro" - "/volume1/docker/jeedom/aptsources.list:/etc/apt/sources.list:ro" restart: unless-stopped mariadb: container_name: mariadb image: mariadb:latest hostname: mariadb mac_address: a0:ca:ab:cd:ed:10 networks: default: ipv4_address: 192.168.1.253 environment: - MYSQL_ROOT_PASSWORD=toto - MYSQL_DATABASE=jeedomdb - MYSQL_USER=user - MYSQL_PASSWORD=toto mem_limit:500M volumes: - "/volume1/docker/mariadb/db:/val/lib/mysql" 4) resolution DNS: fichier resolv.conf A l'installation du docker Jeedom, ce dernier ne connait comme serveur DNS "que" 127.0.0.11. Or le docker Jeedom à besoin de résolution DNS dés son démarrage. Du coup je lui impose le fichier resolv.conf suivant : root@ds918blam:/volume1/docker/jeedom# cat etcresolv.conf nameserver 192.168.1.250 # PiHole root@ds918blam:/volume1/docker/jeedom# En fait je dis ici au container Jeedom de s'adresser au container PiHole pour la résolution DNS. Sachant qu'ensuite le PiHole s'adresse aux DNS FDN. 5) liste des sources apt: Lors de l'installation de Jeedom, on installe et on met à jour la plateforme linux, ce qui nécessite de connaitre les sources externes de paquets. Cette édition peut se faire dans le terminal de Jeedom, mais si elle est faite avant, c'est toujours cela de gagné, et cela évite les fautes de frappe. root@ds918blam:/volume1/docker/jeedom# cat aptsources.list # deb http://snapshot.debian.org/archive/debian/20190326T120000Z stretch main deb http://deb.debian.org/debian stretch main non-free # deb http://snapshot.debian.org/archive/debian-security/20190326T120000Z stretch/updates main deb http://security.debian.org/debian-security stretch/updates main non-free # deb http://snapshot.debian.org/archive/debian/20190326T120000Z stretch-updates main deb http://deb.debian.org/debian stretch-updates main non-free # # tuto # deb-src http://deb.debian.org/debian stretch main non-free deb-src http://deb.debian.org/debian stretch-updates main non-free deb-src http://security.debian.org stretch/updates main non-free root@ds918blam:/volume1/docker/jeedom# 6) Installation on vient se placer dans le répertoire /volume1/docker/jeedom qui contient le fichier docker-compose.yaml Puis on lance les commandes : /!\ ATTENTION : pas de caractère <TAB> dans le fichier .yaml. Que des espaces /!\ * chargement des images : $docker-compose pull * démarrage des dockers : $docker-compose up -d * on vérifie que les dockers sont bien lancés : root@ds918blam:/volume1/docker/jeedom# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7e82241f42db jeedom/jeedom:master "/root/init.sh" 21 hours ago Up 5 hours jeedom-server 114dfbf02702 mariadb:latest "docker-entrypoint.s…" 22 hours ago Up 5 hours mariadb Jeedom : on se connecte dans un terminal (bash) : on contrôle le fichier /etc/hosts : normalement rien à modifier root@jeedom:/# cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.1.252 jeedom root@jeedom:/# on contrôle le fichier /etc/apache2/ports.conf : normalement rien à modifier => on peut garder le port 80 sans problème. root@jeedom:/# cat /etc/apache2/ports.conf Listen 80 root@jeedom:/# on vérifie le fichier hostname : rien à modifier root@jeedom:/# cat /etc/hostname jeedom root@jeedom:/# on vérifie le fichier /etc/apt/sources.list : c'est celui que l'on a déjà rempli sur le NAS root@jeedom:/# cat /etc/apt/sources.list # deb http://snapshot.debian.org/archive/debian/20190326T120000Z stretch main deb http://deb.debian.org/debian stretch main non-free # deb http://snapshot.debian.org/archive/debian-security/20190326T120000Z stretch/updates main deb http://security.debian.org/debian-security stretch/updates main non-free # deb http://snapshot.debian.org/archive/debian/20190326T120000Z stretch-updates main deb http://deb.debian.org/debian stretch-updates main non-free # # tuto # deb-src http://deb.debian.org/debian stretch main non-free deb-src http://deb.debian.org/debian stretch-updates main non-free deb-src http://security.debian.org stretch/updates main non-free root@jeedom:/# on vérifie la connectivité réseau : en particulier, on ping le DNS, on ping la gateway, on ping le container mariadb, et on ping l'exterieur, google par exemple. Si tout est bon, on peut passer à l'installation de Jeedom proprement dite. root@jeedom:/# ping -c 5 192.168.1.250 PING 192.168.1.250 (192.168.1.250) 56(84) bytes of data. 64 bytes from 192.168.1.250: icmp_seq=1 ttl=64 time=0.088 ms 64 bytes from 192.168.1.250: icmp_seq=2 ttl=64 time=0.083 ms 64 bytes from 192.168.1.250: icmp_seq=3 ttl=64 time=0.067 ms 64 bytes from 192.168.1.250: icmp_seq=4 ttl=64 time=0.071 ms 64 bytes from 192.168.1.250: icmp_seq=5 ttl=64 time=0.082 ms --- 192.168.1.250 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 3999ms rtt min/avg/max/mdev = 0.067/0.078/0.088/0.009 ms root@jeedom:/# ping -c 5 192.168.1.253 PING 192.168.1.253 (192.168.1.253) 56(84) bytes of data. 64 bytes from 192.168.1.253: icmp_seq=1 ttl=64 time=0.087 ms 64 bytes from 192.168.1.253: icmp_seq=2 ttl=64 time=0.078 ms 64 bytes from 192.168.1.253: icmp_seq=3 ttl=64 time=0.065 ms 64 bytes from 192.168.1.253: icmp_seq=4 ttl=64 time=0.078 ms 64 bytes from 192.168.1.253: icmp_seq=5 ttl=64 time=0.062 ms --- 192.168.1.253 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 3999ms rtt min/avg/max/mdev = 0.062/0.074/0.087/0.009 ms root@jeedom:/# root@jeedom:/# ping -c 5 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.610 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.257 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.254 ms 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.262 ms 64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=0.248 ms --- 192.168.1.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4000ms rtt min/avg/max/mdev = 0.248/0.326/0.610/0.142 ms root@jeedom:/# ping -c 5 google.com PING google.com (216.58.213.174) 56(84) bytes of data. 64 bytes from par21s04-in-f14.1e100.net (216.58.213.174): icmp_seq=1 ttl=58 time=2.90 ms 64 bytes from par21s04-in-f14.1e100.net (216.58.213.174): icmp_seq=2 ttl=58 time=3.23 ms 64 bytes from par21s04-in-f14.1e100.net (216.58.213.174): icmp_seq=3 ttl=58 time=2.66 ms 64 bytes from par21s04-in-f14.1e100.net (216.58.213.174): icmp_seq=4 ttl=58 time=2.86 ms 64 bytes from par21s04-in-f14.1e100.net (216.58.213.174): icmp_seq=5 ttl=58 time=2.69 ms --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 2.667/2.873/3.230/0.203 ms root@jeedom:/# Installation de Jeedom : on suit le tuto de @Didier3L (https://community.jeedom.com/t/tuto-installation-de-jeedom-sur-synology-avec-docker-en-mode-host/5290), à savoir : Lancer ces 3 commandes : (15 à 20 minutes en tout) apt-get update && apt-get upgrade -y && apt-get -y build-dep pam export CONFIGURE_OPTS=--disable-audit && cd /root && apt-get -b source pam && dpkg -i libpam-doc*.deb libpam-modules*.deb libpam-runtime*.deb libpam0g*.deb apt-get remove --purge -y $(apt-mark showauto) && apt-get clean puis edition du fichier /root/init.sh pour mise à jour et vérifier que la fin du fichier contienne : echo 'All init complete' chmod 777 /dev/tty* chmod 777 -R /tmp chmod 755 -R /var/www/html chown -R www-data:www-data /var/www/html echo 'Start apache2' systemctl restart apache2 service apache2 restart echo 'Start sshd' systemctl restart sshd service ssh restart service ssh start echo 'Start atd' systemctl restart atd service atd restart service atd start /usr/bin/supervisord puis on redemarrare le docker jeedom (qui dans mon installation s'appelle donc jeedom-srv) 7) Finalisation Il ne reste plus qu'à finaliser ! On se connecte (navigateur) à notre docker jeedom : http://192.168.1.252 (pas besoin de préciser le port puisque l'on utilise le port standard 80) Sur l'écran de connexion, on renseigne : database hostname : 192.168.1.253 database port : 3306 (ce docker mariadb10 expose par default le port 3306 ...) database username : root database password : toto (ce que vous avez configuré dans les variables du docker dans le fichier docker-compose) database name : jeedomdb (ce que vous avez configuré dans les variables du docker dans le fichier docker-compose) puis : PROCEED Et la normalement (!) le processus initial de configuration de la databse demarre pour quelques minutes, puis invite à se connecter avec le compte admin/admin, qui demandera lors de la première connexion de changer le mot de passe. Voilà, c'est fait ! PS: Je n'ai pour le moment pas l'utilité de Jeedom puisque je n'ai pas de domotique, donc je ne peux pas aller au delà. Je garde ma configuration opérationnelle, si besoin. Il conviendra également surement de monitorer un peu les consommations mémoire des dockers, de façon à leur poser des limites raisonables (paramètre mem_limit:500M dans le docker-compose.yaml. 500M c'est peut-être un peu généreux ... à voir à l'usage) J'espère ne pas avoir fait d'erreur de retranscription. Enfin un dernier mot: n'étant pas expert, il se peut que j'emploie des méthodes qui sont plus des recettes que de l'état de l'art techniquement parlant. Je m'en excuse, et suis ouvert à tous commentaires. Si il y a des points à modifier, corriger ou simplement améliorer, n'hésitez pas. (c'est le premier post de ce type que je fais, donc soyez indulgents) Bruno78
  6. Bonjour, comme ça je dirais bien un problème de droits sur le dossier du NAS 2 => verifier que l'utilisateur "user" et le groupe "users" ont a minima des droits en lecture.
  7. bruno78

    [TUTO] Docker : Introduction

    Bonjour, je vais donner le détail dans la journée, mais effectivement : je n'ai pas eu besoin de modifier le fichier hosts problème majeure rencontré : pas de résolution DNS (le DNS par defaut de Jeedom à l'installation est 127.0.0.11, ce qui ne va pas nous servir ici !) => nécessité de mapper un fichier /etc/resolv.conf personnalisé dés le démarrage du container (c'est en tout cas la solution la plus rapide que j'ai trouvée) Pour la commodité, j'ai également mappé un fichier sources.list, c'est toujours ca de moins à faire en mode console Ce qui donne dans le docker-compose.yaml : volumes: - "/volume1/docker/jeedom/html:/var/www/html" - "/volume1/docker/jeedom/etcresolv.conf:/etc/resolv.conf:ro" - "/volume1/docker/jeedom/aptsources.list:/etc/apt/sources.list:ro" lors de la première connexion de Jeedom à la base de données, il faut utiliser le user root de la bdd. et à la fin de l'installation, si elle se passe bien, un compte jeedom admin/admin est créé avec lequel on doit se reconnecter, et changer le mot de passe à la première connexion.
  8. bruno78

    [TUTO] Docker : Introduction

    Bonjour @Didier3L, @.Shad. j'ai une bonne et une mauvaise nouvelle ! la bonne, c'est que j'ai pu faire fonctionner la solution basée sur Docker et réseau macvlan (non sans mal !!). Je n'ai pas d'équipement manageable via Jeedom ni de compte, donc je n'ai pas pu aller très loin, mais on passe bien les étapes de connexion et de configuration de la base de données, puis accès à l'application Jeedom elle même. la mauvaise, ...... c'est que je n'ai plus le temps ce soir, et que je ne ferai une description de l'ensemble que demain 🙂
  9. bruno78

    [TUTO] Docker : Introduction

    bonjour, je vais tacher également de mon côté à faire une config équivalente. (docker + macvlan)
  10. bruno78

    [TUTO] Docker : Introduction

    Bon, pourquoi as-tu positionné le port à 3307 dans ces essais, je croyais que sur ton installation c'est le port 3306 ? Tu as aussi changé le nom d'utilisateur ? par ailleurs, il est interessant de noter que dans un cas "connection refused", et dans l'autre "no such file or directory"
  11. bruno78

    [TUTO] Docker : Introduction

    Bonjour, je n'aime pas trop faire des essais dans le vide, et je ne connais pas Jeedom. Néanmoins, avec MariaDB, j'ai déjà eu des problèmes "similaires". Donc je te propose un test facile et rapide. Dans ton écran de connexion à Jeedom, je vois que tu as mis "Database hostname=192.168.1.10" => peux-tu faire les deux essais suivants avec respectivement "Database hostname=127.0.0.1" (c'est celui qui a fonctionné pour moi), et si ca ne marche toujours pas avec "Database hostname=localhost" ?
  12. bruno78

    [TUTO] Docker : Introduction

    Bonjour, bridgemacvlan, c'est le nom du pont entre ton réseau mymacvlan et l’environnement "extérieur". C'est ce qui va lui permettre de communiquer. Donc tu l'appelles comme tu le souhaites, mais il ne représente pas le réseau mymacvlan. Ce sont 2 entités différentes. Donc je déconseille de l'appeler mymacvlan. Je n'ai pas fait le test, peut-être que donner le même nom à 2 entités différentes est accepté, mais ce n'est pas le meilleur moyen pour s'y retrouver ensuite. => lui donner un nom différent, à ton choix.
  13. bruno78

    [TUTO] Docker : Introduction

    Bonjour, as-tu réaliser la partie routage ? ip link add bridgemacvlan link eth0 type macvlan mode bridge ip addr add 192.168.1.241/32 dev bridgemacvlan # address MAC. cf https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax # il faut que le premier octet soit PAIR # cela permet d'avoir a chaque redemarrage la meme addr MAC, sinon elle change ip link set dev bridgemacvlan address 0:1:2:3:4:5 ip link set bridgemacvlan up # ip route add 192.168.1.240/29 dev bridgemacvlan
  14. bruno78

    [TUTO] Docker : Introduction

    Bonsoir, Je n'ai pas fait le test, mais est-ce que l'on peut mettre la même adresse pour gateway et aux-address ?? Ne faudrait'il pas supprimer le --aux-address="freebox=192.168.1.254" \ ??
  15. bruno78

    [TUTO] Docker : Introduction

    @.Shad., oui effectivement il faut employer le --aux-address. J'avoue qu' attribuant mes adresses IP de façon explicite via le docker-compose.yaml, je n'ai a priori pas ce genre de surprise. Je n'ai pas d'attribution automatique et incontrôlée d'adresse IP. L'adresse IP et l'adresse MAC de mes conteneurs sont inscrits dans le docker-compose. Bruno78
  16. bruno78

    [TUTO] Docker : Introduction

    Bonjour @Didier3L, à propos de macvlan : supprimer des réseaux : il faut donner le nom (NAME) du réseau que tu veux supprimer, pas son Id (NETWORK ID) par exemple : # docker network rm mymacvlanconfig il faut définir la bonne plage d'adresse pour ton réseau macvlan ici tu donnes 192.168.1.60/24 : c'est incohérent. mettons que tu aies besoin de 3 ou 4 adresses sur ton macvlan, alors tu vas définir en réseau en /29 : 8 adresses IP, dont celle du réseau et celle de broadcast. Donc 6 adresses IP unicast utilisables. Cette plage d'adresses doit être en dehors de ta plage DHCP pour éviter les adresses dupliquées sur le réseau Par exemple, tu peux les placer en fin de plage réseau : réseau macvlan : 192.168.1.240/29 ca veut dire : adresse réseau : 192.168.1.240 adresses IPv4 unicast utilisables pour les dockers : 192.168.1.241 à 192.168.1.246 adresse de braodcast sur ton réseau macvlan : 192.168.1.247 tu pourras donc allouer aux dockers que tu configures sur ce macvlan les adresses de 192.168.1.241 à 192.168.1.246 enfin il faut permettre au réseau macvlan de communiquer avec le reste de ton environnement : il faut donc rajouter une interface logique sur le NAS et ajouter le routage associé. Le faire patr un script qui sera lancé automatiquement au demarrage du NAS. par exemple dans ce cas : (mon script adapté à ton réseau et adresses ci-dessus. A corriger en fonction de chaque environement). Attention, on consomme une premiere adresse pour cette interface (192.168.1.241) #!/bin/sh # Created on October 17, 2019, by Bruno78 # http://tonylawrence.com/posts/unix/synology/free-your-synology-ports/ # # mis à jour 24 janvier 2020 # definition d'un subnet complet /29 pour pouvoir rattacher plusieurs container docker # # creation non persistante # a relancer a chaque demarrage du NAS #Set timeout to wait host network is up and running sleep 60 #Host macvlan bridge recreate ip link add bridgemacvlan link ovs_eth0 type macvlan mode bridge ip addr add 192.168.1.241/32 dev bridgemacvlan # address MAC. cf https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax # il faut que le premier octet soit PAIR # cela permet d'avoir a chaque redemarrage la meme addr MAC, sinon elle change ip link set dev bridgemacvlan address 0:1:2:3:4:5 ip link set bridgemacvlan up # ip route add 192.168.1.240/29 dev bridgemacvlan Voilà 🙂 J'espère ne pas avoir été trop confus dans ces explications. Ceci dit, j'ai mis un petit moment avant de le faire fonctionner et de regrouper toutes les données et informations nécessaires. Donc si ça peut servir . Si problème, n'hésites pas à nous faire part de tes avancées. Pour info, moi je l'ai mis en place pour un docker PiHole pour lequel j'avais besoin de conserver les ports standards, tout en ayant le paquet Syno DNS également actif. Bruno78
  17. Bonjour @.Shad. je n'ai pas eu trop le temps d'avancer ces derniers jours. En fait je reprends le codage du Python, car il ne me semble pas optimisé pour les interrogations grafana un peu "poussées" (tableaux, etc ....). Et de temps en temps, j'ai la Fbox qui ne répond pas, sans que je ne sache trop pourquoi .... Mais oui dés que ce sera possible je partagerai , no problème.
  18. Bonjour Brennac, comment ce fait'il que tu en ais autant ?? Quelle est la durée d'expiration des entrées dans ta base ? J'ai une durée typique de rétention de 2 heures, le script lui tourne toute les heures, et j'ai entre 25000 et 32000 addresses dans la liste en permanence. Stable. Sinon, oui, il y a surement moyen d'aller taper directement dans la base sqlite3 ..... mais faut être prudent et je ne maitrise pas suffisemment pour te dire comment :-(. Bruno78
  19. Voila où j'en suis ....
  20. Hello, non, l'instance telegraf (docker) est localisée sur le NAS, qui construit et envoie des requêtes http(s) [via le fameux script Python] vers la Freebox et récupère les données en retour. Je n'ai pas les messages d'erreur sous la main (je suis au taff), mais je vais les poster. Dans le fichier telegraf.conf, il semble qu'il y ai des moyens d'indiquer la presence de certificats. Faut que je creuse. Aujourd'hui ces requêtes sont en http. Mais Free précise que "un jour ...." le http sera arrêté au profit exclusif du https. Mais on a peut-être le temps de voir venir ? De même que le dernier API documenté par Free (https://dev.freebox.fr/sdk/os/) est une version 4.0 (et encore, Free précise que de nombreuses sections sont [INSTABLE]), et lorsque l'on interroge la Freebox sur sa version API (http://mafreebox.free.fr/api_version), celle-ci répond fièrement API_VERSION = "6.0" (pour une Freebox Revolution) Bref, c'est de la navigation à vue, dans un épais brouillard .... Du coup on arrive à faire des choses, mais c'est du tâtonnement, sans grande pérennité je le crains. Je suis quand même arrivé à construire un tableau de bord correct, mais outre ce https (peut-être pas si urgent), il me reste un aspect que je voudrais réussir à coder (en Python donc), c'est de sortir une liste dynamique des équipements connectés, wifi ou LAN, à un instant donné.
  21. Hello, un dernier point à voir, peut-être pas le plus simple : le passage en https. Sur le site de Free (https://dev.freebox.fr/sdk/os/#) il est dit Freebox Root CA -----BEGIN CERTIFICATE----- MIIFmjCCA4KgAwIBAgIJAKLyz15lYOrYMA0GCSqGSIb3DQEBCwUAMFoxCzAJBgNV BAYTAkZSMQ8wDQYDVQQIDAZGcmFuY2UxDjAMBgNVBAcMBVBhcmlzMRAwDgYDVQQK ... d5jENIZChM8TnDXJzqc+mu00cI3icn9bV9flYCXLTIsprB21wVSMh0XeBGylKxeB S27oDfFq04XSox7JM9HdTt2hLK96x1T7FpFrBTnALzb7vHv9MhXqAT90fPR/8A== -----END CERTIFICATE----- Bon, la question est simple (!) : comment on "validate the certificate chain, by using the following Root CA certificates ???" Là, je ne sais pas faire ... Merci de votre aide. Bruno78
  22. et voilà ! toutes les infos remontent, ayant modifié l'appel au script Python, avec tous les arguments. Il me reste à voir la question du https . Bruno78 PS : une fois tout au point, je ferai un récapitulatif global pour telegraf / Freebox
  23. Bonjour, oui effectivement tous les dockers sont bien dans le même réseau. et entre temps, j'ai fais un peu de lecture, ... de temps en temps on n'y échappe pas ! J'ai parcouru la doc influxdb, et je pense que pour Grafana même punition .... du coup, la solution est maintenant : 2 dockers telegraf, qui alimentent un seul docker influxdb, puis visualisation vers un seul Grafana sur le docker influxdb, j'ai bien créé 2 users, .... mais une seule db. avec 2 db, 1 pour chaque telegraf, ça marche beaucoup mieux 🙂 j'ai donc bien à présent des stats qui remontent de ma Freebox. Simplement, je ne retrouve pas sous Grafana toutes les stats Freebox que je m'attends à recevoir (j'ai le in/out, mais par exemple je ne trouve pas les stats des ports du switch ...). Il faut que je retravaille le script Python qui va chercher les données sur la Fbox, car maintenant le problème est clairement là. La Fbx est passée en API 4.0, et ne va pas tarder à forcer le passage en https. Il va donc y avoir un certificat à intégrer. Bref encore du boulot, mais de grands progrès déjà réalisés. Merci
  24. Hello, oui exact . DNS1 et DNS2 en variables d'environnement. C'est OK ! ca passe ! PB résolu, merci Bruno78
  25. Bon, finalement, en insérant bien data_format=influx en corrigeant encore quelques problèmes d'indentation dans le fichier python et le test de l'argument , cela semble passer. => telegraf envoie bien des données à influxdb Ensuite, je voulais n'avoir qu'un seul influxdb réunissant les données de la Freebox et celles du NAS => pas réussi. Du coup, 1 groupe (telegraf + influxdb) pour la Freebox, et 1 groupe (telegraf+influxdb) pour le NAS. Le tout remontant vers une seule instance de Grafana .....ça commence à faire cher en ressources ! La joie n'a été que de courte durée : j'ai l'impression que la base Freebox influxdb est vide, ou ne se remplit pas ..... du coup rien ne remonte vers Grafana (qui portant voit bien cette instance Freebox d'influxdb) Je continue .....
×
×
  • 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.