Installation Nagios/Merlin/Nagvis/Ninja sur Ubuntu Server 9.10

nagios_logo.png

Depuis pas mal de temps dans le cadre de mon boulot je m’intéresse à plusieurs solutions de supervision, Nagios est l’une des solutions les plus connue sur le Net et en entreprise mais il en existe bien sûre beaucoup d’autres auxquelles je m’attaquerai peut-être dans d’autres tutos 😉

Le boulot d’administrateur système est pationnant, mais parfois il faut aussi savoir être un peu feignant, un Nagios bien configuré va vous permettre d’être réactif et de superviser au mieux l’ensemble de vos machines et de vos services et ce avec le moins d’efforts possible !

En gros ce tuto va vous permettre d’avoir le résultat suivant :

  • Une install de la dernière version compilée de Nagios
  • Une install des derniers Nagios Plugins depuis la version compilée
  • L’addon Nagvis permettant la création de diagramme réseau très avancés (statusmap)
  • L’addon Merlin qui vous permettra l’intégration de votre Nagios avec MySQL
  • L’addon Ninja acronyme de “Nagios Is Now Just Awesome” qui est une nouvelle interface beaucoup plus “smooth” pour Nagios 🙂

Pour le moment ce tuto ne décrira que l’installation de ces différent services sur une distribution Ubuntu Server, un deuxieme tuto suivra pour expliquer comment ajouter des services, hotes, etc au monitoring de Nagios.

Une petite démo de Ninja en action pour vous donner l’eau à la bouche Ninja Live démo,

  • Login : monitor
  • Password : monitor

La partie concernant l’installation est disponible dans la suite de ce billet !

INSTALLATION DES DEPENDANCES :

La première chose à faire après votre installation toute fraîche d’Ubuntu Server, une grosse update, histoire de partir avec un serveur le plus à jour possible.

#sudo apt-get update
#sudo apt-get upgrade

Nous allons ensuite installer les paquets nécessaires à la compilation :

# sudo apt-get install build-essential

Ensuite il va falloir installer un serveur Web, Nagios pour pouvoir afficher ses pages web aura besoin de celui-ci, nous allons aussi installer wget utilitaire qui vous permettra de récupérer les sources en mode ligne de commandes.

# sudo apt-get install apache2 wget

Puis nous allons installer les dépendances de Nagios et de Nagios-Plugins nécessaire aux différents services de Nagios.

# sudo apt-get install bind9-host dnsutils libbind9-50 libdns50 libisc50 libisccc50 libisccfg50 liblwres50 libradius1 qstat radiusclient1 snmp snmpd rrdtool mailx librrds-perl libapache2-mod-php5 php5 php-pear php5-gd php5-ldap php5-snmp

Normalement durant l’installation postfix va vous demander une configuration, nous utiliserons une configuration de relayhost en paramétrant un système satellite :
postfix.png
Vérifier que votre serveur apache2 est opérationnel //Addresse_ip_serveur vous devriez voir :
Apache_It__s_Work.png
Nous allons ensuite installer les dernières dépendances pour Nagios qui permettront d’afficher les Diagrammes et la Statusmap correctement :

# sudo apt-get install libgd2-noxpm-dev libpng12-dev libjpeg62 libjpeg62-dev

Merlin se basant sur une base SQL nous allons aussi installer MySQL, durant l’installation vous serez amenez à configurer un mot de passe pour l’utilisateur root, je vous conseille dans un premier temps de ne pas en mettre, vous pourrez par la suite modifier celui-ci avec phpmyadmin ou par requête SQL.

# sudo apt-get install mysql-server
# sudo apt-get install php5-mysql
# sudo apt-get install libmysqlclient15-dev

Enfin nous allons créer un utilisateur Nagios et un groupe qui seront charger de faire tourner le processus Nagios sur le serveur. Le groupe Nagioscmd contiendra aussi l’utilisateur « apache » www-data afin que celui-ci est les droits sur les différents éléments de Nagios.

# sudo /usr/sbin/useradd nagios
# sudo passwd nagios
# sudo /usr/sbin/groupadd nagioscmd
# sudo /usr/sbin/usermod -G nagioscmd nagios
# sudo /usr/sbin/usermod -G nagioscmd www-data

INSTALLATION DE NAGIOS :

