LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


serveurs:nagios_centreon

Nagios et Centreon : Description des interactions

Présentation

L'association de Nagios et de Centreon permet la constitution d'une solution de monitoring à la fois puissante et efficace. En utilisant un éventail logiciel fourni, et à travers une utilisation judicieuse de php, Perl, MySQL et des binaires Nagios, il est possible d'obtenir une station de surveillance du réseau parfaitement exploitable.

Le but du présent document est de décrire les interactions entre les différentes couches logicielles de cette association. Il s'agira, dans un premier temps, de décrire le lien entre ces couches, et comment les données passent de l'une à l'autre. Ensuite, nous décrirons le contenu des fichiers de configuration de Nagios et de Centreon. Enfin, nous tenterons de cerner les droits d'accès nécessaires sur certains fichiers, pour s'assurer que la station de monitoring fonctionne correctement.

Nagios et Centreon : description des interactions logicielles

Nagios

Nagios est le logiciel au coeur de notre solution de monitoring. Nagios est chargé de l'exécution régulière des vérifications auprès des hôtes surveillé. Il récupère les données remontées par les hôtes, et les stocke par défaut dans un fichier de données.

Les CGI

Les CGI sont l'outil graphique utilisé par Nagios pour créer les images disponibles dans son interface. Grâce à cet outil, Nagios peut représenter de façon plus lisible les données remontées par Nagios, et afficher de façon plus claire la structure réseau monitorée.

NDO

NDO est le logiciel chargé de transmettre les données remontées par Nagios dans une base de données MySQL. De cette façon, il est possible de stocker sur le long terme les données remonter par Nagios, afin de pouvoir exploiter d'éventuelles statistiques créées sur ces données. NDO récupère les données du fichier perfdata, et les stocke dans la base MySQL. NDO est un plugin pour Nagios et fonctionne indépendamment de Centreon.

Centstorage

Centstorage est l'outil qui exploite les données remontées par Nagios pour Centreon. C'est un programme écrit en Perl, associé à Centreon. A chaque modification du fichier de données perfdata, centstorage met à jour deux bases de données. Tout d'abord, afin de stocker les données sur le long terme, Censtorage utilise une BDD MySQL. Par ailleurs, à chaque exécution, Centstorage met à jour des « Round Robin Databases », ou RRD.

Centreon

Centreon est une interface Web qui offre deux fonctionnalités principales à l'utilisateur. Tout d'abord, Centreon peut être utilisé comme interface de monitoring, plutôt que Nagios. Centreon propose une interface plus sobre, ainsi qu'une façon différente de traiter les données remontées par Nagios. Cet outil utilise sa propre base de données MySQL (grâce à centstorage), et construit ses propres graphiques grâce aux RRDTools.

Parallèlement, Centreon est une puissante interface de configuration pour Nagios. Centreon autorise en effet à l'utilisateur de modifier intégralement la configuration de Nagios depuis son navigateur internet, plutôt qu'en modifiant manuellement les fichiers éparpillés sur le disque.

L'interface de configuration offerte par Centreon agit en deux temps,en ce qui cocerne la configuration de Nagios. Centreon possède sa propre version de chaque fichier de configuration de Nagios. Lorsque l'utilisateur modifie un paramètre par l'interface Centreon, ce changement est d'abord répercuté sur les fichiers “de copie” de Centreon. Pour que les modifications soient prises en compte par Nagios, il faut exporter les fichiers stockés dans l'arborescence de Centreon, et recharger Nagios.

Les RRDTools

Les RRD sont des bases de données assez simples (en comparaison avec MySQL, par exemple), mais particulièrement adaptées à la construction de graphiques. C'est par cet outil que Centreon construit ses graphes. Les Bases RRD sont dans un premier temps remplies par Centstorage, au fur et à mesure que les données sont remontées par Nagios. Puis, lors de l'affichage d'une page contenant des graphiques par l'utilisateur, le script php chargé de générer la page utilise le binaire rrdtool pour créer les images à afficher.

