AccueilTechniqueSupervision et sécurité → Telegraf / InfluxDB / Grafana

    Telegraf / InfluxDB / Grafana

    Fonctionnement🔗

    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.

    Historique🔗

    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).

    Installation🔗

    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.

    Configuration de Telegraf🔗

    Le fichier de configuration utilise des variables d’environnement afin de pouvoier spécifier des valeurs différentes selon la machine hôte.

    1. dans InfluxDB récupérer le BUCKET_ID
      influx bucket ls | grep metrics | cut -f 1
      
    2. créer un jeton via la CLI InfluxDB
      influx auth create --description telegraf-<HOSTNAME> --write-bucket <BUCKET_ID>
      
    3. récupérer le “Token”
    4. le copier dans la variable TOKEN_BUCKET du fichier runtime.env
    5. modifier la valeur de la variable HOSTNAME du fichier runtime.env
    6. définir la variable DOCKER_GROUP dans le fichier buildtime.env avec la valeur donnée par la commande suivante :
      stat -c "%g" /var/run/docker.sock
      
    7. éventuellement définir la variable DOCKER_DISK_USAGE_OBJECTS="volume" pour les serveurs avec de petits volumes Docker et ainsi récupérer les métriques associées aux volumes

    La commande suivante permet de mettre à jour la configuration de Telegraf sans redémarrer le conteneur :

    docker exec -it telegraf kill -s HUP 1
    

    Précautions🔗

    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.

    Entretien🔗

    La pile TIG ne nécessite aucun entretien particulier.

    Mise à jour🔗

    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.

    Évolutions envisagées🔗

    Remplacer les requêtes Flux🔗

    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.

    Ajouter des sondes🔗

    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.