Aller au contenu

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


.Shad.

Messages recommandés

Bonjour,

Moi c'était hier et c'était le grand chamboulement:

Found new linuxserver/jellyfin:latest image

Found new ghcr.io/linuxserver/unifi-controller:latest image

Found new influxdb:1.8 image

Found new grafana/grafana:latest image

Found new telegraf:latest image

Mais tout a bien fonctionné 😃

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Une question, est-il possible d'utiliser un monitoring de son nom de domaine ? (accès depuis l'extérieur)

J'utilise actuellement uptimerobot, pour tester la disponibilité de service. (https://uptimerobot.com/)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous :

J'ai un problème suite à une mise à jour cette nuit du container telegraf.

dernier telegraf 1.21.1. Ci-dessous les logs le container démarre et s'arrête en boucle :

2021-12-22T05:54:25Z I! Tags enabled: host=telegraf
2021-12-22T05:54:25Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"telegraf", Flush Interval:10s
2021-12-22T05:54:25Z W! [inputs.docker] 'perdevice' setting is set to 'true' so 'blkio' and 'network' metrics will be collected. Please set it to 'false' and use 'perdevice_include' instead to control this behaviour as 'perdevice' will be deprecated
2021-12-22T05:54:25Z W! [inputs.docker] 'total' setting is set to 'false' so 'blkio' and 'network' metrics will not be collected. Please set it to 'true' and use 'total_include' instead to control this behaviour as 'total' will be deprecated
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x2c09f9e]
goroutine 1 [running]:
github.com/influxdata/telegraf/internal/snmp.LoadMibsFromPath.func2({0xc0009b4050, 0x42}, {0x0, 0x0}, {0xc001a6d628, 0x2c09920})
    /go/src/github.com/influxdata/telegraf/internal/snmp/translate.go:76 +0x3e
path/filepath.Walk({0xc0009b4050, 0x42}, 0xc001a6d628)
    /usr/local/go/src/path/filepath/path.go:503 +0x50
github.com/influxdata/telegraf/internal/snmp.LoadMibsFromPath({0xc0007e58e0, 0x1, 0xc0009db6c8}, {0x584e030, 0xc00100f350})
    /go/src/github.com/influxdata/telegraf/internal/snmp/translate.go:74 +0x39f
github.com/influxdata/telegraf/plugins/inputs/snmp.(*Snmp).Init(0xc000748840)
    /go/src/github.com/influxdata/telegraf/plugins/inputs/snmp/snmp.go:102 +0x50
github.com/influxdata/telegraf/models.(*RunningInput).Init(0xc0009db758)
    /go/src/github.com/influxdata/telegraf/models/running_input.go:82 +0x35
github.com/influxdata/telegraf/agent.(*Agent).initPlugins(0xc00012a648)
    /go/src/github.com/influxdata/telegraf/agent/agent.go:189 +0x96
github.com/influxdata/telegraf/agent.(*Agent).Run(0xc00012a648, {0x57e5688, 0xc00063cd00})
    /go/src/github.com/influxdata/telegraf/agent/agent.go:105 +0x185
main.runAgent({0x57e5688, 0xc00063cd00}, {0x837a278, 0x0, 0x0}, {0x837a278, 0x0, 0x0})
    /go/src/github.com/influxdata/telegraf/cmd/telegraf/telegraf.go:312 +0xc57
main.reloadLoop({0x837a278, 0x0, 0x0}, {0x837a278, 0x0, 0x0})
    /go/src/github.com/influxdata/telegraf/cmd/telegraf/telegraf.go:147 +0x28a
main.run(...)
    /go/src/github.com/influxdata/telegraf/cmd/telegraf/telegraf_posix.go:8
main.main()
    /go/src/github.com/influxdata/telegraf/cmd/telegraf/telegraf.go:485 +0xa9a
2021-12-22T05:54:37Z I! Starting Telegraf 1.21.1
2021-12-22T05:54:37Z I! Using config file: /etc/telegraf/telegraf.conf
2021-12-22T05:54:37Z I! Loaded inputs: cpu disk diskio docker kernel mem processes snmp (3x) swap system
2021-12-22T05:54:37Z I! Loaded aggregators: 
2021-12-22T05:54:37Z I! Loaded processors: 
2021-12-22T05:54:37Z I! Loaded outputs: influxdb
2021-12-22T05:54:37Z I! Tags enabled: host=telegraf

J'hésite à faire les modifications indiquées dans la conf (perdevice et total). Avez-vous la même chose ?

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

