serveurs:installation:docker-telegraf

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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/01 14:02] jpmilcentserveurs:installation:docker-telegraf [2023/11/22 14:20] (Version actuelle) – [Exemple de fichier telegraf.conf complet] jpmilcent
Ligne 2: Ligne 2:
   * 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 =====
Ligne 14: Ligne 14:
   * Disques additionnels : ajouter les entrées complémentaires à l'input ''diskio''.   * Disques additionnels : ajouter les entrées complémentaires à l'input ''diskio''.
  
 +==== Monitorer InfluxDB v2 ====
 +  * Pour monitorer InfluxDB v2, il est nécessaire d'utiliser l'url influxdb.<domaine-sinp>/metrics qui retourne des infos au format //prometheus//.
 +  * Il est conseille de stocker ces métriques dans un bucket distinct nommé ''oss_metrics''.
 +  * Pour créer le bucket, il est possible via l'interface influxdb.<domaine-sinp> d'ajouter un template qui va le créer pour nous ainsi qu'un dashboard :
 +    * Aller sur le menu Settings > Templates
 +    * Ajouter l'url suivante : https://raw.githubusercontent.com/influxdata/community-templates/master/influxdb2_oss_metrics/influxdb2_oss_metrics.yml
 +    * Vérifier la création du bucket "oss_metrics" et du Dashboard
 +  * Configurer ensuite Telegraf en ajoutant une seconde sortie vers le bucket "oss_metrics", le plugin ''inputs.prometheus'' et utiliser la mécanique de tag du fichier de conf de Telegraf pour rediriger les métriques prometheus vers la sortie correspondant au bucket "oss_metrics".
 +  * Redémarrer la stack telegraf : '' docker compose down ; docker compose up -d''
 +  * Vérifier sur manager.<domaine-sinp> la sortie des logs de Telegraf.
 +  * Vérifier dans influxdb.<domaine-sinp> que le plugin prometheus alimente bien le bucket "oss_metrics".
 +  * Les métriques renvoyées par le plugin prometheus doivent être en version 1 pour êter compatible avec les Dashboard open source proposé pour Grafana et l'interface web d'InfluxDB.
 ===== Exemple de fichier telegraf.conf complet ===== ===== Exemple de fichier telegraf.conf complet =====
 Exemple avec : Exemple avec :
Ligne 48: Ligne 60:
   ## Destination bucket to write into.   ## Destination bucket to write into.
   bucket = "${INFLUXDB2_INIT_BUCKET}"   bucket = "${INFLUXDB2_INIT_BUCKET}"
 +  # Get all metrics except the one with "influxdb_database" tag with value equal to "oss_metrics" :
 +  [outputs.influxdb_v2.tagdrop]
 +    influxdb_database = ["*"]
 +
 +[[outputs.influxdb_v2]]
 +  urls = ["http://10.0.1.30:8086"]
 +  # Token for authentication.
 +  token = "${INFLUXDB2_TELEGRAF_TOKEN}"
 +  # Organization is the name of the organization you wish to write to.
 +  organization = "${INFLUXDB2_INIT_ORG}"
 +  # Destination bucket to write into.
 +  bucket = "oss_metrics"
 +  # Get only metrics with tag "influxdb_database" with a value equal to "oss_metrics" :
 +  tagexclude = ["influxdb_database"]
 +  [outputs.influxdb_v2.tagpass]
 +    influxdb_database = ["oss_metrics"]
  
 [[inputs.conntrack]] [[inputs.conntrack]]
Ligne 81: Ligne 109:
   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]]
Ligne 107: Ligne 131:
  
 [[inputs.net]] [[inputs.net]]
 +ignore_protocol_stats = true
  
 [[inputs.netstat]] [[inputs.netstat]]
Ligne 122: Ligne 147:
  
 [[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"
Ligne 128: Ligne 156:
  
 [[inputs.processes]] [[inputs.processes]]
 +
 +# For InfluxDb metrics
 +[[inputs.prometheus]]
 +  urls = ["http://10.0.1.30:8086/metrics"]
 +  metric_version = 1 
 +  [inputs.prometheus.tags]
 +    influxdb_database = "oss_metrics"
  
 # Monitoring of Gunicorn for GeoNature, UsersHub, TaxHub and Atlas. # Monitoring of Gunicorn for GeoNature, UsersHub, TaxHub and Atlas.
Ligne 149: Ligne 184:
  
 [[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
Ligne 171: Ligne 211:
 #  files = ["/tmp/nginx_access_log.out"] #  files = ["/tmp/nginx_access_log.out"]
 #  influx_sort_fields = true #  influx_sort_fields = true
 +</code>
 +
 +===== Tester une métrique =====
 +  * Pour tester une métrique, il est possible de rajouter une sortie au fichier config comme dans l'exemple ci-dessus présent à la fin du fichier.
 +  * Il est aussi possible de :
 +    * 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%%''
 +
 +===== 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> </code>
  • serveurs/installation/docker-telegraf.1685628153.txt.gz
  • Dernière modification : 2023/06/01 14:02
  • de jpmilcent