Nous allons récupérer les sources de Nagios et de Nagios-plugins depuis les sources, à l’heure actuelle il s’agit de la version 3.2.1 pour Nagios et 1.4.14

# sudo -s
# cd /usr/src
# wget //prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
# wget //prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz

Les sources seront donc toujours télécharger dans /usr/src/ nous allons ensuite décompresser les sources et préparer Nagios pour l’installation sur le système.

# tar -zxvf nagios-3.2.1.tar.gz
# cd nagios-3.2.1/
# ./configure –with-command-group=nagioscmd
# make all

On va ensuite procéder à l’installation sur le système :

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

On va installer le script de démarrage automatique :

# make install-init
# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Puis l’interface Web :

# make install-webconf
# sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
REMARQUE: Il faut saisir le mot de passe pour le compte nagiosadmin de l’interface Web
# /etc/init.d/apache2 reload

INSTALLATION DE NAGIOS-PLUGINS :

Nagios par défaut est livré sans aucun plugins nous allons donc compiler ces plugins afin de pouvoir surveiller notre réseau :

# sudo apt-get install fping libnet-snmp-perl libldap-dev libmysqlclient-dev libgnutls-dev libradiusclient-ng-dev
# cd /usr/src
# tar xzf nagios-plugins-1.4.13.tar.gz
# cd nagios-plugins-1.4.13
# ./configure with-nagios-user=nagios with-nagios-group=nagioscmd
# make
# make install

On restart le tout :

# sudo /etc/init.d/nagios restart
# sudo /etc/init.d/apache2 restart

L’installation de Nagios se fait par défaut dans le répertoire /usr/local/nagios voici un bref récapitulatif de l’arborescence de ce répertoire :

  • bin/ contient les binaires dont nagios bien sûr mais aussi nagiostats qui permet d’avoir les statistique sde fonctionnement de Nagios et p1.pl qui l’interpréteur Perl intégré si Nagios a été compilé avec cette option.
  • libexec/ est le répertoire contenant les plugins de contrôle et collecte.
  • sbin/ contient les fichiers CGI qui sont utilisés par l’interface web de Nagios.
  • share/ contient l’ensemble des fichiers utilisés par les CGIs d’interface web.
  • var/ contient les fichiers de données que gèrent Nagios. On y retrouve le fichier de log mais aussi les fichiers de rétention et de statut. C’est également dans * un sous-répertoire (rw) de ce dossier que se trouve le fichier de pipe des commandes externes.
  • etc/ contient l’ensemble des fichiers de configuration de Nagios.

L’installation par défaut à créer un fichier de configuration qui surveille votre serveur Nagios lui-même, ainsi essayer de vous connecter a votre serveur ainsi : //addresse_ip_serveur/nagios/ et vous devriez obtenir la page principale de nagios :

nagios_acceuil.png

INSTALLATION DE MERLIN :

merlin_100x100.png

Le projet Merlin (Module for Effortless Redundancy and Loadbalancing In Nagios), a initialement été lancé pour créer un moyen facile à mettre en place Nagios en architecture distribuées. Ce qui permet au processus Nagios d’échanger directement des informations le présentant comme une alternative à NSCA.
Installation des dépendances :

# sudo apt-get install mysql-server libapache2-mod-php5 libdbi0 libdbi0-dev libdbd-mysql php5-cli php5-mysql

Création de l’utilisateur et de la base de données merlin dans MySQL

mysql -u root
mysql> create database merlin;
mysql> grant all privileges on merlin.* to [email protected] identified by ‘merlin’;
mysql> flush privileges;
mysql> quit;

Compilation et Installation de merlin

# sudo -s
# cd /usr/src/
# wget //www.op5.org/op5media/op5.org/downloads/merlin-0.6.7-beta1.tar.gz
# tar -zxvf merlin-0.6.7-beta1.tar.gz
# cd merlin-0.6.7-beta1.tar.gz
# make
# ./install-merlin.sh -nagios-cfg=/usr/local/nagios/etc/nagios.cfg -dest-dir=/usr/local/nagios/addons/merlin (il faut doubler les tiret devant nagios-cfg et dest-dir)

Redémarrer Nagios et Merlin

#sudo /etc/init.d/nagios restart
#sudo /etc/init.d/merlind start