EN regardant les log de telegraf pour voir si j'ai les mêmes erreurs que toi @Jeff777, je vois ça (en boucle) :
 

2021-12-22T08:07:45Z E! [inputs.docker] Error in plugin: error getting docker stats: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.21/containers/e161d55bbd329ea8423c3f4655ffd856f25e721ae9992f1626d1f8ee97d9e8ad/stats?stream=0": context deadline exceeded

je crois que les permissions ne sont plus bonnes sur le docker.sock.
je pense qu'il va être temps pour moi d'arrêter définitivement cette stack de monitoring...

edit : par contre c'est étonnant, mais Grafana me donne bien toutes les mesures, en temps réels... tous mes panels sont fonctionnels.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 14 heures, oracle7 a dit :

et les corrections pour "perdevice et total" sont faites depuis bien longtemps déjà.

Bonjour,

Ah oui, j'ai hésité à le faire. Et ça suffit pour pouvoir utiliser la dernière version de telegraf ?

 

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777

Bonjour,

Il y a 3 heures, Jeff777 a dit :

Ah oui, j'ai hésité à le faire. Et ça suffit pour pouvoir utiliser la dernière version de telegraf ?

Je ne sais si cela suffit, mais du jour où j'ai remarqué l'erreur suite à l'info de @MilesTEG1 (au passage encore Merci à lui), j'ai corrigé tel que :

#  perdevice = true
  perdevice = false
  perdevice_include = ["cpu", "blkio", "network"]
#  total = false
  total = true
  total_include = ["cpu", "blkio", "network"]

Et depuis tout est OK.

Si tu regardes en arrière dans le post, j'ai signalé la chose à @.Shad. pour qu'il mette un couplet sur ce point dans son TUTO.

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Le 24/12/2021 à 14:24, oracle7 a dit :

Je ne sais si cela suffit, mais du jour où j'ai remarqué l'erreur suite à l'info de @MilesTEG1 (au passage encore Merci à lui), j'ai corrigé tel que :

Je viens de faire cette modif et cela ne marche pas avec telegraf : latest 😕

Lien vers le commentaire
Partager sur d’autres sites

@Jeff777

Bonjour,

Là je crains que tu ne traînes une autre c....ie ailleurs 🥴 car je suis en telegraf/latest et aucun soucis ...

Et sur ce coup là mon magasin à idées est en rupture de stock 🤪

Après recréation du conteneur et lancement, les logs telegraf ne te donnes pas de pistes d'anomalies ???

Cordialement

oracle7😉

 

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, oracle7 a dit :

Après recréation du conteneur et lancement, les logs telegraf ne te donnes pas de pistes d'anomalies ???

Je ne sais pas je suis repassé en 1.20.4. Si j'ai le courage je réessaierai d'ici la fin de la semaine.

Lien vers le commentaire
Partager sur d’autres sites

@.Shad. J'ai posé la question sur le fil monitoring_livebox4, mais y a un autre moyen de résoudre l'erreur 

2021-12-26T21:47:10Z E! [inputs.docker] Error in plugin: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.21/info": dial unix /var/run/docker.sock: connect: permission denied
2021-12-26T21:47:10Z E! [inputs.docker] Error in plugin: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.21/containers/json?filters=%7B%22status%22%3A%5B%22running%22%5D%7D&limit=0": dial unix /var/run/docker.sock: connect: permission denied

que de passer par les permissions de /var/run/docker.sock ?

Et d'ailleurs, comment je connais le masque de permission ? car j'ai ça avec un ls -la :

srw-rw---- 1 root root 0 Dec 23 14:01 /var/run/docker.sock

 

Lien vers le commentaire
Partager sur d’autres sites

@.Shad. Ok, je vais revoir ton message.
Mais pourquoi les permissions ont changé ? Je n'ai jamais touché ce fichier... 
Du coup changer les permissions de ce fichier, ça ne risque pas de poser des soucis avec DSM ?

edit : dans ton message, tu dis que docker.sock doit appartenir au groupe docker, mais moi je n'ai pas de groupe docker...
Je me suis créé un groupe Docker-Users, mais c'est un groupe que j'ai fait de toute pièce il y a pas mal de temps...

Comment je le trouve le vrai groupe docker ?

Lien vers le commentaire
Partager sur d’autres sites

J'aurai du mal à te dire si j'ai créé ou pas ce groupe docker, je n'ai jamais remis à zéro mes NAS donc ça remonte à 2017.
Tu peux vérifier via :

