Installer l'agent Telegraf via Docker
- Se connecter en tant qu'admin :
ssh admin@db-<region>-sinp - Se placer dans le dossier :
cd ~/docker/telegraf- 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
- Lorsque tout fonctionne correctement, lancer le container en tant que service (option
-d) :docker-compose up -d
Monitorer différents services spécifiques
- Nginx:
- access log : ajouter l'utilisateur "telegraf" au groupe "adm" dans le fichier
docker-compose.ymlviagroup_add. Puis configurer Telegraf en ajoutant le support de l'input Tail et du parser Grok (voir telegraf.conf ci-dessous comme exemple).
- Postgresql : ajouter l'utilisateur "telegraf" aux roles Postgresql et au fichier
pg_hba.conf(Voir config Postgresql). - Gunicorn : Doc monitorer Gunicorn GeoNature
- 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
- 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.prometheuset 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 avec :
- le support d'InfluxDB v2 accessible sur le port 8086 de l'ip privée 10.0.1.10
- le statut de Nginx sur http://172.18.5.1:9090/nginx_status (voir config Nginx),
- l'analyse des logs de Nginx via Tail et Grok,
- la surveillance de Postgresql
- la surveillance des service du système à l'aide du script srvstatus
- la surveillance de Gunicorn pour GeoNature à l'aide de Statsd
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