Le mécanisme de remplissage des RRD est donc le suivant : Les données sont remontées depuis les hôtes vers Nagios. Nagios inscrit les données reçues dans un fichier inittulé perfdata, situé dans /var/run/nagios3/service-perfdata . Les données inscirtes dans ce fichier de données sont récupérées par centstorage. Elles sont recopiées dans un fichier service-perfdata.tmp, inscrites dans une base de données MySQL, et ajoutées à la fin des bases RRD. Une fois ces opérations effectuées, centstorage ce charge de vider le fichier service-perfdata, les données ayant été enregistrées par ailleurs.

Lors de la connexion d'un utilisateur sur l'une des pages contenant un graphique, la page Centreon concernée appelle le binaire rrdtool, situé a priori dans /usr/bin/ .L'utilitaire rrdtool se charge de générer les graphiques correspondant aux données stockées dans les RRD, selon les arguments précisés dans le script. Les images sont alors insérées dans la page générée par les scripts php de centreon.

Apache

Apache est le serveur web, et doit donc être lancé et correctement configuré pour permettre l'accès aux interfaces de Nagios et de Centreon.

La description des interactions peut être résumée grâce au graphique suivant :

Schéma d'interaction nagios-centreon

Description des fichiers de configuration

Configuration de Nagios

Les fichiers qui seront mentionnés ci-dessous sont bien entendu modifiables à la main. Cependant, dans le cadre d'une utilisation conjointe de Centreon et Nagios, il peut être préférable d'utiliser l'interface web fournie par Centreon pour administrer Nagios. En effet, les valeurs sont accompagnées d'un petit descriptif, qui permet parfois de mieux appréhender la raison d'être de chacune.

Les fichiers de configuration de Nagios sont localisés dans /etc/nagios3/ . Ils regroupent à la fois les paramètres de fonctionnement du logiciel, et les données relatives à la configuration des hôtes. On trouve les fichiers suivants :

nagios.cfg : Ce fichier est central pour le fonctionnement de Nagios. Il est lu lors du chargement de Nagios par le script situé dans /etc/init.d . On retrouve dans ce fichier de nombreuses informations : chemin vers les fichiers de logs et les scripts nécessaires au fonctionnement de Nagios, définition des politiques de vérification et notification, politique de gestion des logs, des données, définition de l'utilisateur responsable de l'exécution de Nagios, et des conditions de débogage.

resource.cfg : ce fichier définit les variables globales qui seront utilisées pour simplifier la gestin des commandes dans Nagios. On y retrouve typiquement deux variables : $USER1$ définit le chemin vers les commandes nagios (pour moi : /usr/share/nagios-plugins), tandis que $USER2$ permet de définir la communauté à utiliser par défaut lors des requêtes SNMP.

cgi.cfg : ce fichier encadre les interactions entre Nagios et les CGI. Il permet entre autres de réaliser la correspondance entre le chemin physique et le chemin dans l'arborescence Apache vers le dossier contenant les scripts de génération des pages web de Nagios.

ndo2db.cfg : Ce fichier permet de définir la façon dont NDO récupère les informations fournies par Nagios. Il définit le type de socket et le numéro de port utilisés par NDO. Il permet de spécifier l'utilsiateur et le groupe responsables de son exécution, ainsi que les informations de connexion à la base MySQL ou PostGreSQL associée.

ndomod.cfg : Ce fichier contient des informations relatives au stockage des données.

Volontairement, les fichiers de configuration des hôtes ne sont pas évoqués ici.

Configuration de Centreon

Les fichiers de configuration de Centreon sont localisés dans /etc/centreon. Il s'agit de scripts php ou perl, qui regroupent un certain nombre de variables globales au fonctionnement du logiciel, utilisées également par centstorage.