cat /etc/group | grep docker

Autrement, contrairement à @oracle7 et pareillement à @Jeff777, mon conteneur telegraf ne fonctionne pas en 1.21.1, j'ai une panic error runtime, le problème que j'avais trouvé sur Github date d'il y a un an. Je vais essayer de voir de la semaine ce qui cloche, si tu pouvais mettre ton fichier compose @oracle7 pour voir s'il y a des divergences qui pourraient induire cette différence de comportement.

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

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

J'aurai du mal à te dire si j'ai créé ou pas ce groupe docker, j'ai jamais remis à zéro mes NAS donc ça remonte à 2017.
Tu peux vérifier via :

cat /etc/group | grep docker

Non y a rien.
C'est probablement toi qui a du le créer comme moi 🙂

Et donc, tu as du affecter le groupe au fichier /var/run/docker.sock

Mais ça m'embète un peu de changer les permissions de ce fichier système... j'ai peur que ça me foute le bazar ailleurs...
Sinon, ce serait quoi la commande pour faire ce changement ?

 

Autre chose, ce matin, j'ai eu une MAJ des conteneurs telegraf cette nuit (je sais pas trop pourquoi vu que je les ai refais hier avec la dernière version...).
Mais toujours est-il que j'ai un plantage généralisé des telegraf :

 

2021-12-27T07:33:30Z I! Starting Telegraf 1.21.1
2021-12-27T07:33:30Z I! Using config file: /etc/telegraf/telegraf.conf
2021-12-27T07:33:30Z I! Loaded inputs: cpu disk diskio docker kernel mem processes snmp swap system
2021-12-27T07:33:30Z I! Loaded aggregators:
2021-12-27T07:33:30Z I! Loaded processors:
2021-12-27T07:33:30Z I! Loaded outputs: influxdb
2021-12-27T07:33:30Z I! Tags enabled: host=monitoring_telegraf
2021-12-27T07:33:30Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"monitoring_telegraf", Flush Interval:10s
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x2c09f9e]

goroutine 1 [running]:
github.com/influxdata/telegraf/internal/snmp.LoadMibsFromPath.func2({0xc000b37cc0, 0x42}, {0x0, 0x0}, {0xc00067f628, 0x2c09920})
	/go/src/github.com/influxdata/telegraf/internal/snmp/translate.go:76 +0x3e
path/filepath.Walk({0xc000b37cc0, 0x42}, 0xc00067f628)
	/usr/local/go/src/path/filepath/path.go:503 +0x50
github.com/influxdata/telegraf/internal/snmp.LoadMibsFromPath({0xc000b4c1b0, 0x1, 0xc000f9f6c8}, {0x584e030, 0xc000b787b0})
	/go/src/github.com/influxdata/telegraf/internal/snmp/translate.go:74 +0x39f
github.com/influxdata/telegraf/plugins/inputs/snmp.(*Snmp).Init(0xc0002362c0)
	/go/src/github.com/influxdata/telegraf/plugins/inputs/snmp/snmp.go:102 +0x50
github.com/influxdata/telegraf/models.(*RunningInput).Init(0xc000f9f758)
	/go/src/github.com/influxdata/telegraf/models/running_input.go:82 +0x35
github.com/influxdata/telegraf/agent.(*Agent).initPlugins(0xc000b54088)
	/go/src/github.com/influxdata/telegraf/agent/agent.go:189 +0x96
github.com/influxdata/telegraf/agent.(*Agent).Run(0xc000b54088, {0x57e5688, 0xc0001546c0})
	/go/src/github.com/influxdata/telegraf/agent/agent.go:105 +0x185
main.runAgent({0x57e5688, 0xc0001546c0}, {0x837a278, 0x0, 0x0}, {0x837a278, 0x0, 0x0})
	/go/src/github.com/influxdata/telegraf/cmd/telegraf/telegraf.go:312 +0xc57
main.reloadLoop({0x837a278, 0x0, 0x0}, {0x837a278, 0x0, 0x0})
	/go/src/github.com/influxdata/telegraf/cmd/telegraf/telegraf.go:147 +0x28a
main.run(...)
	/go/src/github.com/influxdata/telegraf/cmd/telegraf/telegraf_posix.go:8
main.main()
	/go/src/github.com/influxdata/telegraf/cmd/telegraf/telegraf.go:485 +0xa9a

J'ai tenté de mettre le couple UID/PGID dans le docker-compose comme tu l'as fait, mais sans succès...

