Gérer manuellement les cibles de Prometheus peut rapidement devenir fastidieux et sujet aux erreurs.
Des mises à jour manuelles fréquentes augmentent le risque d’erreurs et de désynchronisation dans vos configurations.
Cet article vous montre comment utiliser la découverte de service par fichier (File SD) pour configurer Prometheus, simplifiant ainsi la gestion des cibles.
Devenez expert dans la supervision d'infrastructures avec Prometheus.

Dans cet ebook, nous allons configurer Prometheus pour cibler les instances de manière dynamique, afin de ne plus avoir à gérer les cibles manuellement. Cette approche permet de simplifier la maintenance des configurations, en utilisant la découverte de service par fichier (File SD) .
Nous allons voir comment :
- Référencer les cibles avec une configuration dynamique en utilisant File SD
- Configurer les cibles dynamiquement avec une source JSON ou Docker
Config Dynamique Prometheus via JSON
Nous allons d’abord configurer une source JSON pour nos cibles dynamiques. Cette méthode sera expliquée en détail, en nous basant sur la documentation officielle de Prometheus, où vous trouverez également la structure requise pour les configurations JSON et YAML.
Créer un Fichier JSON pour File SD
Ouvrir le terminal sur votre machine Debian.
Créer un fichier JSON dédié aux cibles Prometheus avec la commande suivante :
sudo nano /etc/prometheus/data.json
Ce fichier contiendra la configuration des cibles, dans un format JSON structuré comme suit :
[
{
"labels": {
"job": "filesd_node_exporter"
},
"targets": [
"localhost:9100",
"51.15.138.179:9100",
"demo-prometheus.foo.bar:9100"
]
}
]
- labels :Utilisé pour étiqueter le job que nous surveillons.
- targets :Liste des instances ou adresses à surveiller par Prometheus.
Enregistrez ce fichier une fois les modifications terminées.
Modifier prometheus.yml pour File SD
Ensuite, nous allons ajouter la configuration File SD à notre fichier principal prometheus.yml :
- Ouvrir le fichier prometheus.ymlavec la commande suivante :
sudo nano /etc/prometheus/prometheus.yml
- Ajouter ou modifierla configuration pour la découverte de services via fichier, comme indiqué ci-dessous :
- job_name: 'prometheus'
# Intervalle et délai de scrapping personnalisés pour Prometheus
scrape_interval: 5s
scrape_timeout: 5s
# Configuration statique de Prometheus
static_configs:
- targets: ["localhost:9090"]
- job_name: 'node'
# Découverte de services basée sur fichier (File SD)
file_sd_configs:
- files:
- /etc/prometheus/data.json
refresh_interval: 15s
- scrape_interval :Intervalle entre chaque collecte des données.
- scrape_timeout :Durée maximale d’attente pour chaque collecte.
- file_sd_configs :Permet de définir des fichiers JSON externes pour la découverte de services.
Enregistrez et fermez le fichier.
Redémarrer Prometheus : Mises à Jour Actives
Enfin, redémarrez Prometheus pour appliquer les changements :
sudo systemctl restart prometheus
Résumé des Cibles Dynamiques
En suivant ces étapes, vous avez configuré Prometheus pour cibler des instances de manière dynamique, en utilisant un fichier JSON pour la découverte de services. Cela simplifie la gestion des cibles dans des environnements dynamiques, et vous permet d’éviter les mises à jour manuelles.
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 Prometheus pour une découverte de service dynamique?
Quels sont les avantages de la découverte de service par fichier?
Comment créer et utiliser un fichier JSON pour Prometheus?
Comment modifier prometheus.yml pour la configuration File SD?
Comment redémarrer Prometheus après modification de la configuration?
Conclusion
La configuration dynamique de Prometheus avec File SD est un atout majeur pour simplifier la gestion des cibles dans des environnements dynamiques. Quel autre aspect de Prometheus souhaitez-vous explorer pour optimiser encore plus vos processus de surveillance?