Superviser avec Nagios
Transcription
Superviser avec Nagios
DI MARCANTONIO Joris Superviser avec Nagios Introduction Présentation du programme Etude demandé lors de mon stage Impact de la mise en place de la solution Mise en place du serveur de supervision Opérations préalables Installation de Nagios Configuration du serveur de supervision Création d’un groupe d’utilisateurs Création d’un utilisateur Création de groupe de machines Ajout des machines Ajout des services Aller plus loin avec Nagios Plugin NSClient ++ Plugin NRPE Critique Personnelle 1 DI MARCANTONIO Joris Présentation du programme Nagios est un programme open source sous Linux permettant de surveiller un parc informatique plus ou moins grand. L’outil de supervision effectue des contrôles intermittents sur les hôtes et services que vous spécifiez en utilisant des plugins externes qui retournent un status d’état à Nagios. Quand des problèmes surviennent, il peut envoyer des notifications à des contacts administratifs de façons différentes (email, SMS, messagerie instantanée, etc…). Les informations d’états courants, les historiques et les rapports peuvent être consultés à partir d’un simple navigateur. Etude demandée lors de mon stage Lors de mon stage au sein du bataillon des marins pompiers de Marseille, j’ai eu la chance de découvrir la supervision. En effet, ce terme est étudié lors de la deuxième année du bts SIO. J’ai donc pu bénéficier de l’infrastructure réseau existante du bataillon pour pouvoir m’initier à Nagios. Mon maitre de stage m’a alors présenté ses attentes : il souhaitait que je puisse superviser une partie du réseau de la caserne de Plombière où j’étais affecté. Etant novice dans la matière, il m’a d’abord expliqué en quoi consistait la supervision, m’a présenté les principales caractéristiques de Nagios, puis il m’a demandé de rédiger une note personnelle afin de pouvoir ensuite administrer mes propres équipements. J’ai donc disposé d’éléments d’infrastructures tels que des switchs et des routeurs pour me perfectionner. Impacts de la mise en place de la solution Avec la mise en place de mon projet, les techniciens informatiques ont pu découvrir de nouveaux problèmes et ainsi anticiper sur d’éventuelles pannes futures. Par exemple des disques durs de serveurs qui étaient pleins à 95% ou des processeurs bloqués à 100%. Nous avons aussi par la même occasion tenter de réparer un maximum de problèmes pour avoir une carte avec le moins d’alertes possibles, et ainsi trouver quelques équipements qui n’existaient plus ou encore qui avaient changés d’IP. 2 DI MARCANTONIO Joris Mise en place du serveur de supervision Opérations préalables Avant de commencer l’installation, bien vérifier que nous avons une distribution compatible avec Nagios. J’ai personnellement utilisé la distribution Debian de Linux qui est un environnement familier car souvent utilisé en cours. Nous devons également utiliser la dernière version de Nagios afin d’avoir la dernière mise à jour du logiciel Remarque : Opter prioritairement pour une installation en ligne de commande avec un gestionnaire de paquets (ici Aptitude) plutôt qu’avec un téléchargement vers un site distant en utilisant la commande wget pour différentes raisons : premièrement la sécurité puis souvent car les fichiers que l’on télécharge ne contiennent pas tous les fichiers de conf et sont parfois obsolètes. Installation de Nagios Dans la console, on exécute la commande : apt-get install nagios3 nagios3-doc Il est ensuite nécessaire de créer un utilisateur : Adduser nagios Afin de ne pas rencontrer le problème de droits, on utilise l’utilisateurs et des droits que l’on a établis plus haut pour les attribuer au dossier /usr/local/nagios/var/rw/ chown nagios:nagiocmd /usr/local/nagios/var/rw chmod 775 /usr/local/nagios/var/rw chmod g+s /usr/local/nagios/var/rw On redémare ensuite le service : Service nagios3 restart 3 DI MARCANTONIO Joris Une fois que l’on a attribué une @ IP à notre serveur, on doit ensuite saisir dans le navigateur son IP pour accéder à l’interface web. On doit ensuite obtenir cette interface : 4 DI MARCANTONIO Joris Configuration du serveur de supervision Création d’un groupe d’utilisateur Il nous faut d'abord créer un groupe d'utilisateur qui accueillera des utilisateurs propre au groupe. Pour cela, nous devons aller dans le fichier : contactgroup.cfg Création d’un utilisateur Une fois notre groupe d'utilisateurs créé, nous devons ajouter des utilisateurs dedans. Il est essentiel pour un nouvel utilisateur de renseigner son nom, son alias, son adresse mail (pour la future notification), le groupe auquel il fait partie (ici, nous pouvons en spécifier un directement car nous avons pris soin de le créer avant), puis s'il possède le droit d'accéder à l'interface Web, son mot de passe, sa langue, le format du mail, s'il est considéré comme un administrateur, s'il souhaite s'authentifier uniquement en local ou pas. On va donc dans le fichier contact.cfg Création de groupe de machine Afin de pouvoir rajouter une machine dans le serveur de supervision, il faut ajouter tout d'abord comme pour les utilisateurs, un groupe, en l'occurrence un groupe de machine ici. 5 DI MARCANTONIO Joris Création de machines Maintenant que nous avons créé des utilisateurs et des groupements de machine, nous allons pouvoir rajouter des machines. J’ai découvert la possibilité de créer une machine template, son principe est que l'on associe plusieurs machines à une seule. Lorsque l'on créé une machine template, on peut se servir des champs renseignés dans sa configuration pour configurer plus rapidement une autre machine, ainsi nous pouvons créer beaucoup de machine assez rapidement en utilisant une de ces machines templates. Une machine template se compose exactement comme une machine si ce n'est que l'on ne renseigne pas le nom, l'alias et l'adresse de la machine, en effet ces renseignements sont propres à une machine unique Ajout d’un service Un service peut être associé à plusieurs machines et comme pour la création des machines, nous pouvons associer un service template à plusieurs services, ce qui réduit beaucoup nos champs de saisie pour les services. Il est préférable de créer une machine à superviser dans lequel se trouvent ses fichiers define host puis define service. Voici les commandes que Nagios intègre par défaut: Sur notre interface web, on retrouve les différents hotes supervisés ainsi que les services associés. 6 DI MARCANTONIO Joris Aller plus loin dans Nagios : plugins NSClient++ et NRPE Lors de mon stage, j’ai du supervisé des éléments d’infrastructure comme des routeurs et des switchs mais également des serveurs avec deux OS différents : Windows et Linux. Pour surveiller des machines distantes il faut qu'il y ait sur ces machines un agent qui pourra renseigner les plugins Nagios des informations dont ils ont besoin. NSClient ++ Pour les machines windows, j’ai décidé d’utiliser le plugin NSClient ++ en installant l’agent sur la machine Windows, et d’utiliser le greffon check_nt depuis le serveur Nagios pour communiquer avec NSCLient++. Emplacement du fichier check_nt : /usr/local/nagios/etc/objects/commands J’ai ensuite installé l’agent NSClient++ sur une Windows XP. Pour cela, il faut aller sur le site nsclient.org puis téléchargé la dernière version en .msi 7 DI MARCANTONIO Joris Je l’ai ensuite installé sur ma machine XP : Remarque : Ne pas oublier d’activez les champs plugins, check_nt et check_nrpe On ouvre maintenant le gestionnaire de service afin de s'assurer que le service NSClient est autorisé à interagir 8 DI MARCANTONIO Joris Depuis notre serveur Nagios : On doit aller dans le fichier nagios.cfg pour ensuite décommenter la ligne correspondant à windows pour que Nagios puisse chercher dans ses répertoires : Voici le résultat que j’ai obtenu sur l’interface web de mon serveur Nagios à propos des remontés de la machine windows XP. On remarque que le plugin NSClient++ est bien fonctionnel. NRPE NRPE(Nagios Remote Plugin Executor) est un « Addons » pour Nagios qui permet d'exécuter des plugins sur un serveur Linux/Unix distant. Cela permet de surveiller des ressources locales (charge du processeur, utilisation de la mémoire, espace disque…) qui ne sont normalement pas disponibles depuis d'autres machines. Afin d'interroger le client NRPE il faudra utiliser le greffon "check_nrpe" sur notre serveur Nagios. On doit donc installer les plugins sur chaque machines distantes. Malheureusement, en raison de l’importance et de la confidentialité des serveurs présents au bataillon, je n’ai pas pu installer de clients, les serveurs étant déjà supervisés par un logiciel propriétaire : HP Open View. J’ai pu en revanche tester le plugin sur une machine virtuel Debian sous VirtualBox. Critique personnelle Pour ma part, je trouve que Nagios est un excellent outil très complet, on retrouve une très large communauté d’utilisateurs ce qui facilite les résolutions de problèmes sur diverses forums. J’ai vraiment apprécié le fait que Nagios nous indique le numéro de ligne ainsi que l’erreur produite dans un fichier de configuration. Cela nous fait gagner un temps précieux. Je trouve que la mise en main se fait assez rapidement une fois que l’on a l’habitude de créer plusieurs hôtes et plusieurs services. Nous pouvons également aller beaucoup plus loin dans la supervision en installant des modules complémentaire à Nagios tel que Centreon ou la cartographie Nagvis. En revanche, la configuration d’un tel logiciel est assez complexe pour les novices Le logiciel demande quelques notions en supervision, heureusement pour moi que les techniciens de mon stage ont pu prendre le temps de m’expliquer le fonctionnement général, en suivant différents tutoriels sur internet, j’ai réussi à simuler ma propre installation réseau avant de m’attaquer à certains équipements du service. 9