instCentStorage.conf : Ce fichier réunit quelques chemins, où sont stockés des fichiers importants pour le fonctionnement de Centreon. On y trouvera notamment le chemin vers le dossier de logs, vers le script de manipulation des RRD, vers les dossiers de configuration, exécution et d'installation de Centreon et Nagios, la définition du nom et du groupe de l'utilisateur de Nagios….

centreon.conf.php : ce fichier réunit des informations relatives aux connexions MySQL indispensables au fonctionnement de Centstorage et Centreon.

Par ailleurs, il peut être important de connaître la localisation du script perl centstorage, et des scripts php responsables de la génération de l'interface de Centreon. Centstorage se trouve adns le dossier /usr/share/centreon/bin . Comme tout script perl qui se respecte, il est lisible avec n'importe quel éditeur de texte, et éditable, pourvu que l'on ait les droits nécessaires. Il est en outre intéressant de lire le script, pour comprendre la conception de centstorage.

Les fichiers php sont quant à eux localisés dans /usr/share/centreon/www/ . On notera en particulier le chemin du fichier generateODSImage.php, situé quant à lui dans le dossier /usr/share/centreon/www/include/views/graphs/graphODS/generateImages/ . Ce fichier est le script php responsable de la génération des images affichées notamment dans les vues. En effet, il appelle le binaire rrdtool. Et il arrive que les images ne s'affichent pas à cause d'un simple espace manquant dans le script… Vérifiez que l'espace est présent à la ligne :
$command_line = “ graph - –start=”.$start.“ –end=”.$end;
avant le mot graph…
(Ligne 129 chez moi )

A propos des droits d'accès

La sécurité sous Linux passe notamment par une gestion prudente des accès aux fichiers. Mis à par root, les utilisateurs ne doivent pas pouvoir faire n'importe quoi. Pour cette raison, et pour se prémunir des dysfonctionnements des logiciels, il est préférable, quand cela est possible, de passer par un utilisateur aux accès limité pour démarré ces logiciels. Cette logique générale s'applique à Nagios, Centreon, comme aux outils associés.

Lors de l'installation de Nagios, deux utilisateurs et deux groupes sont créés (en supposant qu'Apache n'était pas installé avant). On se retrouve avec des utilisateurs nagios et www-data et des groupes nagios et www-data, respectivement associés à Nagios et Apache. Il faut qu'Apache ait accès aux fichiers qu'il va lire, notamment les scripts php associés à Nagios et Centreon. Et il faut que Nagios et Centreon puissent lire et écrire dans les fichiers de données qui leur sont associés.

Pour pallier aux problèmes de compatibilité entre les droits des utilisateurs et groupe Nagios et ceux d'Apache, j'ai fait appartenir nagios aux groupes nagios et www-data, et www-data aux groupes nagios et www-data. De cette façon, en garantissant les mêmes accès aux fichiers à l'utilisateur et au groupe sur les fichiers placés nécessaires au fonctionnement de Nagios et Centreon, on se met à l'abri de beaucoup de dysfonctionnements.

L'utilisation des fichiers dans /var/ est un peu plus pointilleuse. Pour pouvoir créer ou modifier un fichier dans les dossiers présents dans /var, un utilisateur doit avoir les droits en exécution sur le dossier qui contient le fichier concerné. Autrement dit, si l'utilisateur nagios veut écrire dans /var/log/centreon/centreon.log, il doit avoir les droits en exécution sur /var/log/centreon ET les droits en écriture sur /var/log/centreon/centreon.log.

Localisation des fichiers nécessaires au fonctionnement de Nagios et Centreon : /etc/nagios3
/etc/centreon
/etc/init.d
/etc/cron.d
/etc/nagios*
/usr/share/nagios3
/usr/share/centreon
/usr/share/nagios*
/var/lib/centreon (dossier qui contient les *.rrd)
/var/lib/nagios3
/var/run/nagios3
/var/log/nagios3
/var/run/centreon
/var/log/centreon

serveurs/nagios_centreon.txt · Dernière modification : 2018/11/17 12:54 de 127.0.0.1