Mettre en place une stack de monitoring permet de superviser l'état de vos serveurs, applications et services critiques. Ce guide vous présente comment déployer une solution de monitoring moderne et efficace avec Prometheus, Grafana et Alertmanager.
Prérequis
Avant de commencer, assurez-vous d'avoir :
- Un serveur Debian 12 (ou équivalent)
- Docker et Docker Compose installés
- Un domaine (optionnel pour Grafana via HTTPS)
Installation des dépendances
# Mise à jour du système
sudo apt update && sudo apt upgrade -y
# Installation des dépendances Docker
sudo apt install -y ca-certificates curl gnupg lsb-release
# Ajout de la clé GPG Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Ajout du dépôt Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Installation de Docker et Docker Compose
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Vérification
docker --version
docker compose version
Création de la stack de monitoring
mkdir ~/monitoring && cd ~/monitoring
Créez un fichier docker-compose.yml :
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus:/etc/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
ports:
- '9090:9090'
alertmanager:
image: prom/alertmanager
volumes:
- ./alertmanager:/etc/alertmanager
command:
- '--config.file=/etc/alertmanager/alertmanager.yml'
ports:
- '9093:9093'
grafana:
image: grafana/grafana
ports:
- '3000:3000'
volumes:
- ./grafana:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
Configuration de Prometheus
Créez un dossier prometheus/ avec un fichier prometheus.yml :
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
Configuration d'Alertmanager
Créez un dossier alertmanager/ avec un fichier alertmanager.yml :
global:
resolve_timeout: 5m
route:
receiver: 'default'
receivers:
- name: 'default'
Lancement de la stack
docker compose up -d
Accès aux interfaces
- Prometheus :
http://<ip_serveur>:9090 - Grafana :
http://<ip_serveur>:3000(admin / admin) - Alertmanager :
http://<ip_serveur>:9093
Exemple de dashboard Grafana
Une fois connecté à Grafana, ajoutez Prometheus comme source de données et importez un dashboard officiel depuis grafana.com/dashboards.
Sauvegarde et restauration
# Exemple de sauvegarde
tar -czf monitoring_backup_$(date +%Y%m%d).tar.gz prometheus/ alertmanager/ grafana/
Mise à jour des images
docker compose pull
docker compose up -d
Comparaison des outils de monitoring
| Fonctionnalité | Prometheus | Zabbix | Nagios | Datadog |
| Type | Open Source | Open Source | Open Source | Propriétaire |
| Interface web | ✅ Oui | ✅ Oui | ✅ Oui | ✅ Oui |
| Alerting intégré | ✅ Oui | ✅ Oui | ✅ Basique | ✅ Oui |
| Scalabilité | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| Complexité initiale | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ |
| Prix | Gratuit | Gratuit | Gratuit | Payant |
Avantages de cette stack
- Open-source : Aucun coût de licence
- Extensible : Intégration facile avec d'autres outils (Node Exporter, Blackbox, etc.)
- Visualisation avancée : Grâce à Grafana
- Alerting puissant : Personnalisable avec Alertmanager
- Support communautaire large
Alternatives à considérer
- Netdata : Pour une approche plus légère, découvrez la supervision temps réel avec Netdata
- Zabbix : Pour un environnement plus orienté entreprise
- Nagios : Si vous préférez une solution plus ancienne et éprouvée
- Datadog : Pour une solution clé en main avec support professionnel
Extensions naturelles de cette stack
Cette foundation peut être enrichie avec plusieurs composants :
- Grafana Agent pour centraliser la collecte de logs et métriques depuis vos serveurs
- Grafana Tempo pour ajouter le tracing distribué et comprendre les flux applicatifs
- Uptime Kuma pour surveiller la disponibilité de vos services web et API
- Stack Loki pour une gestion centralisée complète des logs d'infrastructure
- Configuration avancée Prometheus/Grafana/Alertmanager pour découvrir des stratégies avancées de monitoring
Conclusion
Déployer une stack de monitoring avec Prometheus, Grafana et Alertmanager est simple, puissant et adapté à la majorité des cas d’usage. Vous avez maintenant une base solide pour surveiller vos services, détecter les anomalies et réagir rapidement.


