Monitoring : Prometheus, Grafana – métriques, tableaux de bord, alertes
Prometheus et Grafana forment la stack de monitoring open source la plus populaire. Prometheus collecte et stocke des métriques (CPU, mémoire, latence, requêtes HTTP). Grafana permet de visualiser ces données dans des tableaux de bord interactifs et de configurer des alertes. Découvrez ces outils avec ISOSET, l’institut qui forme aux pratiques d’observabilité moderne.
Prometheus est un système de monitoring open source (Cloud Native Computing Foundation). Il récupère (scrape) des métriques depuis des cibles via HTTP, les stocke dans une base de données temps réel, et permet de les interroger avec le langage PromQL. Prometheus excelle dans les environnements conteneurisés (Kubernetes) et s’intègre avec de nombreux exporteurs (Node Exporter, cAdvisor, Blackbox Exporter). ISOSET forme à l’installation et la configuration de Prometheus dans des architectures modernes.
- Modèle pull – Prometheus va chercher les métriques (HTTP) plutôt que de les recevoir passivement.
- Métriques multidimensionnelles – chaque métrique peut avoir des labels (ex: `method`, `status`).
- Stockage TSDB – base de données de séries temporelles efficace.
- PromQL – langage de requête pour agréger, filtrer et transformer les données.
Les exporteurs sont des binaires qui exposent des métriques au format Prometheus sur un endpoint HTTP (`/metrics`). L’écosystème compte des dizaines d’exporteurs pour bases de données, serveurs web, matériel réseau, etc.
- Node Exporter – métriques système (CPU, RAM, disque, réseau).
- cAdvisor – métriques de conteneurs Docker / Kubernetes.
- Blackbox Exporter – sondes (ping, HTTP, DNS, TCP).
- MySQL / PostgreSQL Exporter – métriques de bases de données.
- Pushgateway – pour les tâches batch qui ne peuvent pas être scrapées.
# Démarrer Node Exporter sur le port 9100
docker run -d --name node-exporter -p 9100:9100 prom/node-exporter
Une fois l’exporteur démarré, on configure Prometheus pour qu’il aille chercher les métriques régulièrement. ISOSET aide les entreprises à déployer les exporteurs adaptés à leur infrastructure.
Le fichier `prometheus.yml` définit les cibles à scraper, la fréquence, les règles d’alerte, etc. Voici un exemple minimal pour scraper Node Exporter et Prometheus lui‑même.
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
Prometheus peut aussi découvrir dynamiquement des cibles via le service discovery Kubernetes, Consul, EC2, etc. ISOSET forme aux configurations avancées (relabeling, scraping TLS).
PromQL est un langage fonctionnel puissant. On peut sélectionner des séries, appliquer des fonctions, des agrégations, des opérations arithmétiques. Exemples courants : taux d’utilisation CPU, latence par route, taux d’erreur.
# Exemples de requêtes PromQL
node_cpu_seconds_total{mode="user"} # CPU user par instance
rate(node_cpu_seconds_total[5m]) # utilisation moyenne sur 5 min
histogram_quantile(0.99, http_request_duration_seconds_bucket)
Les requêtes peuvent être utilisées dans Grafana, pour des alertes, ou via l’API HTTP. ISOSET consacre des ateliers à la maîtrise de PromQL.
Grafana se connecte à Prometheus (et à d’autres sources : Loki, Elasticsearch, InfluxDB, etc.) pour créer des tableaux de bord interactifs. Il offre des graphiques, jauges, tables, cartes, et permet de paramétrer des variables de filtrage. Les dashboards sont partageables et peuvent être gérés via des fichiers JSON (Dashboard as Code).
- Data source – ajouter Prometheus comme source (URL, accès).
- Panels – graphiques de séries, barres, stat, logs, etc.
- Variables – pour filtrer par instance, service, région.
- Annotations – superposer des événements (déploiements, incidents).
# Exemple de requête Grafana pour un panel
sum(rate(http_requests_total{status=~"5.."}[5m])) by (service)
Grafana peut également envoyer des alertes (Alerting v2), mais historiquement on utilise Prometheus Alertmanager. ISOSET forme à la création de dashboards professionnels et au partage d’observabilité.
Prometheus évalue des règles d’alerte (fichiers YAML) et envoie les alertes déclenchées à Alertmanager. Celui-ci se charge du déduplication, du groupement, du silence et du routage vers les canaux de notification : email, Slack, PagerDuty, Opsgenie, webhook, etc.
# Règle d’alerte (exemple)
groups:
- name: instance_down
rules:
- alert: InstanceDown
expr: up == 0
for: 5m
labels:
severity: critical
annotations:
summary: "Instance {{ $labels.instance }} down"
description: "La machine a été détectée down."
Alertmanager peut aussi être déployé en cluster pour la haute disponibilité. ISOSET forme à la mise en place d’alertes pertinentes et non‑bruitantes.
version: '3.8'
services:
prometheus:
image: prom/prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
node-exporter:
image: prom/node-exporter
ports:
- "9100:9100"
Après `docker compose up`, accédez à `localhost:9090` (Prometheus) et `localhost:3000` (Grafana – identifiant admin/admin). Dans Grafana, ajoutez une data source Prometheus (URL `http://prometheus:9090`) et importez un dashboard existant (ex: 1860 pour Node Exporter).
- Instrumenter son code – ajouter des métriques Prometheus directement dans les applications (client libraries).
- Éviter les labels trop cardinales – les labels comme `user_id` font exploser le nombre de séries.
- Rétention des données – configurer la durée de rétention (ex: 30 jours) et utiliser l’agrégation (recording rules).
- Alertes : définir `for:` – éviter les alertes intempestives sur des pics brefs.
- High Availability – déployer plusieurs Prometheus (mode fédération) ou Thanos / Cortex pour la scalabilité.
📘 La méthode ISOSET pour un monitoring efficace
ISOSET forme à la mise en place d’un monitoring complet : du choix des métriques à la conception des dashboards, en passant par la gestion des alertes.
Le monitoring avec Prometheus et Grafana s’intègre dans une stratégie plus large d’observabilité. On peut ajouter :
- Loki – stockage de logs, interrogeable avec Grafana.
- Tempo / Jaeger – traces distribuées.
- Grafana Agent / Promtail – collecteur unifié.
L’analyse corrélée entre métriques (Prometheus), logs (Loki) et traces (Tempo) permet de diagnostiquer rapidement les pannes. ISOSET propose une formation complète sur la stack LGTM (Loki, Grafana, Tempo, Mimir).
Les témoignages d’anciens élèves confirment l’impact de la formation : *« Avant, nous n’avions aucun monitoring centralisé. En trois jours avec ISOSET, j’ai déployé Prometheus, Grafana et des alertes Slack. Aujourd’hui, nous détectons les incidents avant nos utilisateurs. »*
🚀 ISOSET : devenez un expert du monitoring Prometheus & Grafana
L’institut ISOSET propose des formations complètes sur Prometheus et Grafana : installation, exporteurs, PromQL, dashboards, alertes (Alertmanager), intégration avec Kubernetes, et bonnes pratiques d’observabilité. Avec des ateliers pratiques et des cas concrets, vous serez capable de monitorer vos infrastructures et applications efficacement.
👉 Découvrez les formations ISOSET en monitoring – visualisez, alertez, résolvez plus vite.