Avant que je n'abandonne le monitoring, tu as mis quoi comme permission sur le dossier docker/monitoring ?

Mon utilisateur a les droits d'accès sur le dossier partagé /volume1/docker/, et est le propriétaire du dossier /volume1/docker/monitoring dans lequel j'ai tous les sous-dossiers pour les conteneurs.

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 40 minutes, MilesTEG1 a dit :

Mais ça m'embète un peu de changer les permissions de ce fichier système... j'ai peur que ça me foute le bazar ailleurs...
Sinon, ce serait quoi la commande pour faire ce changement ?

Il est beaucoup moins risqué de changer le groupe que de modifier les permissions.
Les groupes sont utilisables à cet effet sous Linux, la preuve avec le socket graphique utilisé entre autre pour le transcodage Plex/Emby/etc... :

ls -l /dev/dri

crw------- 1 root root        226,   0 Sep 29 19:09 card0
crw-rw---- 1 root videodriver 226, 128 Sep 29 19:09 renderD128

C'est un changement suite au passage à DSM7, et c'est beaucoup plus logique ainsi.
Pour la commande :

chown root:nom_du_groupe_docker /var/run/docker.sock

Il faut que ton groupe docker, quelque soit son nom, ait accès au dossier partagé docker via la permissions de groupe.
Et ajouter l'utilisateur qui fait tourner Telegraf à ce groupe.

il y a 45 minutes, MilesTEG1 a dit :

Autre chose, ce matin, j'ai eu une MAJ des conteneurs telegraf cette nuit (je sais pas trop pourquoi vu que je les ai refais hier avec la dernière version...).

C'est l'objet de mon message juste avant le tien (la deuxième partie), pour l'instant je reste en 1.20.4 car j'ai les mêmes erreurs.

il y a 46 minutes, MilesTEG1 a dit :

Avant que je n'abandonne le monitoring

Si tu abandonnes, abandonne pour les bonnes raisons, parce que tu ne t'en sers pas, parce que tu n'oses pas passer sur la version d'InfluxDB, etc...

Pas parce que tu n'arrives pas à le faire fonctionner. 😄 

Lien vers le commentaire
Partager sur d’autres sites

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

C'est un changement suite au passage à DSM7, et c'est beaucoup plus logique ainsi.
Pour la commande :

chown root:nom_du_groupe_docker /var/run/docker.sock

Il faut que ton groupe docker, quelque soit son nom, ait accès au dossier partagé docker via la permissions de groupe.
Et ajouter l'utilisateur qui fait tourner Telegraf à ce groupe.

Ok, merci pour les précisions.
Du coup je vais tenter la modification du groupe sur docker.sock.
Pour récapituler, mon groupe User-Docker à les droits d'accès sur le dossier docker, et sur un ou deux autres dossiers (pour Plex). Mes utilisateurs docker appartiennent à ce groupe docker.

Si je modifie le groupe de docker.sock, ça ne va pas engendrer de problème de sécurité ?

 

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

C'est l'objet de mon message juste avant le tien (la deuxième partie), pour l'instant je reste en 1.20.4 car j'ai les mêmes erreurs.

 Oué, ouf, je suis pas le seul 😮 
Vais fixer cette version moi aussi alors.

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

Si tu abandonnes, abandonne pour les bonnes raisons, parce que tu ne t'en sers pas, parce que tu n'oses pas passer sur la version d'InfluxDB, etc...

Pas parce que tu n'arrives pas à le faire fonctionner. 😄 

Je ne suis pas du genre à abandonner quelque chose parce que je n'y arrive pas, enfin pas tant que j'ai pas essayé un certains temps.

Ce qui me pousse à envisager d'abandonner cette stack de monitoring est partagé en deux choses :

  • je ne m'en sers presque pas, de manière très occasionnelle...
  • et surtout parce que je trouve que le suivi des mises à jour est catastrophique tant coté influxDB que coté telegraf... : une installation fonctionnelle avec une version A ne l'est plus à la mise à jour A.1... et ça ça me gonfle profondément... Pour infuxDB, je peux encore comprendre, car le passage de 1.8 à 2 apporte des changements significatifs, mais qu'il n'y ait pas de rétro-compatibilité, ça m'agace...
    Si à chaque mise à jour de Vaultwarden ou de Plex je devais de nouveau vérifier ce qui cloche, corriger un soucis par des permissions à changer, ou des fichiers de configuration à modifier parce que la nouvelle version ne fonctionne plus avec l'ancien... je me frapperais la tête contre le mur...
    C'est principalement cette raison qui me fait pencher sérieusement pour la suppression de la stack...

