Blog

Installation de Nagios sur debian avec virtualmin

Écrit le 02 04 2013 par Kévin MET _

Dans ce tutoriel nous allons voir comment installer nagios 3.4.1 avec les plugins 1.4.16 sur une debian squeeze et virtualmin.

Pour commencer on va définir quelques règles, déjà, on va installer depuis les sources nagios et ses plugins. Et comme j'aime bien les trucs propres j'installe tous mes logiciels compilés à partir des sources dans /opt. Donc nagios et ses plugins seront dans /opt. Pour les dossiers d'installation, je garde une trace de ce que j'ai compilé en conservant le tar.gz des programmes et les dossiers de compilation dans /root/install/. Maintenant que vous savez ça, on peut commencer.

On va donc aller dans /root/install. Si jamais ce dossier n'est pas créé :


# mkdir /root/install

Et ensuite :


# cd /root/install/

Il faut ensuite télécharger les sources de nagios et de ces plugins. Au moment ou j'écris ce tutoriel la version de nagios core est là 3.4.1 et celle de nagios plugins est la 1.4.16. Il vous faudra donc aller chercher nagios core à l'adresse suivante : http://www.nagios.org/download/core/thanks/ et nagios plugins à l'adresse suivante : http://www.nagios.org/download/plugins. Vous copiez les url fourni pour faire un wget.

Une fois que vous avez récupérer vos deux paquets, il faut les décompresser :


# tar xvzf nagios-3.4.1.tar.gz 
# tar xvzf nagios-plugins-1.4.16.tar.gz

On va commencer par l'installation de nagios core et ensuite on fera nagios-plugins.


# cd nagios-3.4.1

On va créer un user pour faire tourner nagios et comme je suis un gros malin, je vais l'appeler nagios 😉


# useradd -r nagios
# usermod -d /opt/nagios nagios

Il nous faut maintenant configurer le bousin. Je vais donc vous filer mes options de compilation mais il se peut que vous ayez besoin d'autres options ou que vous ayez envie de savoir ce que je vous refile comme options. Je vous invite donc à faire un ./configure --help au préalable, pour avoir toutes les options de compilations.:


# ./configure --help

Dans mon cas j'ai utilisé :


# ./configure --prefix=/opt/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios --with-command-group=nagios --enable-event-broker --enable-nanosleep --enable-embedded-perl --with-perlcache --with-httpd-conf=/etc/apache2/conf.d

Comme d'habitude, si vous avez des erreurs pendant le ./configure je vous invite à consulter l'ami google. Il vous manque surement telle ou telle bibliothèque ou paquet.

On peut ensuite lancer la compilation :


# make all

On copie les fichier dans /opt/ avec :


# make install

On installe le script d'init :


# make install-init

On installe le reste avec le thème exfoliation pour avoir une interface "sympa" :


# make install-commandmode
# make install-config
# make install-exfoliation

Par contre on installe pas la conf apache car on va le faire nous même avec nos petites mains. Pour cela on se connecte sur son panel virtualmin et on crée un sous domaine que l'on va dédier à nagios. Pour le tuto on va prendre l'exemple suivant : nagios.mondomaine.fr.

On va donc aller éditer le vhost de ce domaine :


vim /etc/apache2/sites-available/nagios.mondomaine.fr.conf

Et voici la conf qu'il faut pour faire tourner nagios en fastCGI :


