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.
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 :
| 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'. |
| 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'. |
| 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'. |
