📊 Supervision & Monitoring

Bloc 2 Module 2.2 BTS SIO SISR
FormationBTS SIO option SISR — IRIS Mediaschool
BlocB2 — Administration Systèmes & Réseaux
ModuleM2.2 — Administration Linux
PrérequisShell Linux (C2.2.1), gestion des services (C2.2.2), serveurs web (C2.2.3)

🎯 Objectifs

  • Comprendre les enjeux et objectifs de la supervision informatique
  • Surveiller les ressources système (CPU, RAM, disque, réseau)
  • Connaître le protocole SNMP et son utilisation
  • Déployer et configurer Zabbix pour la supervision d'infrastructure
  • Découvrir Grafana, Prometheus et la stack ELK
  • Mettre en place des alertes et notifications

📖 Pourquoi superviser ?

La supervision (ou monitoring) consiste à surveiller en continu l'état de l'infrastructure informatique — serveurs, réseaux, services, applications — afin de détecter les anomalies avant qu'elles ne deviennent des pannes.

Objectifs de la supervision

  • Disponibilité : garantir que les services sont accessibles (SLA, uptime 99,9%)
  • Performance : détecter les ralentissements et goulots d'étranglement
  • Anticipation : prévoir les pannes grâce aux tendances (disque plein dans 3 jours, etc.)
  • Sécurité : détecter les comportements anormaux (pics de trafic, tentatives d'intrusion)
  • Capacité : planifier les évolutions d'infrastructure (capacity planning)

Métriques clés

CatégorieMétriquesSeuils d'alerte typiques
CPUUtilisation (%), load average, temps iowait> 80% soutenu
MémoireRAM utilisée, swap utilisé, buffers/cache> 90% RAM, swap > 0
DisqueEspace utilisé (%), I/O, latence> 85% espace
RéseauBande passante, paquets perdus, latence> 70% bande passante
ServicesÉtat (up/down), temps de réponse, codes HTTPTemps > 5s, code ≠ 200

📖 Monitoring système en ligne de commande

Avant de déployer des outils de supervision, il est essentiel de maîtriser les commandes de monitoring intégrées à Linux :

CommandeDescriptionUsage
top / htopProcessus en temps réel, CPU, RAMhtop
vmstatStatistiques mémoire, swap, CPU, I/Ovmstat 1 5 (toutes les 1s, 5 fois)
iostatStatistiques I/O des disquesiostat -xz 1
dfEspace disque par partitiondf -h
duEspace utilisé par répertoiredu -sh /var/log/*
freeUtilisation de la mémoirefree -h
sarHistorique de performances (sysstat)sar -u 1 10
ss / netstatConnexions réseau activesss -tulnp
iftopBande passante en temps réelsudo iftop -i eth0
# Script rapide de diagnostic système
echo "=== CPU ==="
uptime
echo "=== MÉMOIRE ==="
free -h
echo "=== DISQUE ==="
df -h | grep -E '^/dev'
echo "=== TOP 5 PROCESSUS CPU ==="
ps aux --sort=-%cpu | head -6
echo "=== CONNEXIONS RÉSEAU ==="
ss -tulnp | grep LISTEN

📖 SNMP : protocole de supervision

Principes

Le SNMP (Simple Network Management Protocol) est le protocole standard pour la supervision des équipements réseau et serveurs. Il fonctionne sur le modèle agent/manager :

  • Agent SNMP : installé sur l'équipement supervisé, expose les données
  • Manager SNMP : le serveur de supervision qui interroge les agents
  • MIB (Management Information Base) : base de données structurée des informations disponibles
  • OID (Object Identifier) : identifiant unique pour chaque métrique (ex : 1.3.6.1.2.1.1.5.0 = hostname)
  • Communauté : chaîne d'authentification (SNMP v1/v2c) — ex : public (lecture), private (écriture)
VersionAuthentificationChiffrementUsage
SNMP v1Communauté (texte clair)NonObsolète
SNMP v2cCommunauté (texte clair)NonEncore très répandu
SNMP v3Utilisateur/mot de passeOui (DES, AES)Recommandé en production
⚠️ Attention

SNMP v1 et v2c transmettent la communauté en clair sur le réseau. En production, utilisez toujours SNMP v3 avec authentification et chiffrement, ou isolez le trafic SNMP dans un VLAN dédié.

# Installer les outils SNMP
sudo apt install snmp snmpd snmp-mibs-downloader

# Interroger un agent SNMP
snmpwalk -v2c -c public 192.168.1.1 system
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.5.0

📖 Zabbix : supervision d'infrastructure

Architecture

Zabbix est une solution de supervision open source complète et très utilisée en entreprise. Son architecture se compose de :

  • Zabbix Server : cœur du système, collecte et traite les données
  • Zabbix Agent : installé sur chaque hôte supervisé, collecte les métriques locales
  • Base de données : stocke la configuration et l'historique (MySQL, PostgreSQL)
  • Interface web : tableau de bord, configuration, graphiques
  • Zabbix Proxy (optionnel) : relais pour les sites distants

Concepts clés

ConceptDescription
HostÉquipement supervisé (serveur, switch, routeur)
ItemMétrique collectée (CPU usage, espace disque, etc.)
TriggerCondition d'alerte (ex : CPU > 90% pendant 5 min)
TemplateModèle réutilisable (items + triggers + graphiques)
ActionRéaction automatique à un trigger (notification, script)
Host groupRegroupement logique d'hôtes (Serveurs Web, BDD, etc.)
# Installer l'agent Zabbix (Debian/Ubuntu)
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo apt update
sudo apt install zabbix-agent2

# Configurer l'agent
sudo nano /etc/zabbix/zabbix_agent2.conf
# Server=192.168.1.100        (IP du serveur Zabbix)
# Hostname=mon-serveur-web

sudo systemctl enable --now zabbix-agent2

📖 Nagios / Icinga

Nagios est l'un des outils de supervision les plus anciens et les plus répandus. Icinga est un fork moderne de Nagios avec une interface web améliorée et une API REST.

Fonctionnement par plugins

Nagios/Icinga fonctionne avec un système de plugins (ou checks) : des scripts qui testent un service et retournent un code de statut :

Code retourStatutDescription
0OKLe service fonctionne normalement
1WARNINGSeuil d'avertissement atteint
2CRITICALSeuil critique atteint
3UNKNOWNImpossible de déterminer l'état
# Exemple de plugin : vérifier l'espace disque
/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /

# Exemple de plugin : vérifier un service HTTP
/usr/lib/nagios/plugins/check_http -H example.com -p 443 -S

📖 Grafana : visualisation de données

Grafana est une plateforme open source de visualisation et d'analyse de données. Elle ne collecte pas de données elle-même, mais se connecte à des sources de données (data sources) :

  • Prometheus, InfluxDB, Graphite (métriques time-series)
  • Elasticsearch (logs)
  • MySQL, PostgreSQL (données relationnelles)
  • Zabbix (via plugin)

Grafana permet de créer des dashboards interactifs avec des graphiques, jauges, tableaux et cartes. Les dashboards peuvent être partagés, exportés en JSON et versionnés.

# Installer Grafana (Debian/Ubuntu)
sudo apt install -y apt-transport-https software-properties-common
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update && sudo apt install grafana

sudo systemctl enable --now grafana-server
# Accès : http://localhost:3000 (admin/admin)

📖 Prometheus : collecte de métriques

Prometheus est un système de monitoring et d'alerte open source, conçu pour les architectures cloud et microservices. Il utilise un modèle pull : Prometheus interroge activement les cibles à intervalles réguliers.

Fonctionnement

  • Exporters : exposent les métriques au format Prometheus (node_exporter pour le système, blackbox_exporter pour les checks HTTP)
  • Scraping : Prometheus récupère les métriques via HTTP à intervalles configurés
  • TSDB : base de données time-series intégrée
  • PromQL : langage de requête pour interroger et agréger les métriques
  • Alertmanager : gestion des alertes (déduplication, groupement, routage)
# Exemples de requêtes PromQL

# Utilisation CPU moyenne sur 5 minutes
100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# Espace disque disponible en Go
node_filesystem_avail_bytes{mountpoint="/"} / 1024 / 1024 / 1024

# Taux de requêtes HTTP par seconde
rate(http_requests_total[5m])
💡 Astuce

La combinaison Prometheus + Grafana est devenue le standard de facto pour le monitoring des infrastructures modernes et des environnements conteneurisés (Docker, Kubernetes).

📖 Stack ELK : gestion centralisée des logs

La stack ELK (aussi appelée Elastic Stack) est un ensemble d'outils pour la collecte, le traitement et la visualisation des logs :

ComposantRôleDescription
ElasticsearchStockage & rechercheMoteur de recherche distribué, indexe et stocke les logs
LogstashCollecte & transformationIngère les logs, les parse, les filtre et les envoie à Elasticsearch
KibanaVisualisationInterface web pour explorer les logs, créer des dashboards
Beats (optionnel)Agents légersFilebeat (logs), Metricbeat (métriques), Packetbeat (réseau)

Pipeline typique :

# Flux de données ELK
Serveurs (Filebeat) → Logstash (parsing/filtrage) → Elasticsearch (indexation) → Kibana (visualisation)

# Exemple de configuration Filebeat
# /etc/filebeat/filebeat.yml
filebeat.inputs:
  - type: log
    paths:
      - /var/log/nginx/access.log
      - /var/log/nginx/error.log

output.logstash:
  hosts: ["logstash-server:5044"]

📖 Alertes et notifications

Un système de supervision sans alertes n'a que peu d'intérêt. Les alertes doivent être :

  • Pertinentes : éviter la « fatigue d'alertes » (alert fatigue) en ne notifiant que les problèmes réels
  • Graduées : warning → critical → escalade
  • Actionnables : l'alerte doit indiquer clairement le problème et la marche à suivre

Canaux de notification

CanalUsageOutils
EmailAlertes non urgentes, rapportsSMTP, Postfix, SendGrid
Slack / TeamsAlertes en temps réel pour l'équipeWebhooks
SMS / appelsAlertes critiques hors heuresPagerDuty, OpsGenie
WebhooksIntégration avec d'autres systèmesAPI REST personnalisées
# Exemple : alerte par webhook Slack (script Bash)
#!/bin/bash
WEBHOOK_URL="https://hooks.slack.com/services/XXX/YYY/ZZZ"
MESSAGE="⚠️ ALERTE : Espace disque > 90% sur srv-web-01"

curl -s -X POST -H 'Content-type: application/json' \
  --data "{\"text\": \"$MESSAGE\"}" \
  "$WEBHOOK_URL"

📖 Bonnes pratiques de supervision en entreprise

  • Superviser par couches : infrastructure (réseau, serveurs) → services (HTTP, BDD) → applications (temps de réponse, erreurs)
  • Définir des SLA : fixer des objectifs mesurables de disponibilité et de performance
  • Documenter les procédures : chaque alerte doit avoir une procédure de résolution associée
  • Historiser les métriques : conserver l'historique pour l'analyse de tendances et le capacity planning
  • Tester les alertes : vérifier régulièrement que le système d'alerte fonctionne (test de bout en bout)
  • Centraliser les dashboards : un tableau de bord unique pour une vue globale de l'infrastructure
  • Automatiser la remédiation : pour les problèmes connus et récurrents (redémarrage de service, nettoyage de logs)
⚠️ Piège classique

Trop d'alertes tuent les alertes. Si votre équipe reçoit des centaines de notifications par jour, elle finira par les ignorer. Concentrez-vous sur les métriques critiques et ajustez les seuils progressivement.

📝 QCM — Testez vos connaissances

  1. Quels sont les principaux outils de monitoring serveur Linux ?
  2. Quelle commande affiche les processus en cours sous Linux ?
  3. Que surveille la commande iostat ?
  4. Qu'est-ce que Prometheus ?
  5. Quel outil de visualisation est souvent associé à Prometheus ?
  6. Quelle commande vérifie l'espace disque disponible ?
📝 Afficher les corrections
  1. Nagios, Zabbix, Prometheus et Grafana — Ces outils surveillent les métriques système (CPU, RAM, disque, réseau) et alertent en cas de problème.
  2. top ou htop — top affiche les processus en temps réel, htop offre une interface améliorée et interactive.
  3. Les performances d'entrée/sortie des disques — iostat affiche l'utilisation CPU et les statistiques I/O des périphériques de stockage.
  4. Un système de monitoring et d'alerting open source — Prometheus collecte des métriques via le modèle pull (scraping HTTP) et les stocke en time-series.
  5. Grafana — Grafana crée des dashboards graphiques à partir des données Prometheus (et autres sources).
  6. df -h — df -h affiche l'utilisation des systèmes de fichiers montés en format lisible (human-readable).
💡 À retenir

La supervision est essentielle pour garantir la disponibilité et la performance de l'infrastructure. Zabbix est la référence pour la supervision traditionnelle, Prometheus + Grafana pour les environnements modernes, et la stack ELK pour la gestion centralisée des logs. Maîtrisez les commandes système de base avant de déployer des outils complexes.

← Cours précédent Retour au module →