Amélioration de Nagios
Faciliter la configuration de Nagios avec NConf
L’un des avantages de Nagios est son architecture modulaire qui lui permet d’être intégré avec d’autres solutions, en particulier avec des solutions open source. La modularité de son architecture lui permet aussi d’étendre ses fonctionnalités.
Une des améliorations que nous pouvons apporter à Nagios est de faciliter sa configuration et son administration à travers une interface web. Nagios utilise de nombreux fichiers de configurations. De plus, la gestion de ces fichiers comme l’ajout, la modification ou la suppression se fait manuellement. Aussi, est-il fort probable de commettre des erreurs et de perdre beaucoup de temps dans la configuration. Il est utile de pallier ce manque avec une autre solution libre dans le même écosystème que Nagios. Généralement, ces solutions possèdent une interface web conviviale permettant à un administrateur de gérer facilement la configuration du serveur de supervision Nagios à partir d’un navigateur.
Parmi les solutions existantes, nous allons nous intéresser à l’outil open source NConf.
1. Installation et configuration de NConf
NConf est un outil web qui permet aux administrateurs de Nagios de gérer la configuration complète de leur serveur de supervision à partir d’une interface web accessible sur un navigateur. Cette solution peut être utilisée sur des périmètres de supervision de petite ou moyenne taille mais elle est spécifiquement désignée pour les grands environnements. NConf est principalement destiné aux administrateurs système qui connaissent déjà Nagios, mais qui sont à la recherche d’un moyen plus pratique pour gérer leurs fichiers de configurations. Il est basé sur une interface web conviviale écrite en PHP et une base de données MySQL pour sauvegarder la configuration et des paquets Perl pour gérer les fonctionnalités internes de l’application.
NConf offre plusieurs avantages comme :
-
Définition des modèles et gestion des dépendances
L’un des principaux avantages est que NConf permet aux utilisateurs de définir des modèles pour les hôtes et les services, qui peuvent être...
Générer des graphes avec PNP4Nagios
PNP (PNP is Not Perfparse) est un module d’extension à Nagios permettant de collecter les données de performance remontées par les plugins et les sauvegarder dans des bases de données RRD (Round Robin Databases) afin de les présenter ensuite dans des graphes à travers son interface web PHP. PNP est enregistré sous le nom "PNP4Nagios".
La version actuelle de PNP, sous l’appellation 0.6, pourra être installée indépendamment de l’installation de Nagios. Ainsi elle offre plusieurs fonctionnalités à savoir :
-
Une amélioration de l’installateur avec une possibilité de préciser l’emplacement des layouts : --with-layout.
-
Une interface web est recodée avec le framework PHP kohana ce qui lui permet d’être plus conviviale, facile à utiliser et surtout personnalisable.
-
Une possibilité d’exporter à partir des bases de données RRD en XML, CSV et JSON en utilisant la fonction RRDtool "xport".
-
Une optimisation pour le modèle par défaut (default.php).
-
Recodage de la fonctionnalité génération du PDF.
PNP supporte plusieurs modes de fonctionnement, le choix du mode dépend de la complexité et des besoins de performances requis. Suivant le mode de fonctionnement choisi, Nagios exécute la commande pour vérifier l’état d’un hôte ou service, les données de performances sont récupérées et parsées dans un fichier temporaire pour être traitées plus tard ou passées directement vers le script process_perfdata.pl. Ce dernier utilise l’outil RRDtool pour traiter les données et les stocker dans des fichiers RRD. Trois modes de fonctionnement sont disponibles avec PNP à savoir :
-
Mode synchronisé : avec ce mode et après l’exécution de la commande de vérification de l’état de l’hôte ou service, Nagios fait appel directement au script process_perfdata.pl pour traiter les données de performance sans les stocker dans un fichier temporaire.
-
Mode bulk : avec ce mode, les données de performance récupérées par le plugin de contrôle sont sauvegardées dans...
La cartographie avec NagVis
Une des extensions les plus populaires utilisées pour étendre les fonctionnalités de Nagios en termes de cartographie est NagVis. NagVis est une extension open source de visualisation pour Nagios permettant la création et la génération de cartographie métier de la supervision. En utilisant les données fournies par un backend et collectées par Nagios, NagVis mettra à jour les objets (hôtes, services, groupe d’hôte et groupe des services) placés sur des cartes à chaque période de temps pour refléter leur état actuel. Un backend fait la liaison entre le processus de supervision comme Nagios et l’outil de présentation NagVis. Il existe trois types de backend, à savoir :
-
Mklivestatus
-
NDOUtils
-
merlin
Il est possible de ranger et regrouper les objets sur plusieurs cartes pour les afficher dans différentes configurations :
-
États (par exemple, tous les hôtes avec l’état DOWN ou tous les services avec l’état CRITICAL) ;
-
Physiques (par exemple, tous les hôtes dans un rack / salle / département/ centre de données) ;
-
Logiques (par exemple, architecture réseau LAN, architecture réseau WAN) ;
-
Géographiques (par exemple, tous les hôtes dans un pays) ;
-
Processus métier (par exemple, tous les hôtes/services impliqués dans un processus).
Chaque carte peut être configurée avec son propre fichier...
Automatiser la configuration de Nagios avec Ansible
Aujourd’hui, l’administration et la gestion de l’infrastructure informatique deviennent de plus en plus complexe. Il y a plus de serveurs, plus d’équipements, plus de plateformes, plus d’applications et plus de données. Il n’est plus possible de les gérer manuellement. Un administrateur qui a besoin d’ajouter ou modifier un fichier de configuration sur un parc de serveurs doit se connecter sur chaque serveur et faire à plusieurs reprises le même changement. Ce qui favorise l’erreur humaine et la perte de temps.
Pour cette raison, adopter l’automatisation des processus informatiques devient essentiel et une nécessité pour les entreprises qui cherchent une gestion efficace de leurs systèmes informatiques et des ressources humaines dédiées ainsi qu’une amélioration de la productivité et de la qualité des services informatiques. L’automatisation met fin aux processus informatiques inefficaces, accélère le déploiement des nouvelles configurations, la mise en production et l’exploitation de l’infrastructure tout en améliorant sa qualité et sa fiabilité, ce qui réduit les coûts avec un gain de temps réciproque.
L’un des processus qui doit être automatisé dans la chaîne de production du service informatique est la supervision. La mise en œuvre de l’automatisation dans le système de supervision permet de libérer les équipes des tâches basiques telles que :
-
L’installation et la configuration des agents de supervision : dès le déploiement de la machine, un agent de supervision peut être installé et configuré d’une manière standard.
-
L’ajout de toute nouvelle machine dans le système de supervision dès le déploiement : dès qu’un nouvel hôte est ajouté dans le système d’information, il est automatiquement configuré dans le système de supervision comme Nagios. Un modèle de supervision peut être associé automatiquement à cet hôte en se basant sur les informations collectées.
-
Planification des temps d’arrêt et gestion de notification :...
Améliorer le suivi d’exploitation avec ELK
Un autre moyen qui peut vous aider à contrôler le bon fonctionnement de votre système d’information en parallèle avec Nagios et surtout à anticiper les pannes et les erreurs, est la gestion et l’exploitation des logs. Les logs ont un intérêt et une importance cruciale en informatique, car il s’agit là de savoir ce qu’il s’est passé sur un ensemble d’applications ou systèmes. La centralisation des logs est une opération simple à réaliser sur des SI moins étendus au niveau taille et réseau mais elle s’avère plus complexe sur des SI de grande taille. À la fin, c’est une opération à mener à tout prix pour éviter plusieurs risques et avoir une vue réelle de l’état de SI.
Il existe plusieurs outils pour gérer les logs, mais une bonne solution permet non seulement d’automatiser et de rationaliser le processus de collecte, filtrage, analyse et stockage des logs provenant de diverses sources mais aussi de notifier les responsables en cas d’erreur détectée. Une des solutions les plus utilisées aujourd’hui est basée sur la stack ELK.
Nous allons voir dans la suite de ce chapitre comment mettre en place cette solution pour suivre les logs de notre serveur de supervision Nagios.
1. La stack ELK
La stack ELK consiste dans le trio Logstash, Elasticsearch et Kibana. C’est une solution open source et complète permettant de centraliser et visualiser les logs générés par vos diverses machines. Avant de commencer la mise en place de cette solution, il faut bien comprendre le principe de son fonctionnement.
Logstash est un outil ETL (Extract Transform Load) puissant conçu pour travailler avec les journaux en commençant par les collecter à partir des fichiers journaux ou messages des systèmes et application, puis par les analyser et les filtrer pour extraire l’information utile et enfin les stocker dans Elasticsearch ou autre pour être indexés. Logstash existe sous la version 2.3.2 à l’écriture de ce livre.
Le point fort de Logstash est de pouvoir collecter tout type de journaux :
-
des journaux système Linux au format syslog ;
-
des journaux système...