title: Nagios
text: # Nagios
  
  Nagios (anciennement appelé Netsaint) est une application permettant la surveillance système et réseau. Elle surveille les hôtes et services spécifiés, alertant lorsque les systèmes ont des dysfonctionnements et quand ils repassent en fonctionnement normal. C'est un logiciel libre sous licence GPL.
  
  C'est un programme modulaire qui se décompose en trois parties :
  
  * le moteur de l'application qui vient ordonnancer les tâches de supervision ;
  * l'interface web, qui permet d'avoir une vue d'ensemble du système d'information et des possibles anomalies ;
  * les sondes (appelées greffons ou plugins), une centaine de mini programmes que l'on peut compléter en fonction des besoins de chacun pour superviser chaque service ou ressource disponible sur l'ensemble des ordinateurs ou éléments réseaux du SI.
  
  Vu le manque de réactivité du développeur principal de Nagios et sa volonté de ne plus diffuser tous les modules sous licence libre, certains développeurs actifs sur le projet ont fait diverger Nagios pour créer Icinga (en).
  
  ## Historique
  
  Rebaptisé en 2002, il tire alors son nom du grec ἅγιος (hagios) signifiant saint. Puis en rétroacronymie Nagios Ain’t Gonna Insist On Sainthood.
  
  ## Possibilités
  
  * Superviser des services réseaux : SMTP, POP3, HTTP, NNTP, ICMP, SNMP, LDAP, etc.
  * Superviser les ressources des serveurs (charge du processeur, occupation des disques durs, utilisation de la mémoire paginée) et ceci sur les systèmes d'exploitation les plus répandus.
  * Interface avec le protocole SNMP.
  * La supervision à distance peut utiliser SSH ou un tunnel SSL (notamment via un agent NRPE).
  * Les plugins sont écrits dans les langages de programmation les plus adaptés à leur tâche : scripts shell (Bash, ksh, etc.), C++, Perl, Python, Ruby, PHP, C#, etc.
  * La vérification des services et des hôtes se fait en parallèle.
  * Possibilité de définir une hiérarchie dans le réseau pour pouvoir faire la différence entre un serveur en panne et un serveur injoignable.
  * La remontée des alertes est entièrement paramétrable grâce à l'utilisation de plugins : alerte par courrier électronique, SMS, etc.
  * Acquittement des alertes par les administrateurs.
  * Gestion des escalades pour les alertes (une alerte non acquittée est envoyée à un groupe différent).
  * Limitation de la visibilité, les utilisateurs peuvent avoir un accès limité à quelques éléments.
  * Capacité de gestion des oscillations (nombreux passages d'un état normal à un état d'erreur dans un temps court).
  * Possibilité de créer ses propres plugins de supervision, dans le langage désiré. Il suffit de respecter la norme Nagios des codes retour
     * 0 OK (tout va bien)
     * 1 WARNING (le seuil d'alerte est dépassé)
     * 2 CRITICAL (le service a un problème)
     * 3 UNKNOWN (impossible de connaître l'état du service)
  * Les possibilités de tests deviennent donc infinies, il suffit d'écrire tout plugin qui n'existerait pas déjà sur les sites spécialisés.
  * Créer ses propres plugins de notification, dans le langage désiré. Il suffit de prendre sur la ligne de commande les informations permettant notifier l'utilisateur correspondant.
  