| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| serveurs:installation:docker-telegraf [2023/06/02 15:04] – [Monitorer InfluxDB v2] jpmilcent | serveurs:installation:docker-telegraf [2025/07/03 06:53] (Version actuelle) – [Problème : valeurs des métriques introuvables dans InfluxDB] jpmilcent |
|---|
| * Se connecter en tant qu'admin : ''ssh admin@db-<region>-sinp'' | * Se connecter en tant qu'admin : ''ssh admin@db-<region>-sinp'' |
| * Se placer dans le dossier : ''cd ~/docker/telegraf'' | * Se placer dans le dossier : ''cd ~/docker/telegraf'' |
| * Lancer le container afin d'afficher les logs : '' docker-compose up '' | * Lancer le container afin d'afficher les logs : '' docker compose up '' |
| * Corriger les éventuels problèmes de configuration de Telegraf s'affichant dans les logs | * Corriger les éventuels problèmes de configuration de Telegraf s'affichant dans les logs |
| * Lorsque tout fonctionne correctement, lancer le container en tant que service (option ''-d'') : ''docker-compose up -d'' | * Lorsque tout fonctionne correctement, lancer le container en tant que service (option ''-d'') : ''docker compose up -d'' |
| |
| ===== Monitorer différents services spécifiques ===== | ===== Monitorer différents services spécifiques ===== |
| docker_label_exclude = [] | docker_label_exclude = [] |
| |
| # Monitoring of Systemd services with help of Srvstatus scripts | # Monitoring of Systemd services with help of Srvstatus scripts (inputs.systemd_status not working inside a Docker container) |
| [[inputs.exec]] | [[inputs.exec]] |
| commands = [ | commands = ["cat /opt/srvstatus/status.json"] |
| "cat /opt/srvstatus/status.json" | |
| ] | |
| timeout = "5s" | timeout = "5s" |
| name_override = "services_stats" | name_override = "services_stats" |
| data_format = "json" | data_format = "json" |
| tag_keys = [ | tag_keys = ["service"] |
| "service" | |
| ] | |
| |
| [[inputs.internal]] | [[inputs.internal]] |
| |
| [[inputs.net]] | [[inputs.net]] |
| | ignore_protocol_stats = true |
| |
| [[inputs.netstat]] | [[inputs.netstat]] |
| |
| [[inputs.postgresql]] | [[inputs.postgresql]] |
| | # WARNING: ${POSTGRESQL_TELEGRAF_PWD} is not replaced here. See: https://github.com/influxdata/telegraf/issues/12458 |
| | # address = "host=172.18.5.1 user=telegraf password=${POSTGRESQL_TELEGRAF_PWD} dbname=postgres sslmode=disable" |
| | # Need to add CONNECT right on postgres database to user telegraf. |
| address = "host=172.18.5.1 user=telegraf password=<password> dbname=postgres sslmode=disable" | address = "host=172.18.5.1 user=telegraf password=<password> dbname=postgres sslmode=disable" |
| outputaddress="postgresql-floresentinelle" | outputaddress="postgresql-floresentinelle" |
| |
| [[inputs.system]] | [[inputs.system]] |
| | |
| | # WARNING: disable because we can't use systemd inside a Docker container... |
| | # Use inputs.exec instead with Srvstatus scripts on Host. |
| | # See: https://github.com/influxdata/telegraf/issues/7689 |
| | #[[inputs.systemd_units]] |
| |
| # Nginx access log monitoring | # Nginx access log monitoring |
| * se connecter au container : ''docker exec -it telegraf /bin/bash'' | * se connecter au container : ''docker exec -it telegraf /bin/bash'' |
| * d'exectuer un test avec la commande (Ex. ici avec la métrique //disk//) : ''%%telegraf --input-filter=disk --test --debug%%'' | * d'exectuer un test avec la commande (Ex. ici avec la métrique //disk//) : ''%%telegraf --input-filter=disk --test --debug%%'' |
| | |
| | ===== Problème ===== |
| | |
| | ==== Problème : valeurs des métriques introuvables dans InfluxDB ==== |
| | * **Contexte** : Telegraf semble fonctionner correctement et envoie les métriques sur le serveur hébergeant InfluxDB mais aucune métrique récente n'est trouvable dans InfluxDB. |
| | * **Solution** : vérifier que le serveur à une heure correctement configuré : ''date'' doit afficher la même heure que le serveur hébergeant InfluxDB. Vérifier que le service Ntpsec est démarré et fonctionne correctement. Si le serveur NTPSec génère l'erreur ''CLOCK: Panic: offset too big'' essayer de définir le paramètre ''tinker panic 0'' au début du fichier ''/etc/ntpsec/ntp.conf''. Ex. : <code> |
| | # /etc/ntpsec/ntp.conf, configuration for ntpd; see ntp.conf(5) for help |
| | |
| | # Set this value to avoid error "CLOCK: Panic: offset too big" |
| | tinker panic 0 |
| | </code> |
| | |
| | ==== Problème : toutes les interfaces réseaux de l'hôte ne sont pas remontées ==== |
| | * **Contexte** : Telegraf remonte une seule interface réseau alors que l'hôte en possède plusieurs. |
| | * **Solution** : le mode réseau empêche la collecte des infos : Telegraf était captif de la stack réseau du conteneur (d'où le eth0), donc ce qui était surveillé c'était uniquement les stats réseau des containers Telegraf eux-mêmes, et non pas celles de l’hôte. |
| | * Avant : <code yaml> |
| | networks: |
| | default: |
| | name: nginx-proxy |
| | external: true |
| | </code> |
| | * Après : <code yaml> network_mode: "host" </code> |