Aller au contenu

Docker-Grafana : Questions diverses


oracle7

Messages recommandés

  • Réponses 62
  • Créé
  • Dernière réponse
Posté(e)

@MilesTEG1

Bonjour,

Oui, pas trop mal, le plus gros problème est qu'il n'y aucune données dynamiques à recueillir donc adieu les belles courbes de suivi d'évolution.

Par contre, énormément de données Statiques du coup pour l'instant cela fait un tableau de bord "pas très joli" 😛

 

 

Cordialement

oracle7😉

Posté(e)

Waouh ! Super @oracle7 Tu peux partager le fichier de réglages, j'aimerais mettre ça en place en province (sans le wifi que j'ai neutralisé car j'ai un Orbi50 qui fait le boulot à la place) ?

Posté(e)

@Lelolo

Bonjour,

Comme je le disais précédemment à @MilesTEG1, je travail encore dessus mais pas de soucis, dès qu'il sera un peu plus finalisé, je partagerais ici bien volontiers. Là les copies d'écran étaient juste un aperçu ...

D'ors et déjà, je peux dire qu'à la base l'extraction de données se fait depuis un script shell que je mettrais en cron pour automatiser la récupération périodique des données.

J'aurais bien aimer envoyer tout cela sous docker mais je ne suis pas sûr que ce soit faisable i.e. en gros piloter sous docker un script shell et utiliser le cron de docker. Mes petites connaissances ne sont pas à la hauteur pour faire cela. Mais je suis ouvert à toute aide dans ce  sens pour mener à bien ce complément de monitoring de nos NAS.

Cordialement

oracle7😉

 

Posté(e)

@MilesTEG1

Bonjour,

il y a 2 minutes, MilesTEG1 a dit :

Faudra faire un dépôt github pour le script

Pourquoi pas, mais moi aussi : çà je ne sais pas faire, et puis chaque chose en son temps ...😊

Pour l'instant, mon problème est d'afficher correctement les booléens. Certes on peut toujours convertir les données lors de l'extraction mais cela complexifie un peu le script et il faudrait supprimer et recréer tous les measurements concernés de la BD influxdb. On verra alors si jamais il n'y a pas d'autre solution plus simple qui se présente.

Cordialement

oracle7😉

 

Posté(e)
Il y a 18 heures, oracle7 a dit :

J'aurais bien aimer envoyer tout cela sous docker mais je ne suis pas sûr que ce soit faisable i.e. en gros piloter sous docker un script shell et utiliser le cron de docker.

Tu n'as pas plus vite fait de faire tourner une instance Telegraf indépendante avec un plugin d'acquisition inputs.exec ? 

Pour ton problème de value mapping, je pense que ça vient du titre de ta colonne, il y a une faute à "Dupleix négocié", vérifie que la correspondance est bonne.

Posté(e)

@.Shad.

Bonjour,

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

faire tourner une instance Telegraf indépendante avec un plugin d'acquisition inputs.exec

Ok pour l'instance Telegraf indépendante, çà, je devrais pouvoir faire.

Mais avec un plugin d'acquisition "inputs.exec", là désolé je ne vois pas et ne sais pas faire. Je viens de regarder la doc telegraf/exec : c'est très "light" à mon goût !

Malgré une recherche (peut-être mal) sur la toile, je n'ai pas trouvé non plus d'exemples d'application qui correspondent à mon besoin du moins qui me permette d'envoyer mes données collectées dans influxdb via telegraf.

Aujourd'hui je procède ainsi via un shell script :

  • Je fais une première requête curl sur la Livebox et je récupère un fichier "data.json" qui, en général est "assez complexe".
  • J'exploite ensuite ce fichier "data.json" en extrayant avec le parser jq, une à une les données qui m'intéressent que je stocke temporairement dans des variables individuelles et/ou des tableaux.
  • Enfin, après arrangement de ces données (conversions, calculs et transformations diverses) , j'écris ces variables et/ou éléments de tableaux dans un measurement de la BD influxdb avec une commande curl. J'en suis actuellement à une bonne dizaine de measurements plus ou moins grosses en nombres de champs.

Du coup, je ne comprend pas trop comment faire le lien entre mon shell script et le plugin exec de telegraf.

Si tu as des idées, je serais volontiers preneur 🤔 D'avance Merci.

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

Pour ton problème de value mapping, je pense que ça vient du titre de ta colonne, il y a une faute à "Dupleix négocié", vérifie que la correspondance est bonne

