1. Définir le service de supervision
Commencer par les services métier et leurs dépendances : accès Internet, DNS, identité, stockage, application, sauvegarde. Pour chaque contrôle, définir propriétaire, seuil, fréquence, délai d’escalade, plage de notification et procédure associée.
| Niveau | Exemples | Réaction |
|---|---|---|
| Disponibilité | Ping, TCP, HTTP, DNS | Confirmer la panne et la dépendance |
| Capacité | Disque, mémoire, files d’attente | Intervenir avant saturation |
| Fonctionnel | Connexion applicative, transaction synthétique | Valider le service vu par l’utilisateur |
| Sauvegarde | Dernier job, taille, test de restauration | Escalade immédiate selon criticité |
2. Installer et vérifier
Utiliser en priorité les paquets et guides de la distribution supportée. Si une compilation est nécessaire, figer version et sommes de contrôle, limiter les dépendances et documenter la procédure de mise à jour.
sudo systemctl status nagios
sudo nagios -v /usr/local/nagios/etc/nagios.cfg
sudo systemctl reload nagios
/usr/local/nagios/libexec/check_ping -H 192.0.2.10 -w 100.0,20% -c 500.0,60%Toujours exécuter la validation de configuration avant un reload. Un simple caractère erroné peut empêcher le moteur de redémarrer et interrompre toute la supervision.
3. Modéliser hôtes, services et templates
define host {
use linux-server
host_name srv-fichiers-01
address 192.0.2.10
}
define service {
use generic-service
host_name srv-fichiers-01
service_description HTTPS
check_command check_https
}- Factoriser intervalles, contacts et options dans des templates
- Nommer les objets selon l’inventaire et éviter les adresses dispersées
- Créer des dépendances pour ne pas notifier tous les serveurs derrière un routeur indisponible
- Versionner la configuration sans secrets ni chaînes de communauté SNMP
4. Comprendre les plugins et les états
| Code | État | Usage |
|---|---|---|
| 0 | OK | Service conforme |
| 1 | WARNING | Dégradation ou seuil préventif |
| 2 | CRITICAL | Indisponibilité ou seuil critique |
| 3 | UNKNOWN | Le contrôle lui-même ne peut conclure |
Tester chaque plugin manuellement sous l’utilisateur Nagios. Un état SOFT attend les nouvelles tentatives ; un état HARD déclenche les actions et notifications prévues. Ajuster max_check_attempts pour éviter les alertes sur microcoupures sans retarder un incident réel.
5. Notifications et astreinte
- Tester le canal d’alerte de bout en bout et surveiller lui-même son fonctionnement
- Planifier plages horaires, jours fériés, acquittements et escalades
- Inclure hôte, service, état, durée, sortie du plugin et lien vers la procédure
- Éviter d’envoyer un même incident à toute l’équipe sans responsable désigné
Une alerte sans action attendue est du bruit. Supprimer, corriger ou transformer tout contrôle qui génère régulièrement une notification sans décision opérationnelle.
6. Sécurité et maintenance
- Limiter l’interface web par réseau, TLS et authentification
- Utiliser SNMPv3 lorsque possible et stocker les secrets hors configuration versionnée
- Restreindre sudo et les plugins exécutant des commandes distantes
- Mettre à jour Core, plugins, système et serveur web
- Sauvegarder configuration, scripts personnalisés et historique nécessaire
7. Diagnostic
| Erreur | Contrôles |
|---|---|
| No output returned | Chemin du plugin, droits, interpréteur, dépendances, SELinux/AppArmor |
| UNKNOWN | Arguments, timeout, DNS, certificat, format de sortie |
| Notification absente | État HARD, période, contact, option de notification, commande mail |
| Fausse alerte | Seuil, unité, fréquence, dépendance, charge normale de référence |
Sources officielles et documentation éditeur
Les commandes sont des modèles à adapter. Vérifiez la version installée, les prérequis, les sauvegardes et le plan de retour arrière avant toute modification en production.
- Nagios Core — documentation officielle ↗
- Nagios Core — plugins ↗
- Nagios Core — notifications ↗
- ANSSI — piloter un projet de supervision de sécurité ↗
Dossier technique produit par Donnella. Dernière revue documentaire : août 2026.