La surveillance manuelle des conteneurs Docker peut être fastidieuse et sujette à des erreurs.
Sans une méthode automatisée, les administrateurs doivent fréquemment mettre à jour les configurations pour suivre les changements des conteneurs.
Cet article vous montre comment utiliser Docker Service Discovery dans Prometheus pour une surveillance automatique et efficace des conteneurs.
Devenez expert dans la supervision d'infrastructures avec Prometheus.
Dans cette section, nous allons configurer Prometheus pour détecter automatiquement les cibles Docker en utilisant Docker Service Discovery (Docker SD) . Cette méthode permet à Prometheus de détecter et de surveiller les conteneurs Docker répondant à certains critères, sans nécessiter de configuration manuelle des cibles.
Accès au prometheus.yml pour Docker SD
Pour débuter, ouvrez le fichier de configuration de Prometheus, prometheus.yml. C’est dans ce fichier que nous ajouterons les paramètres nécessaires pour la détection automatique des cibles Docker.
sudo vi /etc/prometheus/prometheus.yml
Ajout de la Configuration Docker SD
Ajoutez maintenant la section scrape_configs dans le fichier prometheus.yml. Cette configuration permet à Prometheus de détecter les conteneurs Docker répondant aux critères spécifiés, tels que l’intervalle de rafraîchissement et les labels des conteneurs.
scrape_configs:
- job_name: 'docker_node_exporter'
docker_sd_configs:
- host: 'unix:///var/run/docker.sock' # Chemin vers le socket Docker
refresh_interval: 15s # Intervalle de rafraîchissement des cibles
filters:
- name: 'label'
values: ['prometheus=true'] # Filtrer les conteneurs ayant le label prometheus=true
Configurer Docker SD dans Prometheus
Voici un aperçu de chaque paramètre pour mieux comprendre leur rôle dans la détection des conteneurs Docker par Prometheus :
- job_name :Définit un nom descriptif pour cette tâche de collecte, ici docker_node_exporter.
- docker_sd_configs :Spécifie les paramètres pour la découverte des conteneurs Docker.host: Définit le chemin du socket Docker, généralement situé à unix:///var/run/docker.sock.refresh_interval: Spécifie la fréquence à laquelle Prometheus met à jour les cibles Docker (ici toutes les 15 secondes).filters: Filtre les conteneurs Docker pour surveiller uniquement ceux ayant le label prometheus=true, limitant ainsi la surveillance aux conteneurs pertinents.
Enregistrez et fermez le fichier une fois la configuration terminée.
Redémarrage après config Prometheus
Après avoir modifié le fichier prometheus.yml, redémarrez Prometheus pour appliquer les nouvelles configurations. Utilisez les commandes suivantes si vous gérez Prometheus comme un service :
sudo systemctl stop prometheus
sudo systemctl start prometheus
./prometheus
Vérifier cibles Docker dans Prometheus
Pour confirmer que Prometheus détecte les conteneurs Docker, ouvrez votre navigateur et allez à l’adresse suivante : http://localhost:9090/targets .
Si aucune cible n’apparaît, vérifiez qu’au moins un conteneur Docker est en cours d’exécution avec le label prometheus=true.
Tester Node Exporter avec Docker
Afin de visualiser une cible dans l’interface Prometheus, exécutez un conteneur Docker Node Exporter avec le label requis :
- Télécharger l’image Node Exporter de Prometheus :
docker run --rm prom/node-exporter
- Exécuter le conteneur avec le label requis :
docker run --rm --label prometheus=true prom/node-exporter
Après avoir lancé ce conteneur, revenez à l’interface Prometheus ( http://localhost:9090/targets ) pour vérifier que le conteneur node-exporter est bien détecté et que son statut est UP .*
Conclusion
Votre Prometheus est maintenant configuré pour détecter et surveiller automatiquement les conteneurs Docker ayant le label prometheus=true. Ce processus simplifie la gestion des cibles, surtout dans des environnements où les conteneurs sont dynamiques et éphémères.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment configurer Docker Service Discovery dans Prometheus ?
Quels paramètres inclure dans prometheus.yml pour Docker SD ?
Comment vérifier que Prometheus détecte les conteneurs Docker ?
Comment lancer un conteneur Node Exporter pour le tester avec Prometheus ?
Pourquoi est-il important de redémarrer Prometheus après modification du fichier prometheus.yml ?
Conclusion
Votre Prometheus est maintenant prêt pour la surveillance automatisée des conteneurs Docker avec le label prometheus=true. Cette configuration simplifie la gestion des cibles dans des environnements dynamiques. Quelles autres fonctionnalités de Prometheus souhaitez-vous explorer pour optimiser vos processus de surveillance ?