Je ne pense pas car le titre de la colonne n'est qu'un alias du champ. Alias au quel effectivement j'ai fais une faute d'orthographe.

Cordialement

oracle7😉

 

 

Posté(e)
il y a une heure, oracle7 a dit :

Mais avec un plugin d'acquisition "inputs.exec", là désolé je ne vois pas et ne sais pas faire. Je viens de regarder la doc telegraf/exec : c'est très "light" à mon goût !

Ca me semble assez clair, et tout à fait dans tes cordes :

https://github.com/influxdata/telegraf/tree/master/plugins/inputs/exec

En montant le volume du NAS où tu stockes ton script dans le conteneur :

...
volumes:
   - /volume1/dossier/du/script:/dossier/du/conteneur
...

Pour moi ça donnerait par exemple simplement ça :

[[inputs.exec]]
  commands = ["bash /dossier/du/conteneur/poll_livebox.sh"]
  timeout = "30s"
  name_suffix = "_livebox"
  data_format = "influx"

Non ? si pas bash, tester avec sh.

J'ai jamais utilisé hein, mais à la lecture ça me semble (peut-être faussement) trivial.

il y a une heure, oracle7 a dit :

Je ne pense pas car le titre de la colonne n'est qu'un alias du champ. Alias au quel effectivement j'ai fais une faute d'orthographe.

L'alias remplace le nom officiel chez moi, en tout cas si je définis des value mappings pour une colonne en utilisant son alias, ça fonctionne bien, si je me trompe dans l'alias, je tombe dans le même cas que toi, ce n'est pas pris en compte.

Posté(e)

@.Shad.

Bonjour,

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

Pour moi ça donnerait par exemple simplement ça :

C'est ce que j'avais compris à la vue de la doc, mais je devais me faire des noeuds au cerveau pensant qu'il y avait autre chose en plus à configurer. Finalement à ce niveau cela parait simple. Reste plus que la nouvelle instance telegraf ...

Merci encore de ta réponse.

Cordialement

oracle7😉

Posté(e)

@.Shad.

Bonjour,

Sur ton conseil, je viens donc d'installer une nouvelle instance telegraf et de lancer le conteneur. Jusque là çà va, cela marche.

Ce qui ne marche pas par contre c'est que telegraf n'arrive pas à lancer mon script. Le log me dit qu'il ne trouve pas mon shell script alors que je suis certain du chemin indiqué et de ses droits.

root@MonNAS:/volume1/docker/scripts_instal/livebox# docker logs -f telegraf_lb4
2021-02-03T16:44:10Z I! Starting Telegraf 1.17.2
2021-02-03T16:44:10Z I! Using config file: /etc/telegraf/telegraf.conf
2021-02-03T16:44:10Z I! Loaded inputs: exec
2021-02-03T16:44:10Z I! Loaded aggregators:
2021-02-03T16:44:10Z I! Loaded processors:
2021-02-03T16:44:10Z I! Loaded outputs: influxdb
2021-02-03T16:44:10Z I! Tags enabled: host=telegraf_lb4
2021-02-03T16:44:10Z I! [agent] Config: Interval:1h0m0s, Quiet:false, Hostname:"telegraf_lb4", Flush Interval:10s
2021-02-03T17:00:00Z E! [inputs.exec] Error in plugin: exec: exit status 127 for command '/bin/bash /volume1/docker/scripts_instal/livebox/livebox.sh': /bin/bash: /volume1/docker/scripts_instal/livebox/livebox.sh: No such file or directory

J'ai remplacer le shell "bash" par "sh". Le résultat est quasiment le même au détail près que "sh" est plus parlant dans le message d'erreur :


2021-02-03T20:00:00Z E! [inputs.exec] Error in plugin: exec: exit status 127 for command '/bin/sh /volume1/docker/scripts_instal/livebox/livebox.sh': /bin/sh: 0: Can't open /volume1/docker/scripts_instal/livebox/livebox.sh

J'ai essayé de mettre le user 'root' à la place de mon utilisateur 'administrateur' (PUID-PGID) dans le docker-compose mais cela ne change rien.

Voici mon fichier docker-compose.yml  :

Citation