L’installation de Merlin est terminée, désormais toute modification faite sur les fichiers de configuration de Nagios sera aussi répercuté sur la base merlin MySQL, les addons comme Ninja ou Nagvis pourront s’appuyer sur cette interface.

INSTALLATION DE NAGVIS :

logo.png NagVis est un addon de visualisation pour Nagios qui permet de générer des vues métier de la supervision.
NagVis est un addon de visualisation pour Nagios qui permet de générer des vues métier de la supervision.
Installation des dépendances :

# sudo apt-get install apache2 libapache2-mod-php5 php5-gd php5-mysql graphviz

Récupération de la dernière version de Nagvis et décompréssion :

# sudo –s
# cd /usr/src/
# wget //sourceforge.net/projects/nagvis/files/NagVis%201.4%20%28stable%29/NagVis-1.4.6/nagvis-1.4.6.tar.gz/download
# tar -xvzf nagvis-1.4.6.tar.gz
# mv nagvis-1.4.6 nagvis
# cp –a nagvis/ /usr/local/nagios/share/nagvis
# cd /usr/local/nagios/share/nagvis
# cp etc/nagvis.ini.php-sample etc/nagvis.ini.php

Nous allons paramétrer nagvis pour pouvoir dialoguer avec la base de données. Ce paramétrage se trouve dans le fichier /usr/local/nagios/share/nagvis/etc/nagvis.ini.php, il faudra enlever les virgules afin de décommenter les lignes dans le fichier php.

language=”fr_FR”
backend=”merlinmy_1″
backend_merlinmy_1
backendid=”merlinmy_1″
; type of backend – MUST be set
backendtype=”merlinmy”
; hostname for Merlin db
dbhost=”localhost”
; portname for Merlin db
dbport=3306
; database name for Merlin db
dbname=”nom_base_merlin”
; username for Merlin db
dbuser=”user_merlin”
; password for Merlin db
dbpass=”mot_de_passe_merlin”
; maximum delay of the Merlin Database in seconds
maxtimewithoutupdate=180
; path to the cgi-bin of this backend
htmlcgi=”/nagios/cgi-bin”

Nous allons changer les droits sur les fichiers de NagVis pour que le serveur Apache y accèdent comme il faut.

