Nagios
From AleikoumWiki
m |
m |
||
Line 81: | Line 81: | ||
== From me == | == From me == | ||
- | Bon y a de tout et de rien ! Mais certaines choses peuvent etre interessantes | + | Bon y a de tout et de rien ! Mais certaines choses peuvent etre interessantes... |
- | === | + | === Rapports Email === |
+ | |||
+ | J'ai ecrit une suite de petits scripts qui permettent de generer et envoyer des rapports mails avec des graphs. | ||
+ | Ces scripts se basent sur l'outil Nagiosgraph, et plus particulierement sur une petite modification du show.cgi, pour generer ces graphs. | ||
+ | Ils sont ecrits en perl et peuvent tres facilement etre utilise en cron pour des rapports quotidien. | ||
+ | De plus j'ai cree deux petits CGIs (tjrs en perl) permettant de generer des rapports graphs a la volee via l'interface web ! | ||
+ | |||
+ | Voici un exemple de mail que je recois tout les jours | ||
+ | |||
+ | |||
+ | |||
+ | === Boucle NSCA === | ||
+ | |||
+ | |||
+ | === Plugins Perl === |
Revision as of 15:02, 14 January 2008
Retour d'experience, howtos, scripts supplementaires, philosophie autour du meilleur logiciel de supervision OpenSource : Nagios !
Contents |
L'Approche
Qu'est ce ?
Nagios est L'OUTIL de supervision OpenSource Linux ! Il repose entièrement sur le moteur NetSaint, un ancien système de monitoring. La première version de Nagios est parue en Mai 2002 et a été entièrement conçue par Ethan Galstad. Nagios offre les services suivants :
- Surveillance des services réseaux (SMTP, POP3, HTTP, NNTP, PING, etc.)
- Surveillance des ressources des hôtes (charge processeur, utilisation des disques, etc.)
- Système simple de plug-ins permettant aux utilisateurs de développer facilement leurs propres vérifications de services.
- Parallélisation de la vérifications des services.
- Possibilité de définir la hiérarchie du réseau en utilisant des hôtes "parents", ce qui permet la détection et la distinction entre les hôtes qui sont à l'arrêt et ceux qui sont injoignables.
- Notifications des contacts quand un hôte ou un service a un problème (via e-mail, pager, ou par une méthode définie par l'utilisateur)
- Possibilité de définir des gestionnaires d'évènements qui s'exécutent pour des évènements sur des hôtes ou des services, pour une résolution des problèmes pro-active
- Rotation automatique des fichiers log
- Support pour l'implémentation de la surveillance des hôtes de manière redondante
- Interface web, pour voir l'état actuel du réseau, notification et historique des problèmes, fichiers log, etc.
Nagios s'appuie sur un serveur Web (qui est un des pré requis) et des scripts CGIs qui permettent de représenter les analyses, les états des services ou des hôtes, les informations des notifications, les logs, la configuration... Son fonctionnement repose sur plusieurs fichiers de configuration qui regroupent les définitions des tests, des politiques, des contacts, des hôtes, etc... Bref plein de choses !
Voici une presentation que vous pouvez retrouver dans la documentation officielle de Nagios :
Nagios® is a system and network monitoring application. It watches hosts and services that you specify, alerting you when things go bad and when they get better. Nagios was originally designed to run under Linux, although it should work under most other unices as well. The only requirement of running Nagios is a machine running Linux (or UNIX variant) and a C compiler. You will probably also want to have TCP/IP configured, as most service checks will be performed over the network. You are not required to use the CGIs included with Nagios. However, if you do decide to use them, you will need to have the following software installed... 1. A web server (preferrably Apache) 2. Thomas Boutell's gd library version 1.6.3 or higher (required by the statusmap and trends CGIs) Nagios is licensed under the terms of the GNU General Public License Version 2 as published by the Free Software Foundation. This gives you legal permission to copy, distribute and/or modify Nagios under certain conditions. Read the 'LICENSE' file in the Nagios distribution or read the online version of the license for more details.
Pourquoi lui ?
La premiere fois que j'ai du mettre en place un Nagios de production, j'avais le cahier des charges suivants :
- la solution doit être en mesure d'offrir au moins les mêmes services que la solution actuellement déployée : BigBrother,
- permettre une meilleure réactivité vis à vis d'un problème, on parlera même de pro-activité dans le sens où l'administrateur doit pouvoir être averti des problèmes avant même que l'utilisateur ne s'en rende compte afin d'assurer un rétablissement plus rapide de la situation,
- permettre une politique de notifications complètes et entièrement paramètrables,
- assurer une bonne gestion des logs et historiques avec possibilité de les sauvegarder en base de données,
- possibilité de faire du polling SNMP en particulier pour contrôler les débits d'échange de données au niveau de routeurs/switchs par exemple voire même d'un hôte,
- permettre la représentation graphique des données récoltées,
- et être gratuit !!!
De nombreux produits pour la supervision existent sur le marché : Tivoli d'IBM, OVO et NNM d'HP, Patrol de BMC, COABA d'Alcove ou encore Ganglia développé par l'université de Berkeley. Cependant parmi toutes ces solutions aucune ne répond entièrement aux besoins cités plus haut :
- Les solutions proposées par Alcove, IBM, HP ou Patrol sont toutes payantes (compter près de 9 500 euros pour la solution la moins chère).
- La solution Ganglia ne permet pas de gérer les notifications et n'assure pas la gestion d'un historique temps réel.
Le choix s'est donc porté naturellement sur Nagios qui correspond parfaitement aux besoins... Surtout qu'on peut rajouter les avantages suivants : communaute importante et reactive (et meme en France !), l'outil est le plus souple du marche (car finalement il faut voir Nagios comme un ordonnanceur interpretant des resultats... on peut quasi tout faire pour peut qu'on puisse en faire un script :) ) .
Bref Nagios est vraiment a mon sens une solution ultime pour peu qu'on passe du temps a configurer l'outil comme il faut et a ecrire les plug-ins qui nous permettra de checker nos ressources (ca on l'expliquera apres !)
Liens
Mon super rapport de stage - Mise en place d'une solution de supervision - (attention 80/100 quand meme !) est dispo ici.
La Mise en Place
Les Prérequis
L'Installation
La Configuration
From me
Bon y a de tout et de rien ! Mais certaines choses peuvent etre interessantes...
Rapports Email
J'ai ecrit une suite de petits scripts qui permettent de generer et envoyer des rapports mails avec des graphs. Ces scripts se basent sur l'outil Nagiosgraph, et plus particulierement sur une petite modification du show.cgi, pour generer ces graphs. Ils sont ecrits en perl et peuvent tres facilement etre utilise en cron pour des rapports quotidien. De plus j'ai cree deux petits CGIs (tjrs en perl) permettant de generer des rapports graphs a la volee via l'interface web !
Voici un exemple de mail que je recois tout les jours