version: "2.1"
services:

    telegraf_lb4:
        image: telegraf:latest
        container_name: telegraf_lb4
        hostname: telegraf_lb4
        environment:
            - TZ=Europe/Paris
            - PUID=1030
            - PGID=101
        labels:
            - "com.centurylinklabs.watchtower.enable=true"
        volumes:
            - "/volume1/docker/telegraf_lb4/telegraf.conf:/etc/telegraf/telegraf.conf:ro"
            - "/volume1/docker/scripts_instal/livebox:/volume1/docker/telegraf_lb4"
        mac_address: d2:ca:ab:cd:00:06
        networks:
            monitoring:
                ipv4_address: 172.20.0.6
        ports:
            - 9125:8125/udp
            - 9092:8092/udp
            - 9094:8094
        mem_limit: 256M
        restart: unless-stopped

networks:
    monitoring:
        external: true

A l'instar de @bruno78 dans son instance telegraf pour le monitoring de sa Freebox, j'ai aussi modifié les ports standards de telegraf. Bonne ou fausse bonne idée est-ce que ce serait-ce l'origine du blocage ? je ne saurais finalement dire.

Enfin à toutes fins utiles mon fichier "telegraf.conf" : --> telegraf.conf

Autant en direct, aucuns problèmes avec le shell script qui s'exécute bien et m'extrait parfaitement les données, autant avec telegraf cela bloque. 😩

J'ai dû raté un truc mais quoi ?

Aurais-tu des idées par hasard ?

Cordialement

oracle7😉

Posté(e)

Tu as besoin de changer les ports de Telegraf seulement si tu exposes Telegraf sur ton NAS, et ceci n'a d'intérêt que si un logiciel tiers est sensé envoyé des données vers Telegraf, ce qui n'est pas le cas ici, c'est Telegraf qui exécute le script.

Sinon c'est normal que ça ne marche pas, tu indiques à Telegraf ton chemin dans DSM, lui n'en a pas la moindre idée :

/volume1/docker/scripts_instal/livebox/livebox.sh

Ce qu'il connaît lui, c'est le dossier dans lequel tu lui as monté ces données-là, donc dans ton cas

/volume1/docker/telegraf_lb4

Je ne vois pas l'intérêt de créer une telle arborescence dans ton conteneur, met simplement dans ton docker-compose :

volumes:
   - /volume1/docker/scripts_instal/livebox:/opt/livebox/

Puis dans le fichier telegraf.conf :

[[inputs.exec]]
  # Commands array
  commands = [
    "/bin/bash /opt/livebox/livebox.sh"
  ]
  #
  # Timeout for each command to complete.
  timeout = "5s"
  #
  # measurement name suffix (for separating different commands)
  name_suffix = "_lb4"
  #
  # Data format to consume.
  # Each data format has its own unique set of configuration options, read
  # more about them here:
  # https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
  data_format = "influx"

Et assure-toi d'avoir ajouté le shebang en entête de ton script.

Posté(e)

Bonjour,

@.Shad.

Merci de ta réponse. Il y a cependant deux points dans celle-ci où je ne comprends plus :

1 -

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

Tu as besoin de changer les ports de Telegraf seulement si tu exposes Telegraf sur ton NAS, et ceci n'a d'intérêt que si un logiciel tiers est sensé envoyé des données vers Telegraf, ce qui n'est pas le cas ici, c'est Telegraf qui exécute le script.