<VirtualHost aaa.bbb.ccc.ddd:80>
	ServerName nagios.mondomaine.fr
	DocumentRoot /opt/nagios/share/
	ErrorLog /var/log/virtualmin/nagios.mondomaine.fr_error_log
	CustomLog /var/log/virtualmin/nagios.mondomaine.fr_access_log combined
	ScriptAlias /nagios/cgi-bin /opt/nagios/sbin/
	DirectoryIndex index.php
	Alias /nagios/stylesheets /opt/nagios/share/stylesheets/
	Alias /nagios/images /opt/nagios/share/images/
	Alias /nagios/js /opt/nagios/share/js/        
	<Directory /opt/nagios/share/>
		Options -Indexes +IncludesNOEXEC +FollowSymLinks +ExecCGI
		Order allow,deny
		AuthName "Nagios Access"
		AuthType Basic
		AuthUserFile /opt/nagios/etc/htpasswd.users
		Require valid-user
		allow from all
		AllowOverride All
		AddHandler fcgid-script .php
		FCGIWrapper /home/mondomaine/domains/nagios.mondomaine.fr/fcgi-bin/php5.fcgi .php
	</Directory>
	<Directory /opt/nagios/sbin>
		Options +ExecCGI
		AllowOverride None
		Order allow,deny
		Allow from all
		AuthName "Nagios Access"
		AuthType Basic
		AuthUserFile /opt/nagios/etc/htpasswd.users
		Require valid-user
	</Directory>
	RemoveHandler .php
	IPCCommTimeout 31
	FileETag none
	AddType image/x-icon .ico
	FcgidMaxRequestLen 1073741824
</VirtualHost>

Si on détaille un peu cette conf, on peut voir qu'on à ajouter des alias sur les css, les images et les js. On voit également que l'accès à nagios est protéger par un htpasswd : /opt/nagios/etc/htpasswd.users que l'on va créer juste après. Et enfin, on voit qu'on à ajouter le bon handler fastCGI pour prendre en charge le php. J'ai un peu galéré avec suexec, du coup j'ai laissé tomber cette option qui est utilisé par défaut sur les vhost créés avec virtualmin. Si jamais je mets ça en place je reviendrais éditer ce tuto mais pour le moment je m'en fous.

On va donc créer notre user pour nagios :


# htpasswd -c /opt/nagios/etc/htpasswd.users nagiosadmin

On vérifie que la conf par défaut de nagios est OK :


# /opt/nagios/bin/nagios -v /opt/nagios/etc/nagios.cfg

Nagios Core 3.4.1
Copyright (c) 2009-2011 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 05-11-2012
License: GPL

Website: http://www.nagios.org
Reading configuration data...
   Read main config file okay...
Processing object config file '/opt/nagios/etc/objects/commands.cfg'...
Processing object config file '/opt/nagios/etc/objects/contacts.cfg'...
Processing object config file '/opt/nagios/etc/objects/timeperiods.cfg'...
Processing object config file '/opt/nagios/etc/objects/templates.cfg'...
Processing object config file '/opt/nagios/etc/objects/localhost.cfg'...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking services...
	Checked 8 services.
Checking hosts...
	Checked 1 hosts.
Checking host groups...
	Checked 1 host groups.
Checking service groups...
	Checked 0 service groups.
Checking contacts...
	Checked 1 contacts.
Checking contact groups...
	Checked 1 contact groups.
Checking service escalations...
	Checked 0 service escalations.
Checking service dependencies...
	Checked 0 service dependencies.
Checking host escalations...
	Checked 0 host escalations.
Checking host dependencies...
	Checked 0 host dependencies.
Checking commands...
	Checked 24 commands.
Checking time periods...
	Checked 5 time periods.
Checking for circular paths between hosts...
Checking for circular host and service dependencies...
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Tout est bon donc on lance le script d'init :


# /etc/init.d/nagios start

Et maintenant, il ne reste qu'a compiler les plugins pour que l'installation soit finie.


# cd /root/install/nagios-plugins-1.4.16

On configure :


# ./configure --prefix=/opt/nagios --with-nagios-user=nagios --with-nagios-group=nagios

On compile et on installe :


# make && make install

Logiquement, vous devriez avoir un nagios disponible en utilisant l'url : nagios.mondomaine.fr. et il faut évidemment utiliser le login nagiosadmin et le mot de passe que vous avez entrer pour créer le htpasswd.

♥ Partage sur tes réseaux sociaux ♥
Kévin MET
Kévin MET

Auteur de ce blog et gérant de la société MNT-TECH, je publie sur ce blog lorsque le temps me le permet et lorsqu'un sujet qui me parait intéressant n'a pas encore été abordé en français. Toutes les informations techniques présentes sur cette page peuvent être réutilisées moyennant le fait de citer la source.