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. @Jeff777, l'adresse MAC fixée pour le docker telegraf .... ne sert à rien ici. Je l'avais mise en place pour certains dockers en mode macvlan et donc pour lesquels l'adresse IP et l'adresse MAC sont visibles sur le réseau. C'est le cas en particulier de mon docker pihole. Mais ici pour telegraf .... aucun intérêt on est d'accord. C'est un reliquat. Bruno78
  2. @Jeff777, pour ce que l'on veut faire ici, càd disposer d'une image telegraf incluant l'installation de Python3, la commande "docker commit" fait le boulot. Voici donc comment j'ai procédé : (les outputs sont tronqués car trop longs) 1) Je charge une image de telegraf vierge, je vérifie qu'il n'y a pas de python et j'y installe mon python3 selon la procédure du tuto : root@vdsm2:/volume1/docker/monitoring# cat docker-compose.yaml services: test_telegraf: image: telegraf:latest container_name: test_telegraf hostname: test_telegraf mac_address: d2:ca:ab:cd:00:06 networks: data_grafana: ipv4_address: 172.18.0.6 environment: - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin:/sbin:/usr/local:/usr/src - TZ=CET volumes: - "/volume1/docker/dev3/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro" - "/volume1/docker/dev3/telegraf/py:/usr/local/py:ro mem_limit: 50M ports: - 5125:8125/udp - 5092:8092/udp - 5094:8094 restart: unless-stopped root@vdsm2:/volume1/docker/monitoring# root@vdsm2:/volume1/docker/monitoring# docker-compose up -d test_telegraf Creating test_telegraf ... done root@vdsm2:/volume1/docker/monitoring# docker images REPOSITORY TAG IMAGE ID CREATED SIZE telegraf latest 79fd1e5d0a8f 3 months ago 276MB root@vdsm2:/volume1/docker/monitoring# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0de5d8966d84 telegraf:latest "/entrypoint.sh tele…" 16 seconds ago Up 11 seconds 0.0.0.0:5092->8092/udp, 0.0.0.0:5094->8094/tcp, 0.0.0.0:5125->8125/udp test_telegraf root@vdsm2:/volume1/docker/monitoring# docker exec -it test_telegraf /bin/bash root@test_telegraf:/# python -V bash: python: command not found root@test_telegraf:/# python3 -V bash: python3: command not found root@test_telegraf:/# apt update root@test_telegraf:/# apt upgrade …. root@test_telegraf:/# dpkg --configure -a root@test_telegraf:/# apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common root@test_telegraf:/# wget https://bootstrap.pypa.io/get-pip.py root@test_telegraf:/# apt-get install python3-distutils root@test_telegraf:/# python3 get-pip.py --prefix=/usr/local root@test_telegraf:/# python3 -m pip install requests root@test_telegraf:/# pip install unidecode root@test_telegraf:/# python3 -V Python 3.7.3 root@test_telegraf:/# exit exit 2) je fais dessus un "docker commit -p <reference docker> <nom_nouvelle_image>". Cela produit une nouvelle image contenant toutes les modifications effectuées auparavant. L'option -p met en pause le docker pendant la création de la nouvelle image afin de garantir qu'il n'y ai pas d'incohérence dans le file system. root@vdsm2:/volume1/docker/monitoring# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0de5d8966d84 telegraf:latest "/entrypoint.sh tele…" 16 minutes ago Up 15 minutes 0.0.0.0:5092->8092/udp, 0.0.0.0:5094->8094/tcp, 0.0.0.0:5125->8125/udp test_telegraf root@vdsm2:/volume1/docker/monitoring# docker commit -p 0de5d8966d84 telegraf_py:latest sha256:e9ac730929f7698a4264ff762f2b86a34a28113a48fda598d065fa04a19260cf root@vdsm2:/volume1/docker/monitoring# docker images REPOSITORY TAG IMAGE ID CREATED SIZE telegraf_py latest e9ac730929f7 8 seconds ago 466MB telegraf latest 79fd1e5d0a8f 3 months ago 276MB root@vdsm2:/volume1/docker/monitoring 3) je modifie mon docker-compose.yaml pour utiliser cette nouvelle image version: "2" services: test_telegraf: image: telegraf_py:latest container_name: test_telegraf hostname: test_telegraf mac_address: d2:ca:ab:cd:00:06 networks: data_grafana: ipv4_address: 172.18.0.6 environment: - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin:/sbin:/usr/local:/usr/src - TZ=CET volumes: - "/volume1/docker/dev3/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro" - "/volume1/docker/dev3/telegraf/py:/usr/local/py:ro" mem_limit: 50M ports: - 5125:8125/udp - 5092:8092/udp - 5094:8094 restart: unless-stopped 4) j'efface le docker mis à jour manuellement, et je relance le docker-compose avec la nouvelle image telegraf_py:latest root@vdsm2:/volume1/docker/monitoring# docker stop test_telegraf test_telegraf root@vdsm2:/volume1/docker/monitoring# docker rm test_telegraf test_telegraf root@vdsm2:/volume1/docker/monitoring# docker-compose up -d test_telegraf Creating test_telegraf ... done root@vdsm2:/volume1/docker/monitoring# 5) je vérifie les détails du nouveau docker : il a bien pris en compte l'image telegraf_py:latest root@vdsm2:/volume1/docker/monitoring# docker inspect test_telegraf [ { "Id": "a778a6d7d5e50a1e29837205d3fbe5710dafc2884f0f26e5cae09981b0737219", "Created": "2020-11-28T06:29:51.30628885Z", "Path": "/entrypoint.sh", "Args": [ "telegraf" ], …. "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin:/sbin:/usr/local:/usr/src", "TELEGRAF_VERSION=1.15.2", "TZ=CET" ], "Cmd": [ "telegraf" ], "ArgsEscaped": true, "Image": "telegraf_py:latest", "Volumes": { "/etc/telegraf/telegraf.conf": {}, "/usr/local/py": {} }, ….. } } } } ] root@vdsm2: 6) et enfin je vérifie que mon docker basé sur l'image commitée telegraf_py:latest contient le python fonctionnel : root@vdsm2:/volume1/docker/monitoring# docker exec -it test_telegraf /bin/bash root@test_telegraf:/# python3 -V Python 3.7.3 Voilà. Désolé c'était un peu long, mais je voulais être sûr que c'était bon. Donc pas besoin de docker save/load. Cdt Bruno78
  3. alors a priori il serait conseillé de faire un docker commit -p ... avant le backup, et de ne pas le faire dans la partition / qui n'est pas taillée pour cela. Si on se met dans /homes ca ne pose pas de problème. J'essaie de mettre cela au clair ce weekend.
  4. @Jeff777, oui ça n'a pas l'air si évident ... Je pense qu'il faut creuser un peu .... J'ai le même type de comportement ... Je vais chercher un peu ....
  5. @Jeff777, a priori les commandes docker save et docker load devraient répondre à ton problème de sauvegarde d'image docker (ps je n'ai pas testé). https://docs.docker.com/engine/reference/commandline/save/ https://docs.docker.com/engine/reference/commandline/load/
  6. Bonjour @Jeff777, tout d'abord je ne m'explique pas ces deconnexions intempestives. Je redemarre la box ou le NAS (bon pas tous les jours non plus !) mais c'est arrivé une fois ou 2 ces derniers temps, et je n'ai jamais à tout reconstruire ! Pour ce qui est d'éviter de tout retaper à chaque fois, je pense (je suis sûr) qu'il y a moyen de sauvegarder l'image une fois modifiée. Je vais regarder les docs Docker. Bruno78
  7. Problème résolu : ayant fini par trouvé ce post (https://stackoverflow.com/questions/8384122/php-downloaded-binary-file-gets-an-additional-byte-0x0a-at-the-end ) , j'ai regardé de plus près mes balises php ... la balise PHPfermante d'un fichier include était suivie d'un "blanc" (donc peu détectable sauf à le chercher explicitement), pris en compte par la commande echo du fichier principal, et provoquait cet entête indésirable. PS : ça veut aussi dire que ce que je croyais être des tests à configuration "strictement identique" ne l'était pas tant que cela. Le diable se niche dans les détails.
  8. Bonjour, je reviens sur ce post car j'avais besoin de faire quelques tests complémentaires, étant complètement dans le flou. La seule configuration que j'ai réussi à faire tourner sur le Pi, c'est un mettant un lien de chargement sur le site. Soit un syntaxe de ce type : file_put_contents($csv_filename, $csv_export); header('Location: http://pisl.ndd.tld/'.$csv_filename.''); qui donne le lien de chargement du fichier à rapatrier. Toute autre méthode a échoué et m'a toujours mis ces 2 octets d'entête parasites (0x09 0x0a càd <tab> <LF>). En faisant une trace réseau, j'ai confirmé que c'est bien au départ, sur le Rasp Pi, que se produit l'ajout des ces 2 octets, phénomène qui n'apparait pas lorsque le même code est hébergé sur le Syno. Je cherche toujours quelle est la différence de config. qui pourrait expliquer ce comportement bizarre : PHP7.3 d'un côté, PHP7.4 de l'autre ? LANG=en_US.utf8 d'un côté, LANG=fr_FR.UTF8 de l'autre ?
  9. Bonjour, j'ai un site qui tourne sur mon DS918, sous wordpress / nginx / mariadb / PHP. Une des fonctionnalité est l'export de tableaux sql en csv via un script PHP. Pour cela, j'ai entre autre appliqué la méthode qui se trouve ici (https://gist.github.com/janschoepke/3e7a3639546d0d740c023e11289cf13d) donc j'ai un code comme ceci : ($ress étant le résultat de ma requête sql) // creation du fichier csv à exporter // gestion du BOM (pour MS Excel) Byte Order Mark // compatibilité MS Excel Windows $bom = chr(0xEF) . chr(0xBB) . chr(0xBF); /* vars for export */ // database record to be exported $db_record = 'Liste_Noms'; // optional where query $where = 'WHERE 1 ORDER BY 1'; // filename for export $csv_filename = 'OSL_'.$db_record.'_'.date('Y-m-d').'.csv'; $csv_export = ''; $field = mysqli_field_count($dbconnect); // create line with field names for($i = 0; $i < $field; $i++) { $csv_export.= mysqli_fetch_field_direct($ress, $i)->name.';'; } // newline $csv_export .= PHP_EOL; // loop through database query and fill export variable while($row = mysqli_fetch_array($ress)) { // create line with field values for($i = 0; $i < $field; $i++) { $csv_export.= '"'.$row[mysqli_fetch_field_direct($ress, $i)->name].'";'; } // newline $csv_export .= PHP_EOL; } // ajout BOM au fichier pour passage en UTF8-BOM // pour MS Excel (Byte Order Mark) // compatibilité MS Excel Windows $csv_export = $bom . $csv_export; // Export the data and prompt a csv file for download header("Content-type: text/x-csv; charset=utf-8"); header("Content-Disposition: attachment; filename=".$csv_filename.""); echo($csv_export); => cela fonctionne nickel sur le DSM. MAIS : faisant quelque fois des essais sur le Syno, j'ai installé le site à l'identique sur un Rasp Pi 3B+ pour pouvoir basculer au cas ou.. Après quelques réglages (wordpress, nginx, php) tout fonctionne à merveille et à l'identique, ... sauf cet export csv !! Symptôme : Excel me dit "fichier corrompu", et quand je regarde de plus près, je m'apperçois que le fichier csv transféré contient une première ligne "parasite" : Ce sont cette tabulation et "LF" en ligne 1 qui empêche Excel d'ouvrir le fichier. (alors que OpenOffice Calc s'en moque royalement et ignore cette ligne) Le même code sur le Syno donne un résultat propre, sans cette première ligne. Je crois avoir à peu près tout essayé pour supprimer cette ligne parasite (text/csv, application/csv, fputcsv, trim, ltrim, ....) Rien à faire. => je ne sais plus où chercher ..... J'ai tenté de regarder les configurations de PHP, c'est touffu, mais rien d'évident. Si quelqu'un à une idée géniale , je suis preneur. Merci d'avance, Bruno78
  10. OK, pas de soucis. Moi j'ai un peu segmenté les choses : 3 dockers telegraf sur le NAS : 1 pour le NAS lui-même, 1 pour la Fbox et 1 dédié à la collecte de logs. + des telegraf "satellites" : 1 sur une VPS OVH, 1 sur un Rasp Pi. Les tout remonte vers des databases différentes de la même instance influxdb, puis vers grafana. Disons que quand je fais des tests ciblés, ca évite de faire tout planter. Au pire je ré-initialise le telegraf qui me pose problème, et j'efface et je recrée la database concernée d'influxdb.
  11. @Jeff777, pour le polling time, c'est dans le fichier de conf de telegraf : telegraf.conf. ligne 25 : # Configuration for telegraf agent [agent] ## Default data collection interval for all inputs interval = "15s" ligne 51 : ## Default flushing interval for all outputs. Maximum flush_interval will be ## flush_interval + flush_jitter flush_interval = "15s" Puis dans les "input plugins" pour la partie Freebox (vers ligne 1681 mais ca depend où tu l'as positionné dans ton fichier) ############################################################################### # INPUT PLUGINS # ############################################################################### ############################################################################### # INPUT PLUGINS FREEBOX # ############################################################################### # Read metrics from one or more commands that can output to stdout [[inputs.exec]] ## Commands array # # API freebox OS V8 commands = ["python3 /usr/local/py/freebox_059.py -WXDHSP"] ## Timeout for each command to complete. # timeout = "5s" timeout = "12s"
  12. @Jeff777, par ailleurs, de mon côté je fais quelques évolutions sur le script python pour la Freebox (sur le DHCP), et je suis toujours à la limite : je viens de passer le polling interval à 15s au lieu de 10sec, (donc le flush interval également à 15sec) et le timeout à 12sec. je me suis aperçu que j'étais assez restrictif sur la mémoire allouée au docker fbx_telegraf. Je viens de le passer de 75M à 150M. A voir si cela supprime des message d'erreur aléatoires que j'ai de temps en temps. Mais en tout cas le docker fbx_telegraf s'est empressé d'utiliser cette espace mémoire supplémentaire. Donc je me dis que ça ne peut être que bénéfique. Bruno78
  13. Bonjour @Jeff777, les problèmes de déconnexion avec la fenêtre rouge "unauthorized" .... Peux tu vérifier au niveau du journal telegraf si tu n'aurais pas par hasard des "timeout" pour la récupération des données par telegraf sur la Freebox ? ou un autre type d'erreur ? De mon côté j'ai été obligé d'augmenter légèrement le timeout dans telegraf.conf parce que la freebox avait du mal à tout me récupérer dans le temps imparti. Je suis passé de 5 à 8 sec. Bruno78
  14. @Einsteinium@MagJ@Skylnex bonjour, j'avoue avoir été un peu fainéant, et avoir créé de nouvelles clés sans avoir effacé les anciennes. Ce n'est pas très propre, ... mais ça ne pose aucun soucis. Par ailleurs, j'ai pu mettre en œuvre relativement facilement la solution de notification par mail basée sur le service sendgrid.com. Ce n'est pas la configuration du docker qui est compliquée (très bien expliquée là https://github.com/acmesh-official/acme.sh/wiki/notify ) C'est la configuration du compte sendgrid.com qui est un peu "pénible" car ils demandent pas mal d'infos (bon on rentre ce qu'on veut, d'accord) , et ensuite ils poussent fortement à utiliser la double authentification pour l'accès à son compte sendgrid.com (basée sur l'application Authy). En ce qui concerne la génération de l'API sendgrid.com, on peut restreindre au maximum les droits sur cet API pour n'utiliser que ce dont on a besoin, à savoir l'envoi de mail. Au niveau de l'API, on choisit "restricted access" Puis on choisit uniquement "Mail Send" Cdt Bruno78
  15. @Einsteinium, oui, je vais essayer de passer par sendgrid.com. Merci
  16. @unPixel a priori non, ou alors j'ai mal lu les explications (ce qui est parfaitement possible) https://github.com/acmesh-official/acme.sh/wiki/notify
  17. @Einsteinium bonjour, j'ai tenter d'activer sur les conteneurs Acme la notification par mail, mais la réponse est la suivante : /acme.sh # export MAIL_FROM="webmaster@ndd.tld" /acme.sh # export MAIL_TO="bruno78@ndd.tld" /acme.sh # acme.sh --set-notify --notify-level 2 --notify-hook mail [Fri Oct 23 07:08:32 UTC 2020] Set notify level to: 2 [Fri Oct 23 07:08:32 UTC 2020] Set notify hook to: mail [Fri Oct 23 07:08:32 UTC 2020] Sending via: mail Usage: _exists cmd [Fri Oct 23 07:08:32 UTC 2020] sendmail: can't connect to remote host (127.0.0.1): Connection refused [Fri Oct 23 07:08:32 UTC 2020] Error send message by mail_send [Fri Oct 23 07:08:32 UTC 2020] Set /root/.acme.sh/notify/mail.sh error. [Fri Oct 23 07:08:32 UTC 2020] Can not set notify hook to: mail /acme.sh # Je suppose qu'il y a un minimum de configuration supplémentaire à faire ? ou faut'il utiliser un service comme mailgun.com ? Merci Bruno78
  18. @stee, on ne refuse jamais un petit post explicatif et instructif .... 🙂 Cdt
  19. @stee, je ne connais Traefik. Peux-tu stp décrire (ou un schema rapide) ta configuration .....
  20. @oracle7, désolé, je n'avais pas vu la notification, mais entre temps tu as réglé ton problème de MIB pour les cameras. Pour le monitoring de la Freebox, on s'appuie sur un script Python qui lui va aller chercher, via l'api Freebox, les valeurs à récupérer. Donc dans le docker telegraf, on monte simplement un repertoire contenant le script Python, le fichier telegraf.conf, et enfin si besoin un fichier de log. @stee, comment est routé ton domaine toto.mondomaine.com ? Cdt Bruno78
  21. @Einsteinium bon ben voilà, chacun de mes 3 certificats LE Wildcard acme.sh sur api dns_ovh dans un docker acme.sh séparé .... 🙂 Une balade ! Merci, Bruno78
  22. Et le fichier user.conf.wordpress-permalink a bien été positionné au bon endroit ?
  23. @Einsteinium C'est à dire qu'une fois le certificat généré, pour le renouvellement, plus besoin des api renseignées dans Acme/account.conf ? toutes les infos necessaires sont dans les fichiers de conf du domaine Acme/ndd.tld/... ?
  24. @Einsteinium, @unPixel, ok, c'est bien les 2 solutions auxquelles j'avais pensé. Je crois que compte tenu de leur faible "encombrement" et consommation de ressources, et pour garder l'indépendance entre les différents domaines, je vais opter pour la solution "1 domaine = 1 docker". L'inconvenient, c'est plusieurs jeux de clés OVH , mais bon une fois que c'est fait .... Je fais ca et je vous dis .... . Merci, Bruno78
  25. Bonjour, ca ressemble furieusement à un problème de droit d'accès sur le repertoire wordpress pour le user http. Point à vérifier en priorité. Cdt, Bruno78 PS : un petit passage par la case présentation sera apprécié de la communauté, merci
×
×
  • 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.