Déploiement d'une Solution de Monitoring Centralisée : Prometheus et Grafana
Ce document technique détaille la mise en place d'une infrastructure de surveillance centralisée. Contrairement aux outils d'administration natifs (tels que les vues récapitulatives de Proxmox ou VMware vCenter), cette architecture permet la consolidation de métriques provenant d'environnements hétérogènes (Linux, Windows, Conteneurs), l'historisation à long terme des données et la création de tableaux de bord personnalisés.
1. Prérequis
- Un hôte Linux avec Docker et Docker Compose installés.
- Accès réseau entre le serveur de monitoring et les cibles (flux TCP ouverts sur les ports de collecte).
- Droits d'administration (root ou sudo) sur l'ensemble des machines.
2. Déploiement de l'infrastructure via Docker Compose
Le déploiement s'appuie sur la conteneurisation pour assurer l'isolation des services et la portabilité de la configuration.
2.1 Configuration du fichier de déploiement
Emplacement : /opt/monitoring/docker-compose.yml
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- ./prometheus_config:/etc/prometheus
- prometheus_data:/prometheus
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
volumes:
prometheus_data:
grafana_data:
2.2 Analyse des paramètres techniques
- Images : Utilisation des versions de production les plus récentes pour bénéficier des derniers correctifs de sécurité.
- Ports : Le port
9090est alloué à l'interface de gestion de Prometheus, le port3000à celle de Grafana. - Persistance (Volumes) :
- Le dossier local
./prometheus_configest monté dans le conteneur pour injecter la configuration de scraping. - Les volumes nommés
prometheus_dataetgrafana_datagarantissent l'intégrité des données historiques et des configurations graphiques lors des redémarrages ou mises à jour des conteneurs.
- Le dossier local
2.3 Accès et découverte des interfaces Web
Aperçu de l'interface d'accueil de Grafana lors de la première connexion sur le port 3000
Aperçu de l'interface web de Prometheus, accessible sur le port 9090.
3. Configuration de Prometheus
Prometheus utilise une méthode de collecte par extraction (scraping) à intervalles réguliers.
Emplacement : /opt/monitoring/prometheus_config/prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'prox3-host'
static_configs:
- targets: ['192.168.0.30:9100']
- job_name: 'windows'
static_configs:
- targets: ['192.168.0.21:9182']
Note : La section global définit la fréquence de collecte par défaut. La section scrape_configs identifie les cibles spécifiques par leur adresse IP et leur port d'écoute dédié.
4. Installation des agents d'exportation (Exporters)
Chaque machine cible doit exécuter un agent chargé d'exposer les métriques système dans un format lisible par Prometheus.
4.1 Environnement Linux (Proxmox / Debian / Ubuntu)
Installation du service node-exporter pour la collecte des métriques CPU, RAM et I/O.
4.2 Environnement Windows
Installation du service windows-exporter via le gestionnaire de paquets Chocolatey.
# Exécuter dans un terminal PowerShell avec privilèges d'administrateur
choco install prometheus-windows-exporter.install -y
4.3 Validation de l'état des points de collecte (Targets)
Vérification de l'état des endpoints dans l'interface Prometheus via le menu Targets. Les cibles doivent afficher le statut UP en vert pour confirmer la bonne communication.
5. Configuration de Grafana : Déclaration de la source de données
On se connecte à Grafana et on se rend dans l'onglet Data Sources
on ajoute Prometheus en tant que nouvelle source de données (Data source) pour relier les deux services.
Configuration de la source de données : il suffit d'indiquer l'URL de connexion pointant vers le conteneur Prometheus.
Une fois la connexion établie entre Grafana et Prometheus (en tant que Datasource), l'importation de tableaux de bord préconfigurés est recommandée.
5.1 Identifiants de Dashboards recommandés
- Linux (Node Exporter Full) : ID
1860 - Windows (Windows Exporter Dashboard) : ID
14694
On les retrouve via le lien suivant https://grafana.com/grafana/dashboards/
5.2 Résolution des anomalies d'affichage
- Absence de données (No Data) : Vérifier que la variable Instance ou Server en haut à gauche du dashboard pointe vers la cible correcte.
- Erreur de variable
${DS_PROMETHEUS}: Accéder aux paramètres du tableau de bord (Dashboard Settings), section Variables, et s'assurer que le type Datasource est correctement lié à votre instance Prometheus.
6. Maintenance et Administration
6.1 Gestion du cycle de vie des conteneurs
Lancement initial ou application de modifications structurelles :
Prise en compte d'une modification du fichier prometheus.yml :
6.2 Phase de vérification
Il est impératif de valider l'état de santé des points de collecte en accédant à l'interface de Prometheus à l'adresse suivante : http://<IP_SERVEUR>:9090/targets. Les cibles doivent présenter le statut UP (indiqué en vert).





