Installer Prometheus avec Docker Compose en 2 minutes !
Présentation
Vous souhaitez mettre en place rapidement un outil de monitoring Open Source pour collecter des métriques sur vos systèmes Linux ? Collecter des métriques sur vos API ? Sur vos Conteneurs Docker ? Vos Pods Kubernetes ? Prometheus est fait pour vous !
Très utilisé dans les environnements DevOps, Prometheus permet de récupérer des métriques à intervalles réguliers, de les stocker dans une TSDB (Time Series DataBase) et de les requêter avec son langage PromQL.
Regardons dans cet article comment installer Prometheus avec Docker Compose en 2 minutes.
Le Docker Compose
Pour une installation simple, nous allons créer deux fichiers :
docker-compose.ymlprometheus.yml
Commençons par créer un dossier dédié :
mkdir prometheus
cd prometheusNous allons ensuite créer le fichier docker-compose.yml suivant :
---
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
ports:
- 9090:9090
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus-data:/prometheus
command:
- "--config.file=/etc/prometheus/prometheus.yml"
- "--storage.tsdb.path=/prometheus"
user: root
volumes:
prometheus-data:Dans ce docker-compose, nous déployons un seul service prometheus.
Le port 9090 du conteneur est exposé sur le port 9090 de l’hôte. Cela permettra d’accéder à l’interface web directement depuis un navigateur.
J’ai également ajouté un volume Docker managé prometheus-data, monté sur /prometheus, afin de conserver les données de Prometheus même après un redémarrage du conteneur.
Si vous souhaitez configurer des règles d'alerting avec AlertManager notamment, vous pouvez ajouter le volume Docker suivant :
volumes:
- ./alert.rules.yml:/etc/prometheus/alert.rules.ymlConfiguration Prometheus
Il faut maintenant créer le fichier de configuration principal de Prometheus : prometheus.yml.
Pour commencer simplement, nous allons configurer Prometheus pour qu’il supervise ses propres métriques en déclarant une première target :
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets:
- "prometheus:9090"La directive scrape_interval indique l'intervalle à laquelle Prometheus doit récupérer (ou scraper) les métriques.
Dans notre cas, nous avons un seul job nommé prometheus, qui cible le service prometheus sur le port 9090.
Comme le conteneur Prometheus est lancé avec Docker Compose, le nom du service prometheus est résolu automatiquement dans le réseau Docker Compose.
Déploiement
Maintenant que les fichiers sont prêts, il suffit d’exécuter la commande Docker Compose suivante :
docker compose up -dVous pouvez vérifier que le conteneur Docker est bien démarré avec :
docker compose psNAME IMAGE STATUS PORTS
prometheus prom/prometheus:latest Up 0.0.0.0:9090->9090/tcpAccès à l’interface web
Il suffit maintenant d’accéder à Prometheus depuis votre navigateur :
http://localhost:9090Conclusion
Et voilà ! Seulement deux fichiers à créer et une commande à exécuter pour disposer d’une instance Prometheus fonctionnelle avec Docker Compose.
Prometheus est maintenant prêt à collecter des métriques. Pour aller plus loin, il sera très intéressant de le coupler avec Grafana afin de créer de beaux dashboards.
J'ai d'ailleurs écrit un article sur comment déployer Grafana avec Docker compose en 2 minutes que vous pouvez retrouver ici :

