Semaine 31-32 : Supervision et Métriques 📈
Objectifs pédagogiques
- Mettre en place une architecture de monitoring basée sur Prometheus et Grafana.
- Centraliser les logs pour l’analyse des événements de sécurité et de performance en utilisant la Stack ELK.
- Créer des tableaux de bord pertinents et configurer un système d’alerte intelligent.
- Comprendre les notions d’Observabilité (métriques, logs, tracing).
Sommaire de Navigation
1 — Concepts de Supervision, Monitoring et Observabilité
La supervision est essentielle pour garantir la performance, la stabilité et la sécurité des applications et des infrastructures modernes.
Monitoring vs. Observabilité
| Monitoring (Surveillance) | Observabilité |
|---|---|
| Répond à la question : « Pourquoi mon système est-il lent ? » (Hypothèses connues) | Répond à la question : « Pourquoi mon système a-t-il fait ça ? » (Comprendre les états internes inconnus) |
| Se concentre sur des métriques prédéfinies (CPU, RAM, Disque). | Se concentre sur les trois piliers : Métriques, Logs et Tracing (traçage). |
Les Trois Piliers de l’Observabilité
- Métriques : Valeurs numériques agrégées au fil du temps (latence moyenne, taux d’erreurs). Idéal pour l’alerte.
- Logs : Événements textuels discrets avec horodatage (erreurs détaillées, connexions réussies). Idéal pour le diagnostic et le forensique.
- Tracing (Traçage) : Suit une seule requête utilisateur à travers tous les services d’une architecture distribuée. Idéal pour optimiser les microservices.
2 — Métriques avec Prometheus et Grafana
Prometheus est la solution de référence pour la collecte et le stockage des métriques en temps réel. Grafana est l’interface utilisateur pour la visualisation de ces métriques.
Prometheus : Un Système Pull
- Modèle « Pull » : Contrairement à d’autres systèmes, Prometheus ne reçoit pas les données, il les « tire » (scrape) à intervalles réguliers auprès des cibles.
- Exporters : Des logiciels légers installés sur les machines cibles qui exposent les métriques dans un format lisible par Prometheus (ex: Node Exporter pour les OS, cAdvisor pour les conteneurs).
- Langage PromQL : Le langage de requête puissant de Prometheus, permettant de sélectionner et d’agréger les données pour l’alerte et la visualisation.
Grafana : L’Interface de Visualisation
Grafana sert de tableau de bord pour toutes vos sources de données (Prometheus, bases de données, logs ELK).
- Datasource : Connexion à différentes sources de données via des plugins.
- Dashboards : Création de vues personnalisées (graphiques, jauges, tables) pour suivre l’état de l’infrastructure.
3 — Centralisation des Logs (Stack ELK/EFK)
Centraliser les logs depuis des milliers de sources est vital pour la sécurité, le dépannage et la conformité. La Stack ELK (Elasticsearch, Logstash, Kibana) est la solution la plus populaire.
Composants de la Stack ELK
| Composant | Rôle |
|---|---|
| Elasticsearch | Moteur de recherche et de stockage distribué, indexe et stocke les logs. |
| Logstash / Fluentd (EFK) | Collecteur/Processeur. Il ingère les logs, les filtre, les enrichit (parser) et les envoie à Elasticsearch. |
| Kibana | Interface de visualisation et d’exploration. Permet de chercher, d’analyser et de créer des tableaux de bord à partir des données Elasticsearch. |
Collecteurs (Beats)
Les Agents légers (appelés « Beats ») sont souvent utilisés pour collecter les logs et les métriques directement sur les serveurs avant de les envoyer à Logstash ou Elasticsearch.
- Filebeat : Collecte les fichiers journaux (logs).
- Metricbeat : Collecte les métriques système (CPU, RAM).
4 — Alerting et Tableaux de Bord (Dashboards)
Une supervision sans alerte est incomplète. Il faut être averti immédiatement quand un problème survient.
Critères d’Alerte (Basés sur les Métriques)
- Seuil Statique : L’alerte se déclenche lorsque la métrique dépasse une valeur fixée (Ex: CPU > 95%).
- Seuil Dynamique : L’alerte se déclenche lorsque la métrique dévie d’un comportement normal (détection d’anomalie).
- SLO (Service Level Objective) : L’alerte se déclenche lorsque vous risquez de ne pas atteindre votre objectif de niveau de service (Ex: alerte si la latence risque de dépasser 500 ms sur la dernière heure).
Prometheus Alertmanager
Alertmanager est le composant de Prometheus qui gère et route les alertes.
- Déduplication : Supprime les alertes répétitives pour éviter le « bombardement » des équipes.
- Groupement : Regroupe les alertes liées à un même incident pour envoyer une seule notification.
- Silencing : Permet de désactiver temporairement les alertes lors d’une fenêtre de maintenance planifiée.
Tableaux de Bord Pertinents
Un bon tableau de bord doit raconter une histoire simple et actionable :
- Golden Signals (Signaux d’Or) : Concentration sur les métriques les plus importantes :
- Latence (vitesse de réponse)
- Taux d’Erreur
- Trafic (demandes par seconde)
- Saturation (utilisation des ressources)