Nagios – Configuration générale

Introduction

Dans cette section, la configuration générale de Nagios sera abordé.

Cela inclut le fichier nagios.cfg ainsi que le fichier cgi.cfg pour la configuration de l’interface Web.

L’installation ne sera pas traitée dans la mesure où un simple aptitude install ou un make install dans /usr/ports/net-mgmt/nagios suffit.

En ce qui concerne Debian Sarge qui n’inclut pas Nagios 2.x, il sera nécessaire de suivre le document: Utilisation des backports qui explique comment utiliser les backports Debian.

Il est aussi à noter que les configurations de Nagios présentées ici sont basiques et permettent de démarrer simplement avec Nagios. Dans la mesure du raisonnable, il y aura une courte explication des principaux paramètres.

Le but étant d’arriver à un Nagios qui fonctionne correctement… mais pas d’expliquer comment mettre en place une config avec 4 serveurs dont 2 distribués et un backup !

Pour les configurations avancées, il y aura une ou plusieurs autres sections plus tard.

Le fichier nagios.cfg

Définition des fichiers

Les paramètres sont les suivants:

  • log_file indique où se trouve le fichier de log principal.
  • cfg_dir permet de spécifier un répertoire où tous les fichiers de se terminant par « .conf » seront considérés comme des fichiers de config de Nagios. Attention, cette option est recursive !
  • cfg_file indique un fichier que Nagios traitera comme un fichier de configuration.

Les paramètres en rapport avec les fichiers n’auront pas besoin d’être modifié pour une utilisation standard.

Commandes externes

Ces paramètres vont définir si Nagios tient compte des instructions qu’il reçoit de l’extérieur pour différentes actions comme: arrêter les checks d’un services ou d’un host, arrêter les notifications, les reprendre, etc… Je recommande de l’activer.

Ces commandes viendront principalement du serveur web par les pages d’admin ou alors de scripts externes.

Par exemple, cela permet d’acquitter, par l’interface web, un service qui serait en alarme en attendant de le rétablir.

Les paramètres sont les suivants:

  • check_external_command doit être mis à 1 pour tenir compte des commandes externes et à une autre valeur pour les désactiver.
  • command_check_interval permet de spécifié la fréquence à laquelle Nagios va vérifier le fichier de commandes externes. « -1 » sera une bonne valeur qui permettra à Nagios de vérifier ce fichier aussi souvent qu’il le peut.
  • command_file permet d’indiquer où se trouve le fichier de commandes externes ainsi que son nom.

Les fichiers de logs

Quoi mettre dans les fichiers de logs, à quelle fréquence les faire tourner, où garder les anciens, etc…

Les paramètres sont les suivants:

  • log_rotation_method permet de choisir la fréquence de rotation. « d » pour « daily » est correct dans la plupart des cas. Sinon choisir « h » pour « hourly » sur les systèmes très chargés.
  • log_archive_path indique où stocker les anciens fichiers après leur rotation. Attention, il n’y a pas de date limite pour garder les fichiers et ils ne sont pas compressés donc cela va remplir doucement le disque dur.
  • use_syslog est à mettre à 0 dans la plupart des cas vu qu’on se sert des fichiers de log de Nagios. Sinon tout est loggué aussi par syslog, ce qui fait double emploi. Cela peut être utilisé dans le cas d’un serveur de log centralisé.
  • Il y a ensuite tout une série de paramètres pour choisir ce qu’on veut logguer ou non. Je conseille de tout logguer.

Rétention des états

Nagios permet de retenir les états des services ainsi que les informations volatiles même après un redémarrage du service.

Les états sont écrits à l’arrêt de Nagios et lu au démarrage.

Pour cela, il faudra utiliser sur les paramètres suivants:

  • retain_state_information doit être mis à 1 pour retenir l’état dans lequel sont les services et les hosts.
  • use_retained_program_state doit être mis à 1 pour retenir les changements qui auraient été fait sur les services ou hosts. Cela inclut, les désactivations par l’interface web par exemple.
  • use_retained_scheduling_info doit être mis à 1 pour retenir les replanifications des checks.
  • retention_update_interval permet de spécifier à quel interval Nagios va être les états des services et hosts dans le fichier de rétention en cas d’arrêt non prévu de Nagios.

Les checks

Nagios gère 2 types de checks: les actifs et les passifs.

Les premiers sont déclenchés par Nagios lui même. Pour les seconds Nagios ne fait qu’attendre les résultats envoyés par d’autres serveurs Nagios ou des scripts. Pour cela, les résultats sont envoyés par le fichier de commandes externes.

Les paramètres sont les suivants:

  • execute_service_checks doit être mis à 1 pour que Nagios puisse déclancher des checks actifs de services.
  • execute_hosts_checks doit être mis à 1 pour que Nagios puisse déclancher des checks actifs de hosts.
  • accept_passive_service_checks peut être mis à 0 dans un premier temps dans la mesure où nous n’aurons pas de check passif.
  • accept_passive_host_checks peut aussi être mis à 0 pour les mêmes raisons.

Les notifications

Nagios est capable de notifier par mail ses contacts.

Pour cela, les paramètres à changer sont les suivants:

  • enable_notifications à mettre à 1 pour activer les notifications.

Autres paramètres

Pour finir quelques autres paramètres en vrac qui ne nécessitent pas une section.

  • date_format nous permettra de choisir le format d’affichage de la date.

Le fichier cgi.cfg

La plupart des valeurs par défaut de ce fichier n’auront pas besoin d’être modifiée dans la mesure où l’authentification est activée par défaut et qu’elle est le paramètre le plus important.

Il pourra être nécessaire de changer certaines variables pour définir le compte « admin » qui a le droit de tout voir, tout faire sur l’interface web.

Par défaut, il s’agit du compte « nagiosadmin ».

Les variables sont les suivantes:

  • authorized_for_system_information
  • authorized_for_configuration_information
  • authorized_for_system_commands
  • authorized_for_all_services
  • authorized_for_all_hosts
  • authorized_for_all_services_commands
  • authorized_for_all_hosts_commands

Pour tous ces paramètres, il sera toujours possible de mettre plusieurs logins, qui ne correspondent pas forcements à des contacts Nagios, en les séparant par des virgules.

Par soucis de sécurité, nous désactiverons l’accès « guest » en retirant tout login du paramètre suivant:

  • default_user_name

Accès à l’interface web

Pour qu’un utilisateur puisse se connecter sur l’interface web, il faudra qu’il soit authentifié par Apache. Que cela soit un utilisateur qui « provient » des contacts de Nagios ou alors un utilisateur du fichier cgi.cfg.

Par défaut, Nagios utilise une authentification Apache par fichier plat. Ce fichier est: /etc/nagios2/htpasswd.users.

Pour ajouter proprement des entrées dans ce fichier, on utilisera la commande « htpasswd2 » avec une commande complète de la forme suivante:

# htpasswd2 /etc/nagio2/htpasswd.users user1
# New password: <secret password>
# Re-type new password: <secret password>
# Adding password for user user1

user1 est biensur à remplacer par le nom de l’utilisateur que l’on souhaite créer.

Les autres types d’authentification Apache, comme MySQL ou LDAP, fonctionne aussi biensur.

Mot de la fin

Nagios est maintenant configuré correctement au niveau des paramètres globaux. Il ne reste plus qu’à définir les objects. Pour cela, rendez-vous au document: Configuration des objets.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s