OK, j'entends bien mais lors de mes essais de débuggage, j'ai rétabli les ports standards de telegrah et j'ai reçu ce message d'erreur à la création du conteneur (pour mémoire, j'ai déjà une instance telegraf nommée "telegraf" active pour le monitoring du NAS) :

root@MonNAS:/volume1/docker/scripts_instal/telegraf_lb4# docker-compose up -d
Creating telegraf_lb4 ... error

ERROR: for telegraf_lb4  Cannot start service telegraf_lb4: driver failed programming external connectivity on endpoint telegraf_lb4 (9a60abc4139ead30f0c5a604f90c4ebe6e3986d9d3c527d1894a5da718ab96a0): Bind for 0.0.0.0:8125 failed: port is already allocated

ERROR: for telegraf_lb4  Cannot start service telegraf_lb4: driver failed programming external connectivity on endpoint telegraf_lb4 (9a60abc4139ead30f0c5a604f90c4ebe6e3986d9d3c527d1894a5da718ab96a0): Bind for 0.0.0.0:8125 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.

Du coup, cela m'a conforté dans ma copie inspirée par le docker-compose de @bruno78 pour le monitoring de sa Freebox et j'ai donc rétablis ce changement de ports qui fait que le conteneur télégraf se crée bien avec cela. Plus d'interférence sur les ports !

2 - Initialement tu me dis :

Le 31/01/2021 à 13:00, .Shad. a dit :

En montant le volume du NAS où tu stockes ton script dans le conteneur :




...
volumes:
   - /volume1/dossier/du/script:/dossier/du/conteneur
...

En suivant ton conseil, j'ai donc traduit cela en :

...
volumes:
	- "/volume1/docker/scripts_instal/livebox:/volume1/docker/telegraf_lb4"
...

et maintenant tu me dis :

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

Je ne vois pas l'intérêt de créer une telle arborescence dans ton conteneur, met simplement dans ton docker-compose :




volumes:
   - /volume1/docker/scripts_instal/livebox:/opt/livebox/

"/opt/livebox" n'est pas le dossier du conteneur. Alors :question::question::question: J'ai encore raté un truc :question:

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

Et assure-toi d'avoir ajouté le shebang en entête de ton script.

Pas de soucis je l'indique systématiquement dans tous mes shell scripts.

@MilesTEG1

Il y a 8 heures, MilesTEG1 a dit :

J'ajouterai cette question : est-ce normal le read-only sur le dossier de conf de telegraf ?

Étant donné que c'est le fichier de configuration de telegraf, ce fichier n'a pas vocation a être modifié, donc le ReadOnly ne me choque pas, je me trompe ?

 

PS : Je viens de recréer et relancer le conteneur telegraf_lb4 après modifs du docker-compose et du telegraf.conf comme indiqué.

Cela ne semble pas marcher. Voilà le log :

root@MonNAS:/volume1/docker/scripts_instal/telegraf_lb4# docker-compose down
Stopping telegraf_lb4 ... done
Removing telegraf_lb4 ... done
Network monitoring is external, skipping
root@MonNAS:/volume1/docker/scripts_instal/telegraf_lb4# docker-compose up -d
Creating telegraf_lb4 ... done
root@MonNAS:/volume1/docker/scripts_instal/telegraf_lb4# docker logs -f telegraf_lb4
2021-02-04T16:08:45Z I! Starting Telegraf 1.17.2
2021-02-04T16:08:45Z I! Using config file: /etc/telegraf/telegraf.conf
2021-02-04T16:08:45Z I! Loaded inputs: cpu disk diskio kernel mem processes swap system
2021-02-04T16:08:45Z I! Loaded aggregators:
2021-02-04T16:08:45Z I! Loaded processors:
2021-02-04T16:08:45Z I! Loaded outputs: influxdb
2021-02-04T16:08:45Z I! Tags enabled: host=telegraf_lb4
2021-02-04T16:08:45Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"telegraf_lb4", Flush Interval:10s
2021-02-04T16:08:45Z W! [outputs.influxdb] When writing to [http://localhost:8086]: database "telegraf" creation failed: Post "http://localhost:8086/query": dial tcp 127.0.0.1:8086: connect: connection refused
2021-02-04T16:08:55Z E! [outputs.influxdb] When writing to [http://localhost:8086]: failed doing req: Post "http://localhost:8086/write?db=telegraf": dial tcp 127.0.0.1:8086: connect: connection refused
2021-02-04T16:08:55Z E! [agent] Error writing to outputs.influxdb: could not write any address
...
etc ...

telegraf part dans un "délire" : il veux créer une database telegraf ??? Il cherche à discuter avec localhost ???? je ne comprends pas ...

Bizarre tout cela ? Je m'y perd !!!!

EDIT1 :

Je viens de voir cela. Aurait-ce un lien avec mon problème ? Ton avis @.Shad. STP ?

EDIT2 :

En regardant le log, je vois aussi qu'il ne semble pas utiliser le bon fichier de config :

root@Maeva56:/volume1/docker/scripts_instal/telegraf_lb4# docker logs -f telegraf_lb4
2021-02-04T16:48:34Z I! Starting Telegraf 1.17.2
2021-02-04T16:48:34Z I! Using config file: /etc/telegraf/telegraf.conf

alors que le docker-compose spécifie ceci :

        volumes:
            - "/volume1/docker/telegraf_lb4/telegraf_lb4.conf:/etc/telegraf/telegraf_lb4.conf:ro"
            - "/volume1/docker/scripts_instal/livebox:/opt/livebox/"

Encore une fois : bizarre ?????

Cordialement

oracle7😉

Posté(e)
à l’instant, oracle7 a dit :

OK, j'entends bien mais lors de mes essais de débuggage, j'ai rétabli les ports standards de telegrah et j'ai reçu ce message d'erreur à la création du conteneur (pour mémoire, j'ai déjà une instance telegraf nommée "telegraf" active pour le monitoring du NAS) :

Tu me lis de travers. Un port exposé n'est utile que si on a besoin d'accéder à l'application par ce dit port, dans le sens entrant. Dans ton cas c'est Telegraf qui va chercher les données dont il a besoin, pas l'inverse, tu n'envoies rien du tout sur Telegraf. Dans le sens sortant, Telegraf peut bien utiliser le port qu'il veut. Donc si tu veux exposer les ports de Telegraf premier du nom sur le NAS, libre à toi, explique-moi juste pourquoi tu as besoin de le faire. 😉

Même question pour le conteneur Telegraf pour la LB4.

Pour la question du volume, je pense que tu n'as pas compris comment fonctionne un volume.
Quand tu écris :

/volume1/docker/livebox:/opt/livebox

Ca veut dire que le dossier /opt/livebox/ dans le conteneur sera lié au dossier /volume1/docker/livebox.
Si je me connecte dans le conteneur Telegraf, que je fais :

touch /opt/livebox/test1.txt

Je retrouverai sur le NAS un fichier test1.txt vide dans /volume1/docker/livebox.
Depuis l'intérieur du conteneur, le chemin /volume1/... n'existe pas et n'a pas de sens. Donc je reprends ce que tu proposais dans ton premier message :

volumes:
   - "/volume1/docker/telegraf_lb4/telegraf.conf:/etc/telegraf/telegraf.conf:ro"
   - "/volume1/docker/scripts_instal/livebox:/volume1/docker/telegraf_lb4"

et :

2021-02-03T20:00:00Z E! [inputs.exec] Error in plugin: exec: exit status 127 for command '/bin/sh /volume1/docker/scripts_instal/livebox/livebox.sh': /bin/sh: 0: Can't open /volume1/docker/scripts_instal/livebox/livebox.sh

On voit bien que le conteneur essayait de joindre le chemin qui existe sur ton hôte mais pas dans ton conteneur.
C'est impossible que ça marche.

Pour la dernière erreur, tu n'as pas re-commenté la partie output de InfluxDB par hasard ?

Posté(e)

@.Shad.

Bonjour,

Désolé de t'ennuyer encore.

Je suis un "peu dur à la détente" aujourd'hui, mais j'ai enfin compris mon erreur à propos du dossier du conteneur.

J'avais cru comprendre initialement que c'était le dossier de définition/création du conteneur sur le NAS soit "/volume1/docker/telegrapg_lb4" alors que toi dans ton explication tu parlais du dossier DANS le conteneur lui même et dans le quel on monte le dossier du NAS. Grosse nuance en effet !!!

Maintenant dernier truc que je ne suis pas sûr de bien comprendre quand tu dis :

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

Pour la dernière erreur, tu n'as pas re-commenté la partie output de InfluxDB par hasard ?

Est-ce qu'il faut que je commente pour l'annuler toute la partie "[[outputs.influxdb]]" du fichier telegraf.conf puisque ce n'est plus telegraf qui va alimenter la database livebox4_db mais mon shell script. C'est bien cela, car cette partie devient inutile, tu confirmes ?

EDIT : J'ai donc corriger mon docker-compose pour y mettre ceci :

        volumes:
            - "/volume1/docker/telegraf_lb4/telegraf_lb4.conf:/etc/telegraf/telegraf_lb4.conf:ro"
            - "/volume1/docker/scripts_instal/livebox:/opt/livebox/"

J'ai recréer le conteneur telegraf_lb4 mais manifestement il ne prend pas en compte mon fichier telegraf_lb4.conf (au passage, dans le quel j'ai neutraliser la partie [[inputs.influxdb]]). Il utilise systématiquement le fichier telegraf.conf de l'instance dédiée au monitoring du NAS.

Là je suis complètement perdu, au secours !

Cordialement

oracle7😉

Posté(e)
Il y a 12 heures, oracle7 a dit :

Est-ce qu'il faut que je commente pour l'annuler toute la partie "[[outputs.influxdb]]" du fichier telegraf.conf puisque ce n'est plus telegraf qui va alimenter la database livebox4_db mais mon shell script. C'est bien cela, car cette partie devient inutile, tu confirmes ?

Non il faut juste configurer la partie output de InfluxDB comme tu l'as fait pour le conteneur Telegraf premier du nom.
Depuis le conteneur, tu peux faire un curl vers l'adresse de ton conteneur InfluxDB pour vérifier que ça marche, si c'est ok ça doit renvoyer une erreur 404.
C'est bien Telegraf qui envoie les données à InfluxDB, ça a l'avantage par rapport à ton script de ne pas avoir à construire les URL et le reste.
Rien qu'avec data_format égal à "influx", il peut envoyer les données que ton script recueille.

Il y a 12 heures, oracle7 a dit :

"/volume1/docker/telegraf_lb4/telegraf_lb4.conf:/etc/telegraf/telegraf_lb4.conf:ro"

Telegraf s'attend à trouver un fichier telegraf.conf dans le conteneur, pas telegraf_lb4.conf, du coup il en utilise un par défaut je pense.
Si tu mets :

"/volume1/docker/telegraf_lb4/telegraf_lb4.conf:/etc/telegraf/telegraf.conf:ro"

Ca devrait mieux marcher.

Il y a 12 heures, oracle7 a dit :

Il utilise systématiquement le fichier telegraf.conf de l'instance dédiée au monitoring du NAS.

C'est impossible, vu que tu as fait un conteneur différent, et que tu n'as pas monté le telegraf.conf dédié au NAS dans ce conteneur.

Posté(e)

@.Shad.

Bonjour,

Merci de ta patience à mon égard.

il y a une heure, .Shad. a dit :

Telegraf s'attend à trouver un fichier telegraf.conf dans le conteneur, pas telegraf_lb4.conf, du coup il en utilise un par défaut je pense.
Si tu mets :


"/volume1/docker/telegraf_lb4/telegraf_lb4.conf:/etc/telegraf/telegraf.conf:ro"

Ca devrait mieux marcher.

Effectivement çà marche beaucoup mieux 😀. Le bon nommage du fichier est important dans ce cas. J'avais juste cru qu'on pouvait le renommer, bah non il ne faut pas ! Encore une chose d'apprise aujourd'hui.

il y a une heure, .Shad. a dit :

C'est impossible, vu que tu as fait un conteneur différent, et que tu n'as pas monté le telegraf.conf dédié au NAS dans ce conteneur.

Encore une fois tu as raison, mais encore eut-il fallu que je regarde à l'intérieur du bon conteneur soit "telegraf_lb4" et pas "telegraf" tout cours comme je le faisais malheureusement. Ce qui explique que je croyais qu'il n'utilisait pas le bon fichier "telegraf.conf". Heureusement une bonne nuit de repos et j'ai pu m'apercevoir de mon erreur à l'appui de ta réponse. Merci.

Donc maintenant c'est bon et l'instance "telegraf_lb4" semble fonctionner correctement.

root@MonNAS:/volume1/docker/scripts_instal/telegraf_lb4# docker logs -f telegraf_lb4
2021-02-05T09:53:03Z I! Starting Telegraf 1.17.2
2021-02-05T09:53:03Z I! Using config file: /etc/telegraf/telegraf.conf
2021-02-05T09:53:03Z I! Loaded inputs: exec
2021-02-05T09:53:03Z I! Loaded aggregators:
2021-02-05T09:53:03Z I! Loaded processors:
2021-02-05T09:53:03Z I! Loaded outputs: influxdb
2021-02-05T09:53:03Z I! Tags enabled: host=telegraf_lb4
2021-02-05T09:53:03Z I! [agent] Config: Interval:1h0m0s, Quiet:false, Hostname:"telegraf_lb4", Flush Interval:10s
2021-02-05T09:53:03Z D! [agent] Initializing plugins
2021-02-05T09:53:03Z D! [agent] Connecting outputs
2021-02-05T09:53:03Z D! [agent] Attempting connection to [outputs.influxdb]
2021-02-05T09:53:03Z D! [agent] Successfully connected to outputs.influxdb
2021-02-05T09:53:03Z D! [agent] Starting service inputs
2021-02-05T09:53:13Z D! [outputs.influxdb] Buffer fullness: 0 / 10000 metrics
2021-02-05T09:53:23Z D! [outputs.influxdb] Buffer fullness: 0 / 10000 metrics
2021-02-05T09:53:33Z D! [outputs.influxdb] Buffer fullness: 0 / 10000 metrics
2021-02-05T09:53:43Z D! [outputs.influxdb] Buffer fullness: 0 / 10000 metrics

 

Dernier point à éclaircir : la transmission des données recueillies par telegraf_lb4 suite à l'exécution de mon shell script, à influxdb.

Donc, pour l'instant le shell script, après extraction  et manipulations diverses des données, envoie celles-ci à la database influxdb via une commande curl d'écriture.

Pour mémoire, avant chaque écriture avec "curl" les données sont dans des variables individuelles et/ou des tableaux et sont regroupées pour constituer des enregistrements simples ou multiples dans le measurement concerné.

Donc si je te suis bien, il faudrait supprimer cette commande "curl" d'écriture directe dans la database pour que ce soit telegraf qui envoie lui même les données.

OK sur le principe, mais a priori je ne vois pas comment faire. Il faut que je fasse simplement un "echo" de chaque donnée sur la sortie stdout ?

Ce serait aussi simple que cela ? Tu confirmes ? ou il faut procéder autrement et là je séche ...

Cordialement

oracle7😉

Posté(e)

Là je n'ai aucune idée, il faudrait chercher des exemples sur Google.
Je pense qu'il s'agit d'avoir simplement un measurement avec sa valeur, c'est ce que fait inputs.snmp par exemple, à chaque oid il récupère la valeur associée.
A mon avis @bruno78 aura plus de chance de t'aider.

Mais je pense que ça doit être assez trivial.

Posté(e)

@MilesTEG1

Bonjour,

Question idiote s'il en est ...

J'ai un champ qui n'est pas un booléen mais qui se comporte un peu comme tel. Il a selon, la valeur "Enabled" ou "Disabled".

Comment fais-tu dans grafana pour lui affecter un couleur de fond variant selon la dite valeur, par exemple Vert pour Enabled et rouge pour Disbled ?

Je retourne le problème dans tous les sens je ne trouve pas. L'usage des "thresshold" ne fonctionne pas dans ce type de cas car ils n'acceptent que des valeurs numériques en regard des couleurs que l'on choisi.

Merci de ta réponse.

Cordialement

oracle7😉

Posté(e)

@MilesTEG1

Bonjour,

Bon, j'en conclue que tu as le même problème que moi.

Par exemple dans le champ "Etat" pour l'onduleur, il peut prendre trois valeurs différentes "OL CHRG, LB CHRG ou SD CHRG".

image.png.878d71b43c40082f72850c16ec24a423.png

Accessoirement, ici "OL CHRG" est converti en "En ligne" par mapping values.

Eh bien via threshold essaies de mettre une couleur pour chacune de ces valeurs litérales, tu verras que cela ne marche pas, il affiche toujours avec la couleur soit de base.

Encore une fois Merci grafana !!!😥

Finalement, pour la Livebox comme je maitrise les données recueillies, je dois pour toutes celles qui sont à valeurs multiples les convertir en numériques (0, 1, 2, ...) et les traduires avec mapping values en litéral et enfin définir les couleurs correspondantes pour 0, 1, 2 ,... dans le thressold. Et là j'ai la bonne couleur pour la valeur liérale.

C'est le b...l mon adjudant .... Enfin surtout long et fastidieux pour chacun de ces champs à valeurs multiples dont on veux avoir une couleur spécifique pour chacune de ces valeurs lors de l'affichage.

Cordialement

oracle7😉

Posté(e)

@MilesTEG1,@oracle7, bonjour,

oui Grafana se base sur le threshold, donc des valeurs numériques. Dans ce cas de figure, je n'ai pas trouvé de moyen de modifier la couleur de fonds si la valeur remontée n'est pas numérique.

Bruno78

Le 05/02/2021 à 11:28, oracle7 a dit :

Donc si je te suis bien, il faudrait supprimer cette commande "curl" d'écriture directe dans la database pour que ce soit telegraf qui envoie lui même les données.

OK sur le principe, mais a priori je ne vois pas comment faire. Il faut que je fasse simplement un "echo" de chaque donnée sur la sortie stdout ?

Ce serait aussi simple que cela ? Tu confirmes ? ou il faut procéder autrement et là je séche ...

Bonjour @oracle7,

oui je te confirme qu'il suffit, si tes données sont bien formatées, de faire une simple sortie vers le STDOUT. C'est ce que l'on fait dans le script de monitoring de la Freebox.

Cdt,

Bruno78

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • 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.