Aller au contenu

[TUTO] Monitoring réseau (Telegraf + InfluxDB 1.8 + Grafana)


.Shad.

Messages recommandés

@.Shad. Purée, en lisant ton message (je marchais dans la rue pour aller chez le kiné), j'ai cru que c'était moi qui avait le 666 sur docker.sock...

Mais ouf, moi c'est plutôt 660, non ?

srw-rw---- 1 root Docker-Users 0 Jan 11 10:06 /var/run/docker.sock

Est-ce que je dois virer le groupe Docker ?
Ou bien passer sur du chmod 640 plutôt que 660 ? (merci au calculateur https://chmod-calculator.com/ dont je crois @oracle7 avait posté un lien quelque part 🙂 )

Lien vers le commentaire
Partager sur d’autres sites

Hello,

Watchtower m'a fait une MAJ de telegraf 1.20.4.
Et je vois ça dans les logs ce matin :

2022-01-28T04:03:21Z I! Starting Telegraf 1.20.4
2022-01-28T04:03:21Z I! Using config file: /etc/telegraf/telegraf.conf
2022-01-28T04:03:21Z I! Loaded inputs: cpu disk diskio docker kernel mem processes snmp swap system
2022-01-28T04:03:21Z I! Loaded aggregators: 
2022-01-28T04:03:21Z I! Loaded processors: 
2022-01-28T04:03:21Z I! Loaded outputs: influxdb
2022-01-28T04:03:21Z I! Tags enabled: host=monitoring_telegraf
2022-01-28T04:03:21Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"monitoring_telegraf", Flush Interval:10s
2022-01-28T04:03:31Z E! [outputs.influxdb] When writing to [http://monitoring_influxdb:8086]: failed doing req: Post "http://monitoring_influxdb:8086/write?consistency=any&db=nas_telegraf": dial tcp 172.20.0.2:8086: connect: connection refused
2022-01-28T04:03:31Z E! [agent] Error writing to outputs.influxdb: could not write any address
2022-01-28T04:03:35Z E! [inputs.docker] Error in plugin: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.21/info": context deadline exceeded
2022-01-28T04:03:41Z E! [outputs.influxdb] When writing to [http://monitoring_influxdb:8086]: failed doing req: Post "http://monitoring_influxdb:8086/write?consistency=any&db=nas_telegraf": dial tcp 172.20.0.2:8086: connect: connection refused
2022-01-28T04:03:41Z E! [agent] Error writing to outputs.influxdb: could not write any address
2022-01-28T04:03:51Z E! [outputs.influxdb] When writing to [http://monitoring_influxdb:8086]: failed doing req: Post "http://monitoring_influxdb:8086/write?consistency=any&db=nas_telegraf": dial tcp 172.20.0.2:8086: connect: connection refused
2022-01-28T04:03:51Z E! [agent] Error writing to outputs.influxdb: could not write any address
2022-01-28T04:04:01Z E! [outputs.influxdb] When writing to [http://monitoring_influxdb:8086]: failed doing req: Post "http://monitoring_influxdb:8086/write?consistency=any&db=nas_telegraf": dial tcp 172.20.0.2:8086: connect: connection refused
2022-01-28T04:04:01Z E! [agent] Error writing to outputs.influxdb: could not write any address
2022-01-28T04:04:11Z E! [outputs.influxdb] When writing to [http://monitoring_influxdb:8086]: failed doing req: Post "http://monitoring_influxdb:8086/write?consistency=any&db=nas_telegraf": dial tcp 172.20.0.2:8086: connect: connection refused
2022-01-28T04:04:11Z E! [agent] Error writing to outputs.influxdb: could not write any address
2022-01-28T04:04:21Z E! [outputs.influxdb] When writing to [http://monitoring_influxdb:8086]: failed doing req: Post "http://monitoring_influxdb:8086/write?consistency=any&db=nas_telegraf": dial tcp 172.20.0.2:8086: connect: connection refused
2022-01-28T04:04:21Z E! [agent] Error writing to outputs.influxdb: could not write any address

Mais chose étrange, Grafana semble avoir accès aux données, et m'affiche bien les valeurs :

PXbzS3A.png

Du coup je ne comprends pas l'erreur qui a lieu avec telegraf...
 

Edit Hmm alors en fait, les erreurs dates d'avant la MAJ 😮 

Et en rebootant les conteneurs telegraf, je ne vois plus ces erreurs...

donc fausse alerte XD

Lien vers le commentaire
Partager sur d’autres sites

Il y a 4 heures, MilesTEG1 a dit :

Watchtower m'a fait une MAJ de telegraf 1.20.4.

Mais 1.20.4 c'est la version sur laquelle on est resté bloqué. Au delà grafana bug...à moins que le pb soit corrigé. En tout cas c'est la version que j'ai dans mes containers. Comment veux-tu avoir une MAJ de cette version ? Y'a que Synology pour faire des MAJ avec le même numéro de version 😉

Lien vers le commentaire
Partager sur d’autres sites

Tu m'a mal compris @oracle7 (ou bien je me suis mal fait comprendre).

Je n'ai pas eu de mise à jour de telegraf car mes docker-compose sont bloqué sur 1.20.4 au lieu de latest car j'avais compris que 1.21 boguait ou faisait boguer. Je m'étonnait simplement que @MilesTEG1 ai pu avoir une MAJ de la version 1.20.4 puisque j'avais compris que lui aussi étaient bloqué avec cette version. D'où mon commentaire :

il y a 29 minutes, Jeff777 a dit :

Y'a que Synology pour faire des MAJ avec le même numéro de version 

Maintenant si les dashboards fonctionnent avec 1.21.2 c'est une bonne nouvelle. Tu confirmes?

Le 06/01/2022 à 09:41, .Shad. a dit :

J'ai testé la 1.21.2 toute fraîche, pour moi ça ne fonctionne toujours pas. Je reste en 1.20.4 en attendant.

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 41 minutes, Jeff777 a dit :

Maintenant si les dashboards fonctionnent avec 1.21.2 c'est une bonne nouvelle. Tu confirmes?

Attention, @oracle7n'a toujours pas migré sur DSM7 ! 

Sinon, en effet j'ia bloqué la version 1.20.4 dans mon docker-compose.yml 🙂

Et j'ai bien eu une MAJ ce matin... du coup je ne sais pas pourquoi vu qu'il paraitrait logique que cette version ne soit plus suivi au niveau des MAJ, non ??

Lien vers le commentaire
Partager sur d’autres sites

Bonjour, @MilesTEG1 @oracle7

Effectivement, c'était cette nuit ma MàJ hebdomadaire et, non seulement telegraf 1.20.4 a été mis à jour, mais également influxdb 1.8 !!

Sinon, rien d'anormal à signaler dans les monitorings.

Bonne journée

Capture.jpg

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777

Bonjour,

J'ai peur 😟 (non je déconne ....) NON pas avant la v7.1 et en plus toutes les applications autour n'ont pas été mises à jour (cf DS Audio par ex). Donc, tant que cela marche je préfère rester prudent et ne pas avoir à corriger des anomalies qui n'en sont pas à cause d'un contrôle qualité insuffisant ...

Et puis je ne suis pas joueur, ni geek non plus 🤪🤣 je laisse cela aux p'tits djeun's ...😝

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777

Bonjour,

Pourquoi tu le devrais ? On a tous les deux certes l'age de nos artères mais notre esprit reste vif et affuté sans être fou fou comme un chiot .... enfin j'ose l'espérer 🤣

Bon là on digresse ...

Cordialement

oracle7😉

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

  • 3 semaines après...

Hello tout le monde.

Etant sous dsm7 avec un DS918+, je cherchais a monitorer mon NAS et Docker.

@.Shad. Merci pour ton tuto. J'ai essayé... mais beaucoup d'erreur avec la particularité de ta configuration des UserGroups.

Je me suis mis au Docker il y à 2-3 mois donc je suis pas encore au top, mais du coup j'ai voulus me lancer dans l'aventure.

A l'instant T, j'ai dockerisé Influxdb 2.1.1 et telegraf:latest.

Ce que je n'ai pas fait :

- Activation de SNMP

- Créer un User ou USERGROUP telegraf

- Changer les droits de docker.sock

Ce que j'ai fait :

- Changer les permissions des dossiers influxdb et telegraf utilisé par mes containers

- Fait mes propres dockercompose (et tu as été une source d'inspiration).

 

La je m'attaque à Grafana quand j'ai un peu de temps (maintenant que je collect toutes les data du server/docker).

 

Juste pour info une partie de mon fichier telegraf.conf pour la remonté sans SNMP (attention pour influxdb 2.1.1 !!):

# Configuration for telegraf agent
[agent]
  ## Default data collection interval for all inputs
  interval = "10s"
  ## Rounds collection interval to 'interval'
  ## ie, if interval="10s" then always collect on :00, :10, :20, etc.
  round_interval = true

  ## Telegraf will send metrics to outputs in batches of at most
  ## metric_batch_size metrics.
  ## This controls the size of writes that Telegraf sends to output plugins.
  metric_batch_size = 1000

  ## Maximum number of unwritten metrics per output.  Increasing this value
  ## allows for longer periods of output downtime without dropping metrics at the
  ## cost of higher maximum memory usage.
  metric_buffer_limit = 10000

  ## Collection jitter is used to jitter the collection by a random amount.
  ## Each plugin will sleep for a random time within jitter before collecting.
  ## This can be used to avoid many plugins querying things like sysfs at the
  ## same time, which can have a measurable effect on the system.
  collection_jitter = "0s"

  ## Default flushing interval for all outputs. Maximum flush_interval will be
  ## flush_interval + flush_jitter
  flush_interval = "10s"
  ## Jitter the flush interval by a random amount. This is primarily to avoid
  ## large write spikes for users running a large number of telegraf instances.
  ## ie, a jitter of 5s and interval 10s means flushes will happen every 10-15s
  flush_jitter = "0s"

  ## By default or when set to "0s", precision will be set to the same
  ## timestamp order as the collection interval, with the maximum being 1s.
  ##   ie, when interval = "10s", precision will be "1s"
  ##       when interval = "250ms", precision will be "1ms"
  ## Precision will NOT be used for service inputs. It is up to each individual
  ## service input to set the timestamp at the appropriate precision.
  ## Valid time units are "ns", "us" (or "µs"), "ms", "s".
  precision = ""

  ## Log at debug level.
  # debug = false
  ## Log only error level messages.
  # quiet = false

  ## Log target controls the destination for logs and can be one of "file",
  ## "stderr" or, on Windows, "eventlog".  When set to "file", the output file
  ## is determined by the "logfile" setting.
  # logtarget = "file"

  ## Name of the file to be logged to when using the "file" logtarget.  If set to
  ## the empty string then logs are written to stderr.
  # logfile = ""

  ## The logfile will be rotated after the time interval specified.  When set
  ## to 0 no time based rotation is performed.  Logs are rotated only when
  ## written to, if there is no log activity rotation may be delayed.
  # logfile_rotation_interval = "0d"

  ## The logfile will be rotated when it becomes larger than the specified
  ## size.  When set to 0 no size based rotation is performed.
  # logfile_rotation_max_size = "0MB"

  ## Maximum number of rotated archives to keep, any older logs are deleted.
  ## If set to -1, no archives are removed.
  # logfile_rotation_max_archives = 5

  ## Pick a timezone to use when logging or type 'local' for local time.
  ## Example: America/Chicago
  # log_with_timezone = ""

  ## Override default hostname, if empty use os.Hostname()
  hostname = ""
  ## If set to true, do no set the "host" tag in the telegraf agent.
  omit_hostname = false
[[outputs.influxdb_v2]]
  ## The URLs of the InfluxDB cluster nodes.
  ##
  ## Multiple URLs can be specified for a single cluster, only ONE of the
  ## urls will be written to each interval.
  ##   ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
  urls = ["http://192.168.1.xxx:9999"]

  ## Token for authentication.
  token = "oiqhsx9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="

  ## Organization is the name of the organization you wish to write to; must exist.
  organization = "d4xxxxxxxxxxxxxx"

  ## Destination bucket to write into.
  bucket = "telegraf_server"

  ## The value of this tag will be used to determine the bucket.  If this
  ## tag is not set the 'bucket' option is used as the default.
  # bucket_tag = ""

  ## If true, the bucket tag will not be added to the metric.
  # exclude_bucket_tag = false

  ## Timeout for HTTP messages.
  # timeout = "5s"

  ## Additional HTTP headers
  # http_headers = {"X-Special-Header" = "Special-Value"}

  ## HTTP Proxy override, if unset values the standard proxy environment
  ## variables are consulted to determine which proxy, if any, should be used.
  # http_proxy = "http://corporate.proxy:3128"

  ## HTTP User-Agent
  # user_agent = "telegraf"

  ## Content-Encoding for write request body, can be set to "gzip" to
  ## compress body or "identity" to apply no encoding.
  # content_encoding = "gzip"

  ## Enable or disable uint support for writing uints influxdb 2.0.
  # influx_uint_support = false

  ## Optional TLS Config for use on HTTP connections.
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  ## Use TLS but skip chain & host verification
  #insecure_skip_verify = false
[[inputs.cpu]]
  ## Whether to report per-cpu stats or not
  percpu = true
  ## Whether to report total system cpu stats or not
  totalcpu = true
  ## If true, collect raw CPU time metrics
  collect_cpu_time = false
  ## If true, compute and report the sum of all non-idle CPU states
  report_active = false
[[inputs.disk]]
  ## By default stats will be gathered for all mount points.
  ## Set mount_points will restrict the stats to only the specified mount points.
  # mount_points = ["/"]
  ## Ignore mount points by filesystem type.
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
  ## By default, telegraf will gather stats for all devices including
  ## disk partitions.
  ## Setting devices will restrict the stats to the specified devices.
  # devices = ["sda", "sdb", "vd*"]
  ## Uncomment the following line if you need disk serial numbers.
  # skip_serial_number = false
  #
  ## On systems which support it, device metadata can be added in the form of
  ## tags.
  ## Currently only Linux is supported via udev properties. You can view
  ## available properties for a device by running:
  ## 'udevadm info -q property -n /dev/sda'
  ## Note: Most, but not all, udev properties can be accessed this way. Properties
  ## that are currently inaccessible include DEVTYPE, DEVNAME, and DEVPATH.
  # device_tags = ["ID_FS_TYPE", "ID_FS_USAGE"]
  #
  ## Using the same metadata source as device_tags, you can also customize the
  ## name of the device via templates.
  ## The 'name_templates' parameter is a list of templates to try and apply to
  ## the device. The template may contain variables in the form of '$PROPERTY' or
  ## '${PROPERTY}'. The first template which does not contain any variables not
  ## present for the device is used as the device name tag.
  ## The typical use case is for LVM volumes, to get the VG/LV name instead of
  ## the near-meaningless DM-0 name.
  # name_templates = ["$ID_FS_LABEL","$DM_VG_NAME/$DM_LV_NAME"]
[[inputs.docker]]
  ## Docker Endpoint
  ##   To use TCP, set endpoint = "tcp://[ip]:[port]"
  ##   To use environment variables (ie, docker-machine), set endpoint = "ENV"
  endpoint = "unix:///var/run/docker.sock"
  #
  ## Set to true to collect Swarm metrics(desired_replicas, running_replicas)
  gather_services = false
  #
  ## Only collect metrics for these containers, collect all if empty
  container_names = []
  #
  ## Set the source tag for the metrics to the container ID hostname, eg first 12 chars
  source_tag = false
  #
  ## Containers to include and exclude. Globs accepted.
  ## Note that an empty array for both will include all containers
  container_name_include = []
  container_name_exclude = []
  #
  ## Container states to include and exclude. Globs accepted.
  ## When empty only containers in the "running" state will be captured.
  ## example: container_state_include = ["created", "restarting", "running", "removing", "paused", "exited", "dead"]
  ## example: container_state_exclude = ["created", "restarting", "running", "removing", "paused", "exited", "dead"]
  # container_state_include = []
  # container_state_exclude = []
  #
  ## Timeout for docker list, info, and stats commands
  timeout = "5s"
  #
  ## Whether to report for each container per-device blkio (8:0, 8:1...),
  ## network (eth0, eth1, ...) and cpu (cpu0, cpu1, ...) stats or not.
  ## Usage of this setting is discouraged since it will be deprecated in favor of 'perdevice_include'.
  ## Default value is 'true' for backwards compatibility, please set it to 'false' so that 'perdevice_include' setting
  ## is honored.
  perdevice = true
  #
  ## Specifies for which classes a per-device metric should be issued
  ## Possible values are 'cpu' (cpu0, cpu1, ...), 'blkio' (8:0, 8:1, ...) and 'network' (eth0, eth1, ...)
  ## Please note that this setting has no effect if 'perdevice' is set to 'true'
  # perdevice_include = ["cpu"]
  #
  ## Whether to report for each container total blkio and network stats or not.
  ## Usage of this setting is discouraged since it will be deprecated in favor of 'total_include'.
  ## Default value is 'false' for backwards compatibility, please set it to 'true' so that 'total_include' setting
  ## is honored.
  total = false
  #
  ## Specifies for which classes a total metric should be issued. Total is an aggregated of the 'perdevice' values.
  ## Possible values are 'cpu', 'blkio' and 'network'
  ## Total 'cpu' is reported directly by Docker daemon, and 'network' and 'blkio' totals are aggregated by this plugin.
  ## Please note that this setting has no effect if 'total' is set to 'false'
  # total_include = ["cpu", "blkio", "network"]
  #
  ## Which environment variables should we use as a tag
  ##tag_env = ["JAVA_HOME", "HEAP_SIZE"]
  #
  ## docker labels to include and exclude as tags.  Globs accepted.
  ## Note that an empty array for both will include all labels as tags
  docker_label_include = []
  docker_label_exclude = []
  #
  ## Optional TLS Config
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  ## Use TLS but skip chain & host verification
  # insecure_skip_verify = false
[[inputs.mem]]
  # no configuration
[[inputs.net]]
  ## By default, telegraf gathers stats from any up interface (excluding loopback)
  ## Setting interfaces will tell it to gather these explicit interfaces,
  ## regardless of status.
  ##
  # interfaces = ["eth0"]
  ##
  ## On linux systems telegraf also collects protocol stats.
  ## Setting ignore_protocol_stats to true will skip reporting of protocol metrics.
  ##
  # ignore_protocol_stats = false
  ##
[[inputs.processes]]
  # no configuration
[[inputs.swap]]
  # no configuration
[[inputs.system]]
  ## Uncomment to remove deprecated metrics.
  # fielddrop = ["uptime_format"]

Exemple :
image.thumb.png.5dcdd34703841b03c8d97f62028ae359.png

image.thumb.png.b3d83988dc46086f3ac385a02bef6ec1.png

 

++

Lien vers le commentaire
Partager sur d’autres sites

Salut  @bebert73 ce que tu as fait avec Telegraf ne fonctionne que si tu l'a mis en network host, car les inputs CPU, mem, networks, etc... ne supervisent que la machine en cours d'utilisation. Si c'est en bridge, ce sont donc les données du conteneur Telegraf et pas le NAS. En host ça marchera. Mais l'activation de SNMP permet de récupérer bien d'autres données comme la version du système, la présence d'une mise à jour, les caractéristiques d'un onduleur, etc...

Pour les droits pour Telegraf, je referai l'opération de zéro dans les semaines qui viennent pour voir si je n'ai pas un défaut de configuration quelque part.

Lien vers le commentaire
Partager sur d’autres sites

@bebert73

Bonjour,

Certains d'entre nous ici pour le monitoring du NAS fonctionnent encore avec InfluxDB 1.8 (et quelque part sommes "bloqués" à cette version), tu dis être passé sous InfluxDB 2.x, pourrais-tu alors STP nous expliquer de façon simple comment tu as configuré InfluxDB (via docker-compose notamment) car même avec la doc Influx c'est loin d'être simple à mon goût, le changement de philosophie est vraiment important entre la v1.8 et la v2.x.

Merci d'avance de ta réponse.

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Hello tous,

@.Shad. Pas de host ni de privileged sur mon conteneur telegraf, mais j'ai bien les infos du serveur (et pas que le conteneur). Du coup je comprends pas trop... ^^ mais je te laisse regarder ma config pour comprendre le problème.

@oracle7 Je fais tout mes dockers via Portainer (en faisant des stacks docker compose). Je te partage mes 3 composes qui fonctionne et ma méthodo que j'ai mis en place. Encore une fois je débute sous docker/influxdb/ect, c'est plus de la bidouille qu'autre chose.

Les principales différences que je vois (de 1.8 à 2.x):

  • La connection qui se fait via des tokens avec les autres services (telegraf, grafana,...)
  • Le web UI (tres proche de grafana!, je rejoins le commentaire d'un précédent poste, il veulent tuer grafana).
  • Le language Query qui est passé à Flux (vs SQL ?)

Je pense qu'en débutant c'est pas beaucoup plus compliqué que 1.8 .

 

Le Tuto de Bebert (enfin vite fait mais bon... en 10 points quand même et le dernier est primordial) :

 

1- Les dossiers

Créer deux dossier (ici /volume1/docker/influxdb et /volume1/docker/telegraf) en mettant les droits lecture/ecriture à /influxdb à tout le monde (chmod 777) pour le dossier /influxdb et ces sous dossier.

Action a faire au choix par terminal ou SSH. Utile lors de la premiere création du docker.

Je ne sais pas pourquoi mais des que le docker influxdb est lancé les droits change ...

image.png.d381217c3408db02f5f0159f94986fa7.png

 

2- Le Docker InfluxDB

version: '3'
services:
  influxdb:
    image: influxdb:latest
    container_name: influxdb
    network_mode: bridge
    restart: always
    volumes:
      # Mount for influxdb data directory and configuration
      - /volume1/docker/influxdb:/var/lib/influxdb2
      - /volume1/docker/influxdb/data:/etc/influxdb2
    ports:
      - MyPort:8086

 

3-Lancer et configurer influxdb via le webUI sur le port 8086 de votre localhost

Suiver les instructions --> User, Organisation, password.

MyBucketDBName Créer un database (Bucket) : Database/Bucket/CreateBucket --> Avec le nom de la db "telegraf"

image.thumb.png.52d5999be8a23e0080f2a0adb31d3457.png

MyToken : Créer un Token pour l'acces r/w à votre db "teelgraf" Database/Token/CreateToken

image.thumb.png.d975c7b9ec536882090fb216bdbfd55a.png

MyOrganisationID : Copié l'id d'organisation

              image.png.fe0e8082f86748d996e51ed63c7284df.png

             image.png.ca4459bc3baae54de3fe36f814614e99.png       

4-telegraf.conf

Dans l'onglet telegraf vous pouvez générer un telegraf.conf partiellement fonctionnel, voici la partie output fonctionnel pour moi en récupérant les 3 variables précédentes MyXXXX :

[[outputs.influxdb_v2]]
  ## The URLs of the InfluxDB cluster nodes.
  ##
  ## Multiple URLs can be specified for a single cluster, only ONE of the
  ## urls will be written to each interval.
  ##   ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
  urls = ["http://MyIPAdress:MyPort"]

  ## Token for authentication.
  token = "MyToken"

  ## Organization is the name of the organization you wish to write to; must exist.
  organization = "MyOrganisationID"
###################. Attention ce n'est pas le nom de l'oragnisation mais sont ID. Disponible dans influxdb webUI User/About. ############

  ## Destination bucket to write into.
  bucket = "MyBucketDBName"

  ## The value of this tag will be used to determine the bucket.  If this
  ## tag is not set the 'bucket' option is used as the default.
  # bucket_tag = ""

  ## If true, the bucket tag will not be added to the metric.
  # exclude_bucket_tag = false

  ## Timeout for HTTP messages.
  # timeout = "5s"

  ## Additional HTTP headers
  # http_headers = {"X-Special-Header" = "Special-Value"}

  ## HTTP Proxy override, if unset values the standard proxy environment
  ## variables are consulted to determine which proxy, if any, should be used.
  # http_proxy = "http://corporate.proxy:3128"

  ## HTTP User-Agent
  # user_agent = "telegraf"

  ## Content-Encoding for write request body, can be set to "gzip" to
  ## compress body or "identity" to apply no encoding.
  # content_encoding = "gzip"

  ## Enable or disable uint support for writing uints influxdb 2.0.
  # influx_uint_support = false

  ## Optional TLS Config for use on HTTP connections.
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  ## Use TLS but skip chain & host verification
  #insecure_skip_verify = false

5-Docker telegraf

Perso je l'ai rajouter à mon stack influxdb dans Portainer mais sinon faite un nouveau docker Compose


  telegraf:
    image: telegraf:latest
    container_name: telegraf
    network_mode: bridge
    restart: unless-stopped

    ports:                 # Optionnel
      - 8125:8125         # Optionnel
      - 8092:8092/udp     # Optionnel
      - 8094:8094         # Optionnel
    volumes:
      # Mount for influxdb data directory and configuration
      - /volume1/docker/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/localtime:/etc/localtime:ro       
      - /etc/TZ:/etc/timezone:ro

Je ne sais pas si les ports de telegraf sont utiles pour le moment (pas trop le temps de tout regarder et de vous répondre ^^).

6-Vérification des data et fonctionnement des Query :

On vérifie si les datas remonte bien (moi j'aime bien regarder les logs des containers via Dozzle).

On check dans le webUI de influxdb et on fait son premier "query".

image.thumb.png.3a1ace0a598a61cd0b429f8bcb081800.png

Si on click sur Script editor on à le Query (c'est cette forme la que j'utilisera apres dans grafana).

image.png.6efc8414a6397d042ac9a997c842bb93.png

7-On fait un docker Grafana

Créer un dossier /volume1/docker/grafana, puis créer le docker (toujours avec un stack de Portainer pour moi):

version: "3.5"

services:
  grafana:
    image: grafana/grafana:latest
    network_mode: "bridge"
    container_name: grafana
    volumes:
      - /volume1/docker/grafana:/var/lib/grafana
    ports:
      - 3000:3000
      #- GF_AUTH_DISABLE_LOGIN_FORM=true
      #- GF_AUTH_ANONYMOUS_ENABLED=true
      #- GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
    restart: always

8- Config grafana :

Suivre les instructions sur le webUI (user password ect...)

On ajoute une database influx. Attention, QUERY language en Flux !

image.thumb.png.b4d811b8ea8c034409b0b9fa595cc750.png

image.thumb.png.f6d4387c505c0fee3fe9b3abeb9bd0b1.png

Attention dans Organization c'est cette fois le Nom de votre Organisation.

Le token est un nouveau token créé dans influxdb en lecture seul pour le bucket telegraf.

Avec influxdb 2.x les autres services ne se connect pas avec des identifiants, mais avec des tokens générés pour chaque besoin/db.

9-Mon premier graf...

 Du coup les graphiques sont à base de query en FLUX.

image.thumb.png.e8725162a05301897c48e30066e161d1.png

10-Déconnecter internet et aller faire à manger...

Je regarderais SNMP plus tard (puis mes autres device a mettre dans telegraf, puis créer un dashboard server/network/docker pour le partage, puis conquérir le monde ...).

++

 

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

@bebert73

Bonjour,

MERCI beaucoup pour ton TUTO, c'est un bon début pour migrer vers la v2.x d'InfluxDB. Je vais regarder cela de près maintenant que certains points ont été "démystifiés" grâce à tes explications car effectivement c'est je trouve un changement radical d'approche avec InfluxDB. Avec ce TUTO, cela donne une base de départ pour mieux appréhender la doc InfluxDB v2.x.

Juste un truc que j'ai pas bien saisi c'est le coup du nouveau token en LS à la fin du point 8. C'est sur le même bucket (BD telegraf) que celui défini au début ? et pourquoi un nouveau token ?Je comprend pas trop là ...

J'ai hâte de voir comment tu implémentes le SNMP car je monitore par ce biais ma Livebox.

Cordialement

oracle7😉

 

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

il y a 15 minutes, oracle7 a dit :

Juste un truc que j'ai pas bien saisi c'est le coup du nouveau token en LE à la fin du point 8. C'est sur le même bucket (BD telegraf) que celui défini au début ? et pourquoi un nouveau token ?Je comprend pas trop là ...

j'ai mis à jours le point 8 :

Avec influxdb 2.x les autres services ne se connect pas avec des identifiants, mais avec des tokens générés pour chaque besoin/db.

On peut générés autant de token que l'ont souhaite en fonction des droits d'acces, c'est plus simple :

Token1 : Lecture/ecriture sur telegraf

Token2 : Lecture seul sur telegraf

Token3 : Lecture/ecriture sur telegraf et jeedom

...

image.png.55cfe09cc1bb07de2d022c2cd3649c72.png

Lien vers le commentaire
Partager sur d’autres sites

@bebert73

Bonjour,

OK merci, c'est plus clair maintenant sur le fait de pouvoir créer plusieurs token même si je ne vois pas de prime abord l'intérêt d'avoir des accès différents en LE ou LS sur un même bucket. A ce propos dans la précédente question il fallait comprendre LS et non pas LE comme je l'ai rédigé en premier. Je corrige le post.

Cordialement

oracle7😉

Modifié par oracle7
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.