Nagios

Un article de ALW - Another Linux Wiki.


Sommaire

[modifier] Présentation

Nagios est un outil de supervision. Il est le successeur du célebre NetSaint et permet de monitorer un SI (Système d'Information) complet. Ce logiciel sous licence GPL est composé de plusieurs parties:

  • Le programme lui même
  • Les scripts permettant le monitoring sur des services spécifiques
  • L'interface web qui permet de gérer les remontées d'alarmes

[modifier] Installation

[modifier] Gentoo

Nous allons avoir besoin de quelques ebuilds.

net-analyzer/nagios-nrpe

net-analyzer/nagios-nsca

net-analyzer/nagios-plugins

net-analyzer/nagios-imagepack

net-analyzer/nagios-core

Je ne compte pas le mailer, apache et les autres broutilles :-)

En ce qui concerne net-analyzer/nagios-core ne pas oublier de positionner apache2 comme USE. Pour net-analyzer/nagios-plugins on peut activer pas mal de choses, c'est interessant de mettre la base nagios-ping nagios-ssh etc..


L'utilisation d'emerge devrait permettre d'avoir une installation propre et conforme aux sources. Néanmoins, Nagios n'est pas fonctionnel en l'état. Il faut modifier quelque peu la configuration d'apache et de Nagios pour avoir un systeme minimal.

[modifier] Debian

[modifier] Configuration

[modifier] Apache

Pour qu'apache prenne en compte sa configuration spécifique pour Nagios, il suffit d'activer l'option dans /etc/conf.d/apache. Cela permet de (presque) régler le problème de configuration d'apache pour nagios.

File: /etc/conf.d/apache2
 
APACHE2_OPTS="-D NAGIOS -D PHP"
  


Maintenant il faut configurer apache à la main pour qu'il autorise les utilisateurs authentifiés via htaccess à utiliser les cgi. Les cgi seront également configurés pour être executés hors du DocumentRoot initial d'apache.

Nous assumerons que nagios sera sur un virtual host d'apache, si ce n'est pas votre cas, il suffira d'ajouter ce qui suit dans le fichier /etc/apache2/conf/commonapache2.conf


File: /etc/apache/conf/vhost/vhost.conf
 
<Directory /var/www/www.exemple.com/htdocs/nagios>
 Options +Indexes +FollowSymLinks +MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
</Directory>

ScriptAlias /nagios/cgi-bin/ /usr/nagios/sbin/
<Directory /usr/nagios/sbin>
 AllowOverride AuthConfig
 order allow,deny
 allow from all
 Options ExecCGI FollowSymLinks SymLinksIfOwnerMatch
</Directory>

Alias /nagios/ /usr/nagios/share/
 <Directory /usr/nagios/share>
 AllowOverride AuthConfig
 order allow,deny
 allow from all
 Options ExecCGI FollowSymLinks
</Directory>
  

Maintenant nous avons une installation fonctionelle de Nagios. Le moins drôle est fait, il ne reste plus qu'à configurer Nagios lui même, ce qui est moins rebarbatif.

[modifier] Nagios

Nous allons faire une configuration simple pour quelques services sur une machine qui sera seule dans un groupe avec un seul admin :-) Ca ne justifie pas un outil comme Nagios mais ca permettra de voir les mécanismes de fonctionnement de l'outil.

Nous allons d'abord définir le service qu'il faudra surveiller sur notre machine.

File: /etc/nagios/services.conf
 define service{
       use                             generic-service         ; Name of service template to use
       host_name                       www.tryxy.net
       service_description             HTTP
       is_volatile                     0
       check_period                    24x7
       max_check_attempts              3
       normal_check_interval           2
       retry_check_interval            1
       contact_groups                  tryxy-admins
       notification_interval           240
       notification_period             24x7
       notification_options            w,u,c,r
       check_command                   check_http
       }


Ensuite, nous allons inclure cette machine dans un groupe:

File: /etc/nagios/hostgroups.cfg
 define hostgroup{
       hostgroup_name  tryxy-boxes ; Le nom du groupe
       alias           Linux Servers ; L'alias du groupe, ça doit être un nom plus compréhensible
       contact_groups  tryxy-admins ; Le groupe de personnes a contacter si il y à un problème
       members         www.tryxy.net ; On voit ici les machines membre du groupe
       }


Maintenant nous définissons la machine en elle même:

File: /etc/nagios/hosts.cfg

define host{

 use                     generic-host            ; Name of host template
 to use
       host_name               www.tryxy.net ; Le nom de la machine
       alias                   dedicated server ; Alias pour la machine
       address                 x.x.x.x ; IP de la machine
       check_command           check_http
       max_check_attempts      10
       notification_interval   480
       notification_period     24x7 ; On peut mettre 'workhours' pour etre notifier uniquement en HO
       notification_options    d,r,u
       }


Ensuite nous définissons le groupe de personnes à contacter:

{{Box File|/etc/nagios/contactgroups.cfg|

 define contactgroup{
       contactgroup_name       tryxy-admins ; nom du groupe
       alias                   Linux Administrators ; alias du groupe
       members                 jc ; les membres
       }

Enfin nous définissons, les contacts eux meme:

File: /etc/nagios/contacts.cfg
 define contact{
       contact_name                    jc ; nom du contact
       alias                           Nagios Admin ; l'alias
       service_notification_period     24x7
       host_notification_period        24x7
       service_notification_options    w,u,c,r
       host_notification_options       d,u,r
       service_notification_commands   notify-by-email
       host_notification_commands      host-notify-by-email
       email                           @mail
       }

Conclusion

Voilà ce à quoi on arrive avec très peu de machines. Vous pourrez voir dans les fichiers de conf qu'on peut définir des hierarchie ainsi que des dépendances, mais aussi des escalades en cas d'alarmes.

Ce howto n'a pas pour but de rentrer dans les details mais de donner une vue d'ensemble sur la configuration de cet outil obscur pour pas mal de monde :) On pourrait étoffer nagios en retouchant son interface, en ajoutant des plugins etc...

Les liens obligatoires sont :

http://www.nagios.org


http://www.nagiosexchange.org


Erreur lors de la création de la miniature : convert: unable to open image `/space1/sites/web/mediawiki-svn/htdocs/phase3/images/d/dc/Nagios_tactical.jpg': No such file or directory.
convert: missing an image filename `/space1/sites/web/mediawiki-svn/htdocs/phase3/images/thumb/d/dc/Nagios_tactical.jpg/180px-Nagios_tactical.jpg'.
Nagios vue tactique
Erreur lors de la création de la miniature : convert: unable to open image `/space1/sites/web/mediawiki-svn/htdocs/phase3/images/f/f5/Nagios_map.jpg': No such file or directory.
convert: missing an image filename `/space1/sites/web/mediawiki-svn/htdocs/phase3/images/thumb/f/f5/Nagios_map.jpg/180px-Nagios_map.jpg'.
Carte Nagios
Erreur lors de la création de la miniature : convert: unable to open image `/space1/sites/web/mediawiki-svn/htdocs/phase3/images/c/c3/Nagios_vrml.jpg': No such file or directory.
convert: missing an image filename `/space1/sites/web/mediawiki-svn/htdocs/phase3/images/thumb/c/c3/Nagios_vrml.jpg/180px-Nagios_vrml.jpg'.
Carte Nagios
Rubriques