chown -R www-data:www-data /usr/local/nagios/share/nagvis/
chmod 664 /usr/local/nagios/share/nagvis/etc/nagvis.ini.php
chmod 775 /usr/local/nagios/share/nagvis/nagvis/images/maps
chmod 664 /usr/local/nagios/share/nagvis/nagvis/images/maps/*
chmod 775 /usr/local/nagios/share/nagvis/etc/maps
chmod 664 /usr/local/nagios/share/nagvis/etc/maps/*
chmod 775 /usr/local/nagios/share/nagvis/var
chmod 664 /usr/local/nagios/share/nagvis/var/*

On peut enfin accéder à l’interface web de NagVis via l’adresse suivante :

//ip_votre_serv_nagios/nagios/nagvis/config.php

Un click droit vous ouvrira un menu contextuel dans lequel vous pourrez créer les maps.

INSTALLATION DE NINJA :

ninja_100x100_no-text.png

Le projet Ninja est une tentative de la part d’op5 de développer une interface graphique pour Nagios la plus flexible qu’il soit pour permettre un jour de voir la technologie des CGI disparaître de nagios. C’est un projet qui est lié au projet Merlin donc il est sous-entendu que Ninja ne peut pas fonctionner sans Merlin.
Installation des dépendances

# sudo apt-get install gawk

Téléchargement et décompression du code source

# sudo -s
# cd /usr/src/
# wget //www.op5.org/op5media/op5.org/downloads/ninja-1.0.0-beta10.tar.gz
# tar -zxvf ninja-1.0.0-beta10.tar.gz
# cp -a ninja-1.0.0-beta10 /usr/local/nagios/addons/ninja
# cd /usr/local/nagios/addons/ninja

Configuration d’Apache:

# sudo cp op5build/ninja.httpd-conf /etc/apache2/conf.d/ninja.conf
editer /etc/apache2/conf.d/ninja.conf pour avoir la bonne path d’installation :

<IfModule !mod_alias.c>
LoadModule alias_module modules/mod_alias.so
</IfModule>

Alias /ninja /usr/local/nagios/addons/ninja
<Directory “/usr/local/nagios/addons/ninja”>
Order allow,deny
Allow from all
DirectoryIndex index.php
</Directory>

Restart Apache:
/etc/init.d/apache2 restart

Configuration de Ninja, copier l’index op5build/index.php dans le répertoire d’installation de Ninja et éditer ce fichier comme suis :

# cp op5build/index.php /usr/local/nagios/addons/ninja/
# vi /usr/local/Nagios/addons/ninja/index.php

$ninja_base = ‘/usr/local/nagios/addons/ninja’;

Modification et installation des scripts d’import de Ninja, éditer le script install_scripts/auth_import_mysql.php pour faire correspondre les lignes à votre propre configuration :

private $merlin_path = ‘/usr/local/nagios/addons/merlin’; # where to find merlin files
private $nagios_cfg_path = ‘/usr/local/nagios/etc’; # path to nagios cfg files

Il faudra aussi modifier le script présent dans install_scripts/auth_import_mysql.php pour utiliser gawk au lieu de awk :

sed -i ‘s/\/bin\/awk/\/usr\/bin\/gawk/g’ install_scripts/auth_import_mysql.php

Démarrer le script d’installation :

install_scripts/ninja_db_init.sh /usr/local/nagios/addons/ninja

Nous allons modifier quelques fichiers de configuration pour lier Ninja au répertoire de nagios.
Dans /usr/local/nagios/addons/ninja/application/config/config.php, vous allez modifier les champs suivantes par ces valeurs :

$config‘site_domain’ = ‘/ninja/’;
$config‘nagios_base_path’ = ‘/usr/local/nagios’;
$config‘logos_path’ = ‘/nagios/share/images/logos/’;
$nacoma_real_path = ‘/usr/local/nagios/webconfig/’;
$config‘nacoma_path’ = ‘/nagios/webconfig/’;
$config‘pnp4nagios_path’ = ‘/nagios/pnp/’;
$config‘pnp4nagios_config_path’ = ‘/usr/local/nagios/etc/pnp/config.php’;
$config‘nagvis_real_path’ = ‘/usr/local/nagios/share/nagvis/’;
$config‘nagvis_path’ = ‘/nagios/nagvis/’;

Dans /usr/local/nagios/share/ninja/application/config/database.php, vous allez modifier les champs suivants par les valeurs que vous avez rentré pour la base merlin:

‘user’ => ‘user_merlin’
‘pass’ => ‘pass_merlin’
‘host’ => ‘localhost’
‘database’ => ‘db_merlin’

Ensuite, nous allons attribuer les bons droits au répertoire ninja

chown -R www-data:www-data /usr/local/nagios/addons/ninja

Connexion :
Connecter votre navigateur internet sur //<ip serveur nagios>/ninja/ et connecter vous avec vos identifiants Nagios qui ont du être importer lors de l’installation des scripts. A vous la frime avec votre interface de pgm !

Ninja.png

13 réponses sur “Installation Nagios/Merlin/Nagvis/Ninja sur Ubuntu Server 9.10”

  1. stp j’installe nagios sous ubuntu meme j’fait +sieurs recherche mais je ne comprend pas que est ce que je fait pour ce projet fin d’etudes!

  2. ;-(

    Bonjour,

    cette ligne ne fonctionne pas.

    # ./install-merlin.sh nagios-cfg=/usr/local/nagios/etc/nagios.cfg dest-dir=/usr/local/nagios/addons/merlin
    (le trait n’apparait pas)

    donc cette ligne

    # ./install-merlin.sh dest-dir=/usr/local/nagios/addons/merlin
    ne fonctionne pas,

    Cela donne: Illegal argument. I have no idea what to make of ‘dest-dir=/usr/local/nagios/addons/merlin’

    Quelqu’un peut m’aider ? je suis sous Ubuntu 11.04. Merci

  3. Salut crockette, il faut mettre un double tiret devant dest-dir et nagios-cfg, en recopiant la ligne directement dans mon tuto les double tiret son mal interpréter sur mon site 😉

  4. La version à changer depuis il est possible que l’installation manuel ne se passe pas exactement de la même façon je te conseille donc de suivre la doc de NagVis.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.