Bref, pour le moment la stack est stoppée. Je verrais si je la relance ou pas.

Lien vers le commentaire
Partager sur d’autres sites

@.Shad.

Bonjour,

Comme demandé voici mon docker-compose pour le monitoring :
 

#
# Doc de Influxdb : https://docs.influxdata.com/influxdb/v1.8/
# Depot GitHub Influxdb : https://github.com/influxdata/influxdb
#
# Doc de Telegraf : https://docs.influxdata.com/telegraf/v1.17/
# Depot GitHub Telegraf : https://github.com/influxdata/telegraf
#
# Doc de Grafana : https://grafana.com/docs/grafana/latest/
# Depot GitHub Grafana : https://github.com/grafana/grafana
#---
version: "2.1"
services:

    influxdb:
        image: influxdb:1.8
        container_name: influxdb
        hostname: influxdb
        environment:
            - INFLUXDB_DB=nas_telegraf
            - INFLUXDB_ADMIN_USER=admin
            - INFLUXDB_ADMIN_PASSWORD=admin
            - INFLUXDB_USER=nas_telegraf
            - INFLUXDB_USER_PASSWORD=nas_telegraf
            - INFLUXDB_HTTP_AUTH_ENABLED=true
            - INFLUXDB_META_RETENTION_AUTOCREATE=false
        labels:
            - "com.centurylinklabs.watchtower.enable=true"
        volumes:
            - "/volume1/docker/influxdb/data:/var/lib/influxdb"
        mac_address: d2:ca:ab:cd:00:02
        networks:
            monitoring:
                ipv4_address: 172.20.0.2
        ports:
            - 8086:8086
        restart: unless-stopped

    telegraf:
#        image: telegraf:1.20.2
        image: telegraf:latest
        container_name: telegraf
        user: 1038:65539
        hostname: telegraf
        depends_on :
            - influxdb
        labels:
            - "com.centurylinklabs.watchtower.enable=true"
        volumes:
            - "/volume1/docker/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro"
            - "/proc:/host/proc:ro"
#            - "/usr/share/snmp/mibs:/usr/share/snmp/mibs:ro"
            - "/volume1/docker/mibs/:/usr/share/snmp/mibs:ro"
#            - "/volume1/docker/telegraf/mibs/hik/:/usr/share/snmp/mibs/hik:ro"
# Pour superviser Docker
            - "/var/run/docker.sock:/var/run/docker.sock:ro"
            - /etc/TZ:/etc/timezone:ro
        mac_address: d2:ca:ab:cd:00:03
        networks:
            monitoring:
                ipv4_address: 172.20.0.3
        ports:
            - 8125:8125/udp
            - 8092:8092/udp
            - 8094:8094
        restart: unless-stopped

    grafana:
        image: grafana/grafana:latest
        container_name: grafana
        hostname: grafana
        depends_on :
            - influxdb
            - telegraf
        environment:
            - GF_INSTALL_PLUGINS=grafana-piechart-panel
        labels:
            - "com.centurylinklabs.watchtower.enable=true"
        volumes:
            - "/volume1/docker/grafana/data:/var/lib/grafana"
        user: "1030:101"
        mac_address: d2:ca:ab:cd:00:04
        networks:
            monitoring:
                ipv4_address: 172.20.0.4
        ports:
            - 3000:3000
        restart: unless-stopped

networks:
    monitoring:
        external: true

 

root@monnas:~# cat /etc/passwd | grep 1038
telegraf:x:1038:100:Utilisateur Docker:/var/services/homes/telegraf:/sbin/nologin
root@monnas:~# id telegraf
uid=1038(telegraf) gid=100(users) groups=100(users),65539(docker)

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Hello,

 

petite remarque rapide (désolé j'espere que ca n'a pas ete traité dans les 47 pages ....)

pour grafana pourquoi ne pas faire un 

user: 1027:65536

ce qui est moins moche que le 777

et de plus perso je me suis monté le 

- /volume1/docker/grafana/config/grafana.ini:/etc/grafana/grafana.ini

pour pouvoir le modifier (et configurer le smtp pour créer un user et supprimer le user "admin" par defaut)

 

Autre petite remarque :

ca serait top si dans le sujet principal on pouvait mettre un lien vers les dashboard utilisées (exemple celles pour docker etc)

Bon je vais sortir le chien et j'espere avoir du temps ce soir pour me faire qq pages du topic pour les trouvers

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.