Installation Prometheus & Grafana

- Mainteneur(s) : MEDO Louis
- Dernière validation technique : 2026-01-07
Contexte
Déployer la stack technique (Prometheus + Grafana) permettant la supervision de l'infrastructure via Docker Compose, avec authentification centralisée (SSO).
📋 Prérequis
Avant de commencer, s'assurer de :
- Avoir les accès SSH
rootousudosur la machine cible (ex:mgt-prod-01). - Avoir Docker et Docker Compose installés.
- Avoir Git installé.
- Avoir créé l'application "Grafana" dans Authentik pour récupérer le
Client IDet leClient Secret.
A. Préparation de l'environnement
1. Création de l'arborescence
Nous allons isoler la stack dans un dossier dédié.
Sur l'infrastructure Loutik, les templates Ansible (Docker) créer automatiquement un dossier
docker(contient les fichiers de configuration) etdocker-compose(contient les scripts) dans le/homepermettant de stocker tous les fichiers de configuration et les scripts.
# Création du dossier et déplacement dedans
mkdir -p /home/docker/supervision
cd /home/docker/supervision
2. Récupération des sources
Téléchargement du dépôt contenant le code d'infrastructure ("Infrastructure as Code").
# Le point '.' clone le contenu directement dans le dossier actuel sans créer de sous-dossier
git clone [https://github.com/FireToak/docker-deployment-stack-grafana-prometheus.git](https://github.com/FireToak/docker-deployment-stack-grafana-prometheus.git) .
Utiliser git clone <url> . permet d'éviter d'avoir un chemin du type /home/docker/supervision/docker-deployment-stack.... Les fichiers docker-compose.yaml se retrouvent directement à la racine de votre dossier de travail.
3. Vérification
S'assurer que les fichiers sont présents.
ls -l
# Doit afficher : docker-compose.yaml, env.example, .gitignore
B. Configuration
1. Configuration des secrets (SSO)
Docker Compose a besoin des identifiants Authentik avant de démarrer. Nous utilisons un fichier .env.
# Duplication du template de configuration
cp env.example .env
# Édition du fichier
vi .env
Remplir les variables SSO_ID et SSO_SECRET avec les valeurs fournies par Authentik.
2. Configuration de Prometheus
Le fichier de configuration de Prometheus est monté depuis l'hôte (Bind Mount). Il doit être créé avant le lancement.
# Création du dossier de conf s'il n'existe pas (chemin défini dans le docker-compose)
mkdir -p /home/docker/prometheus/
# Création/Édition du fichier
nano /home/docker/prometheus/prometheus.yml
Insérer la configuration de base :
global:
scrape_interval: 15s # Fréquence de récupération des métriques
scrape_configs:
# Job 1 : Auto-surveillance de Prometheus
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
L'indentation (les espaces) est cruciale en YAML. Une mauvaise indentation empêchera Prometheus de démarrer.
C. Déploiement
1. Lancement de la stack
Exécuter la commande suivante pour télécharger les images et lancer les conteneurs en arrière-plan.
docker compose up -d
up: Crée et démarre les conteneurs.-d(Detached) : Lance les conteneurs en tâche de fond (rend la main sur le terminal).
2. Vérification immédiate
Vérifier que les conteneurs sont en statut Up (et non Restarting).
docker compose ps
Validation Finale
1. Accès Web
- Grafana : Accéder à
https://supervision.loutik.fr.- Le bouton de connexion SSO doit apparaître.
- La connexion doit réussir via Authentik.
- Prometheus : Accéder à
http://<IP_SERVEUR>:9090.
Pour que la résolution de supervision.loutik.fr le DNS et le reverse proxy doivent être configurés.
2. Vérification des logs (Optionnel)
Si un service ne répond pas, vérifier les logs :
docker compose logs -f grafana
# ou
docker compose logs -f prometheus
Mise à jour de la configuration (Exemple : Ajout d'un hôte)
Pour ajouter une cible (ex: un serveur Web) à surveiller :
- Éditer le fichier sur l'hôte :
nano /home/docker/prometheus/prometheus.yml - Ajouter le job :
- job_name: 'webserver'
static_configs:
- targets: ['192.168.1.205:9100'] - Demander à Prometheus de recharger sa configuration (Hot Reload) sans redémarrer le conteneur :
docker exec -it prometheus kill -HUP 1
Rollback (Retour arrière)
En cas de problème critique nécessitant un nettoyage complet :
- Arrêter et supprimer les conteneurs et le réseau :
docker compose down - Pour supprimer également les volumes de données (⚠️ Perte définitive des historiques) :
docker compose down -v