Telegraf est notre outil de collecte de métrique déployé sur chaque machine supervisée. Les données de Telegraf sont poussées à intervalle régulier dans une base InfluxDB installée sur notre serveur de supervision. Les données sont ensuites extraites et affichées dans des tableaux de bord Grafana. Pour la remontée d’alerte, nous utilisons Grafana Alert couplé à grafana-matrix-forwarder.
Suite à une évolution de license de la GUI de Netdata qui n’est plus libre, nous avons migré notre pile de supervision, anciennement basée sur Netdata, sur de nouveaux outils en octobre 2024. Nous utilisons désormais Telegraf, InfluxDB et Grafana (TIG).
Nous utilisons les images officielles telegraf, influxdb et grafana/grafana-oss avec un numéro de version explicite.
Nnous avons configuré des seuils d’alertes dans Grafana et installé grafana-matrix-forwarder pour recevoir des notifications sur Matrix en cas d’anomalie.
Le fichier de configuration utilise des variables d’environnement afin de pouvoier spécifier des valeurs différentes selon la machine hôte.
BUCKET_ID
influx bucket ls | grep metrics | cut -f 1
influx auth create --description telegraf-<HOSTNAME> --write-bucket <BUCKET_ID>
TOKEN_BUCKET
du fichier runtime.env
HOSTNAME
du fichier runtime.env
DOCKER_GROUP
dans le fichier buildtime.env
avec la valeur donnée par la commande suivante :stat -c "%g" /var/run/docker.sock
DOCKER_DISK_USAGE_OBJECTS="volume"
pour les serveurs avec de petits volumes Docker et ainsi récupérer les métriques associées aux volumesLa commande suivante permet de mettre à jour la configuration de Telegraf sans redémarrer le conteneur :
docker exec -it telegraf kill -s HUP 1
Les données qui transitent entre les clients et le serveur sont sensibles : elles contiennent des métriques précises sur la consommation de chaque conteneur, le nom des réseaux et processus, ainsi que de nombreuses autres métadonnées. La communication client-serveur doit donc être chiffrée, à moins qu’elle fasse partie d’un réseau local (ce qui n’est pas notre cas). Nous utilisons un certificat sur le domaine monitoring.lacontrevoie.fr
.
La pile TIG ne nécessite aucun entretien particulier.
Mettre à jour les différents composants implique de télécharger la nouvelle version de l’image officielle sur les machines concernées, puis de redémarrer les conteneurs en conséquence.
Le langage de requête Flux d’InfluxDB a été retenu pour les requêtes en base de données depuis Grafana. C’est un choix très discutable en 2024 étant donné que ce langage est indiqué comme étant en mode de maintenance et plus supporté dans InfluxDB v3.
Il pourrait être pertinent d’ajouter des sondes pour avoir des statistiques plus spécifiques à certains de nos services : nombre de mails reçus et envoyés sur le service Mail, métriques sur le trafic de PostgreSQL… Telegraf propose une multitude plugin qui peuvent répondre à ces besoins. Une partie de nos logiciels disposent déjà de routes sur lesquelles ces statistiques sont servies, il pourrait aussi être possible de configurer Telegraf pour récupérer ces statistiques.