Nagios : Différence entre versions

De Wiki_DR13
Aller à : navigation, rechercher
 
(22 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
Attention document NON VALIDE
 +
 +
 
This howto provides a step by step walkthrough on installing the required components, and setting the default parameters (file paths, etc.) for Oreon to work with the default Nagios from Debian.
 
This howto provides a step by step walkthrough on installing the required components, and setting the default parameters (file paths, etc.) for Oreon to work with the default Nagios from Debian.
  
Ligne 4 : Ligne 7 :
  
 
Creation de l'image :
 
Creation de l'image :
  # '''xen-create-image --hostname nagios --debootstrap --ip 193.49.133.77'''
+
  # xen-create-image --hostname nagios --debootstrap --ip 193.49.133.77 --memory 1024MB --swap 2048Mb --vcpu 2
  
 
Demarrage de l'image :
 
Demarrage de l'image :
Ligne 14 : Ligne 17 :
 
==== Install required Debian packages ====
 
==== Install required Debian packages ====
  
===== apache2 & nagios =====
+
===== apache2 =====
  
  # '''apt-get install sudo apache2 nagios2 nagios-plugins nagios-images'''
+
  # apt-get install sudo apache2
  
 
===== mysql =====
 
===== mysql =====
Ligne 57 : Ligne 60 :
 
  # '''pear install -o -f --alldeps DB_DataObject DB_DataObject_FormBuilder MDB2 Numbers_Roman \'''
 
  # '''pear install -o -f --alldeps DB_DataObject DB_DataObject_FormBuilder MDB2 Numbers_Roman \'''
 
  '''Numbers_Words HTML_Common HTML_QuickForm HTML_QuickForm_advmultiselect HTML_Table Auth_SASL \'''
 
  '''Numbers_Words HTML_Common HTML_QuickForm HTML_QuickForm_advmultiselect HTML_Table Auth_SASL \'''
  '''HTTP Image_Canvas Image_Color Image_Graph Image_GraphViz Net_Traceroute Net_Ping Validate XML_RPC'''
+
  '''HTTP Image_Canvas Image_Color Image_Graph Image_GraphViz Net_Traceroute Net_Ping Validate XML_RPC SOAP'''
 +
 
 +
==== Nagios ====
 +
 
 +
telecharger les archives :
 +
 
 +
# wget http://switch.dl.sourceforge.net/sourceforge/nagios/nagios-3.0b3.tar.gz
 +
# wget http://belnet.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.9.tar.gz
 +
 
 +
decompresser nagios
 +
 
 +
# tar xvzf nagios-3.0b3.tar.gz
 +
# cd nagios-3.0b3
 +
 
 +
on install :
 +
 
 +
# adduser nagios
 +
# groupadd nagcmd
 +
# usermod -G nagcmd www-data
 +
# usermod -G nagcmd nagios
 +
 
 +
# apt-get install gcc make g++ libpar-perl 
 +
# apt-get install libcache-cache-perl libcache-memcached-perl libcache-perl libmemcache-dev memcached libsdl-perl
 +
 
 +
Il y a un probleme avec des librairies :
 +
# ln -s /usr/lib/libperl.so.5.8.8 /usr/lib/libperl.so
 +
 
 +
 
 +
 
 +
# ./configure --with-command-group=nagcmd --with-default-perfdata --enable-embedded-perl --with-perlcache
 +
# make all
 +
# make full install
 +
 
 +
Installation des plugins :
 +
 
 +
# cd ..
 +
# tar xvzf nagios-plugins-1.4.9.tar.gz
 +
# cd nagios-plugins-1.4.9
 +
# ./configure
 +
# make
 +
# make install
 +
 
 +
 
 +
Mise a jour centreon
 +
 
 +
telecharger la derniere version sur le site
 +
 
 +
 
 +
{{command||
 +
tar xvzf centreon-X
 +
cd centreon-X
 +
./install.sh -u /etc/centreon/
 +
}}
 +
 
 +
 
 +
Repondre y a toutes les questions
 +
 
 +
 
 +
Aller sur la page de centreon et mettre a jour les bases de données.
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
===== Installation Nagios 2 & 3 sur Ubuntu 6.0.6, 8.0.4 et 10.0.4 LTS =====
 +
 
 +
 
 +
 
 +
<note tip>L'ensemble de cette installation reste valable pour Ubuntu 8.0.4 L.T.S Hardy Heron et Ubuntu 10.04 Lucid Lynx.</note>
 +
 
 +
==== Préambule ====
 +
 
 +
Ce document couvre l'installation d'un serveur Nagios version 2 ou 3 sur Linux Ubuntu 6.0.6 LTS, Ubuntu 8.04 LTS et 10.0.4 LTS. Il doit être possible de suivre ces instructions pour d'autres distributions avec quelques modifications. Néanmoins, l' Ubuntu Server LTS est intéressante pour sa dimension "Entreprise Ready" et son suppport gratuit assuré par Canonical pour une durée de 5 ans. Cette distribution représente un bon compromis paquets récents, sécurité (le compte root est désactivé) et stabilité.
 +
 
 +
A la fin de l'installation, le serveur doit contenir l'ensemble des programmes et librairies nécessaires au fonctionnement de Nagios en production. Ne sera pas abordé l'installation des programmes satellites de la supervision comme la gestion des configurations, des changements, ntop, smokeping...)
 +
Par contre, pour nos besoins, nous couvrirons l'installation à partir des sources de :
 +
 
 +
  * Nagios
 +
  * Nagios plugins officiels
 +
  * Nagios NRPE pour la surveillance active
 +
  * Nagios NSCA pour la surveillance passive
 +
  * Nagios NDOutils pour stocker les données de Nagios dans MySQL
 +
 
 +
Notre serveur comprendra un mix de programmes installés par la commande apt-get mais aussi de paquets compilés à partir des sources de façon à contrôler les paramètres d'installation de ces programmes et de pouvoir les mettre à jour plus rapidement (patches et correctifs mineurs)
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
==== Installation Ubuntu Server 6.0.6, 8.0.4 et 10.0.4 LTS ====
 +
 
 +
Nous n'allons pas couvrir en détail l'installation de la distribution Linux. Il suffit de choisir une installation de serveur LAMP et de suivre les indications. Pour que cette installation soit opérationnelle, il convient d'exécuter les commandes suivantes :
 +
 
 +
<code>
 +
sudo apt-get update
 +
sudo apt-get upgrade
 +
sudo apt-get install openssh-server
 +
</code>
 +
 
 +
Ces commandes mettent à jour l'ensemble de la distribution installée et installe le serveur ssh pour la prise en main à distance.
 +
 
 +
Préparation des dépôts apt pour l'installation
 +
 
 +
<code>
 +
sudo nano /etc/apt/sources.list
 +
</code>
 +
 
 +
Le contenu désiré est le suivant:
 +
<code>
 +
deb http://fr.archive.ubuntu.com/ubuntu/ dapper main universe restricted
 +
deb-src http://fr.archive.ubuntu.com/ubuntu/ dapper main universe restricted
 +
deb http://fr.archive.ubuntu.com/ubuntu/ dapper-updates main universe restricted
 +
deb-src http://fr.archive.ubuntu.com/ubuntu/ dapper-updates universe restricted
 +
deb http://security.ubuntu.com/ubuntu dapper-security main universe restricted
 +
deb-src http://security.ubuntu.com/ubuntu dapper-security main universe restricted
 +
</code>
 +
 
 +
Nous installons quelques utilitaires de base pour notre serveur de supervision
 +
 
 +
<code>
 +
sudo apt-get install php5-gd mailx fping snmp ntp smbclient nmap saidar traceroute php5-snmp curl gettext syslog-ng
 +
</code>
 +
 
 +
Installation de l'environnement de compilation
 +
 
 +
<code>
 +
sudo apt-get install build-essential
 +
</code>
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
==== Installation Nagios ====
 +
 
 +
Création de l'utilisateur nagios
 +
 
 +
<code bash>
 +
sudo groupadd -g 9000 nagios
 +
sudo groupadd -g 9001 nagcmd
 +
sudo useradd -u 9000 -g nagios -G nagcmd -d /usr/local/nagios -c "Nagios Admin" nagios
 +
</code>
 +
 
 +
Avant de pouvoir compiler Nagios le plus complètement possible, il faut installer quelques librairies de développement. Les en-têtes du noyau sont facultatifs :
 +
 
 +
<code bash>
 +
sudo apt-get install libperl-dev libgd2-xpm-dev libltdl3-dev linux-headers-`uname -r`
 +
</code>
 +
 
 +
Pour la version 3 de Nagios, ajouter la librairie libglib2
 +
 
 +
<code bash>
 +
sudo apt-get install  libglib2.0-dev
 +
</code>
 +
 
 +
Quelques corrections pour que Nagios trouve les librairies que le configure a du mal à détecter
 +
 
 +
<code bash>
 +
sudo ln -s /usr/include/sys/uio.h /usr/include/
 +
sudo ln -s /usr/include/sys/socket.h /usr/include/
 +
</code>
 +
 
 +
Ensuite compilation de Nagios, des plugins, de NRPE et NSCA.
 +
 
 +
<code bash>
 +
wget http://freefr.dl.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz
 +
tar -xzf nagios-3.2.0.tar.gz
 +
pushd nagios-3.2.0
 +
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios --with-command-group=nagcmd --enable-event-broker --enable-nanosleep --enable-embedded-perl --with-perlcache
 +
make all
 +
sudo make install
 +
sudo make install-init
 +
sudo make install-commandmode
 +
sudo make install-config
 +
popd
 +
</code>
 +
 
 +
Configurer apache2 pour Nagios
 +
 
 +
<code>
 +
sudo nano /etc/apache2/conf.d/nagios.conf
 +
</code>
 +
 
 +
Coller dans le fichier ouvert la configuration suivante :
 +
 
 +
<code>
 +
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
 +
 
 +
<Directory "/usr/local/nagios/sbin">
 +
#  SSLRequireSSL
 +
  Options ExecCGI
 +
  AllowOverride None
 +
  Order allow,deny
 +
  Allow from all
 +
#  Order deny,allow
 +
#  Deny from all
 +
#  Allow from 127.0.0.1
 +
  AuthName "Nagios Access"
 +
  AuthType Basic
 +
  AuthUserFile /usr/local/nagios/etc/htpasswd.users
 +
  Require valid-user
 +
</Directory>
 +
 
 +
Alias /nagios "/usr/local/nagios/share"
 +
 
 +
<Directory "/usr/local/nagios/share">
 +
#  SSLRequireSSL
 +
  Options None
 +
  AllowOverride None
 +
  Order allow,deny
 +
  Allow from all
 +
#  Order deny,allow
 +
#  Deny from all
 +
#  Allow from 127.0.0.1
 +
  AuthName "Nagios Access"
 +
  AuthType Basic
 +
  AuthUserFile /usr/local/nagios/etc/htpasswd.users
 +
  Require valid-user
 +
</Directory>
 +
</code>
 +
 
 +
Avec Nagios 3, un simple install-webconf suffit
 +
 
 +
<code>
 +
sudo make install-webconf
 +
</code>
 +
 
 +
Création du fichier d'utilisateur
 +
 
 +
<code>
 +
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
 +
sudo chown nagios:nagcmd /usr/local/nagios/etc/htpasswd.users
 +
</code>
 +
 
 +
Ajouter l'utilisateur apache au groupe nagcmd pour pouvoir exécuter les commandes externes de Nagios depuis l'interface (ex : nagcmd:x:9001:www-data)
 +
 
 +
<code>
 +
sudo adduser www-data nagcmd
 +
sudo /etc/init.d/apache2 restart
 +
</code>
 +
 
 +
Pour que Nagios démarre automatiquement au boot de la machine
 +
 
 +
<code>
 +
sudo update-rc.d nagios defaults
 +
</code>
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
==== Installation plugins ====
 +
 
 +
=== Librairies complémentaires ===
 +
 
 +
<code>
 +
sudo apt-get install libgnutls-dev libmysqlclient15-dev libssl-dev libsnmp-perl libkrb5-dev libldap2-dev libsnmp-dev libnet-snmp-perl gawk libwrap0-dev libmcrypt-dev fping snmp gettext smbclient dnsutils
 +
</code>
 +
 
 +
Quelques corrections pour que le configure trouve les librairies qu'il a du mal à détecter
 +
 
 +
<code>
 +
sudo ln -s /usr/include/inttypes.h /usr/include/sys/
 +
sudo ln -s /usr/include/mntent.h /usr/include/sys/
 +
</code>
 +
 
 +
=== Compilation ===
 +
 
 +
<code>
 +
wget http://freefr.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
 +
tar -xzf nagios-plugins-1.4.14.tar.gz
 +
pushd nagios-plugins-1.4.14/
 +
./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-libtap --enable-extra-opts --enable-perl-modules
 +
make
 +
sudo make install
 +
</code>
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
==== Installation NRPE ====
 +
 
 +
Installation de openssl
 +
 
 +
<code bash>
 +
sudo apt-get install openssl
 +
</code>
 +
 
 +
<code bash>
 +
wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz
 +
tar -xzf nrpe-2.12.tar.gz
 +
pushd nrpe-2.12/
 +
./configure --enable-ssl --with-log-facility --enable-command-args --enable-threads=posix --with-trusted-path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/nagios/bin:/usr/local/nagios/libexec
 +
make
 +
sudo make install
 +
sudo cp sample-config/nrpe.cfg /usr/local/nagios/etc/
 +
</code>
 +
 
 +
Pas de script de démarrage fourni, aussi en voici un minimal
 +
 
 +
<code bash>
 +
#!/bin/sh
 +
 
 +
start()
 +
{
 +
                rm -f /var/run/nrpe.pid
 +
                /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
 +
}
 +
 
 +
stop()
 +
{
 +
                nrpe=`pgrep nrpe`
 +
                kill -9 $nrpe
 +
}
 +
 
 +
if [ -f /etc/rc.d/init.d/functions ]; then
 +
        . /etc/rc.d/init.d/functions
 +
fi
 +
 
 +
case "$1" in
 +
start)
 +
  echo 'Le service nrpe est demarrer'
 +
  start
 +
  exit 0
 +
  ;;
 +
stop)
 +
  echo 'Le serviec nrpe est arreter'
 +
  stop
 +
  exit 0
 +
  ;;
 +
restart)
 +
  echo 'Le serviec nrpe est arreter'
 +
  stop
 +
  echo 'Le service nrpe est demarrer'
 +
  start
 +
  exit 0
 +
  ;;
 +
*)
 +
  echo 'Usage: nrpe {start|stop|restart}'
 +
  exit 1
 +
  ;;
 +
esac
 +
 
 +
</code>
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
==== Installation NSCA ====
 +
 
 +
Quelques fichiers mal linkés
 +
 
 +
<code>
 +
sudo apt-get install libbind-dev libdb-dev
 +
sudo ln -s /usr/include/linux/config.h /usr/include/sys/
 +
sudo ln -s /usr/include/dns/db.h /usr/include/
 +
</code>
 +
 
 +
Compilation
 +
 
 +
<code>
 +
wget http://downloads.sourceforge.net/project/nagios/nsca-2.x/nsca-2.7.2/nsca-2.7.2.tar.gz
 +
tar -xzf nsca-2.7.2.tar.gz
 +
pushd nsca-2.7.2/
 +
./configure
 +
make
 +
</code>
 +
 
 +
copier les exécutables et le fichier de configuration pour finir l'installation
 +
 
 +
<code>
 +
sudo cp src/nsca /usr/local/nagios/bin/
 +
sudo cp src/send_nsca /usr/local/nagios/libexec/
 +
sudo cp sample-config/nsca.cfg /usr/local/nagios/etc/
 +
</code>
 +
 
 +
Le script de démarrage fourni fonctionnant, nous avons utilisé le code ci-dessous qui est un dérivé du script nrpe comme script
 +
de démarrage
 +
 
 +
<code>
 +
#!/bin/sh
 +
# Start/stop the nsca daemon.
 +
#
 +
# Contributed by Andrew Ryder 06-22-02
 +
# Slight mods by Ethan Galstad 07-09-02
 +
 
 +
NscaBin=/usr/local/nagios/bin/nsca
 +
NscaCfg=/usr/local/nagios/etc/nsca.cfg
 +
 
 +
test -f $NscaBin || exit 0
 +
 
 +
case "$1" in
 +
start)  echo -n "Starting nagios service check acceptator daemon: nsca"
 +
        start-stop-daemon --start --quiet --exec $NscaBin -- -c $NscaCfg --daemon
 +
        echo "."
 +
        ;;
 +
stop)  echo -n "Stopping nagios service check acceptator daemon: nsca"
 +
        start-stop-daemon --stop --quiet --exec $NscaBin
 +
        echo "."
 +
        ;;
 +
restart) echo -n "Restarting nagios service check acceptator daemon: nsca"
 +
        start-stop-daemon --stop --quiet --exec $NscaBin
 +
        start-stop-daemon --start --quiet --exec $NscaBin -- -c $NscaCfg --daemon
 +
        echo "."
 +
        ;;
 +
reload|force-reload) echo -n "Reloading configuration files for nagios service check acceptator daemon: nsca"
 +
        # nsca reloads automatically
 +
        echo "."
 +
        ;;
 +
*)      echo "Usage: /etc/init.d/nsca start|stop|restart|reload|force-reload"
 +
        exit 1
 +
        ;;
 +
esac
 +
exit 0
 +
</code>
 +
 
 +
Pour l'activer
 +
 
 +
<code>
 +
sudo update-rc.d nsca defaults
 +
</code>
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
==== Installation NDOUtils ====
 +
 
 +
Compilation et installation de NDOUtils
 +
 
 +
<code bash>
 +
wget http://puzzle.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz
 +
tar -xzf ndoutils-1.4b7.tar.gz
 +
pushd ndoutils-1.4b7/
 +
./configure --enable-mysql
 +
make
 +
cd src
 +
sudo cp log2ndo file2sock sockdebug /usr/local/nagios/bin
 +
sudo cp ndomod-3x.o /usr/local/nagios/bin/ndomod.o
 +
sudo cp ndo2db-3x /usr/local/nagios/bin/ndo2db
 +
cd ../config/
 +
sudo cp ndomod.cfg ndo2db.cfg /usr/local/nagios/etc
 +
</code>
 +
 
 +
Ne reste plus qu'à créer une base de données "nagios", un utilisateur possédant les droits SELECT, INSERT, UPDATE, et DELETE sur cette base et à y insérer le fichier de structure fourni.
 +
 
 +
<code sql>
 +
CREATE USER 'nagios'@'localhost' IDENTIFIED BY '****';
 +
 
 +
GRANT USAGE ON * . * TO 'nagios'@'localhost' IDENTIFIED BY '****' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
 +
 
 +
CREATE DATABASE IF NOT EXISTS `nagios` ;
 +
 
 +
GRANT SELECT , INSERT , UPDATE , DELETE ON `nagios` . * TO 'nagios'@'localhost';
 +
</code>
 +
 
 +
Insertion du fichier de structure
 +
 
 +
<code>
 +
cd ../
 +
mysql -uroot -ppaswd nagios < db/mysql.sql
 +
</code>
 +
Modifier le fichier de configuration /usr/local/nagios/etc/nagios.cfg
 +
 
 +
<code>
 +
event_broker_options=-1
 +
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
 +
</code>
 +
 
 +
Démarrage du démon
 +
 
 +
<code>
 +
/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
 +
</code>
 +
 
 +
ndo2db étant fourni sans script de démarrage, le suivant a été utilisé
 +
 
 +
<code>
 +
#!/bin/sh
 +
# Start/stop the nsca daemon.
 +
#
 +
# Contributed by Andrew Ryder 06-22-02
 +
# Slight mods by Ethan Galstad 07-09-02
 +
 
 +
Ndo2dbBin=/usr/local/nagios/bin/ndo2db
 +
Ndo2dbCfg=/usr/local/nagios/etc/ndo2db.cfg
 +
 
 +
test -f $Ndo2dbBin || exit 0
 +
 
 +
case "$1" in
 +
start)  echo -n "Starting ndo2db daemon: ndo2db"
 +
        start-stop-daemon --start --quiet --exec $Ndo2dbBin -- -c $Ndo2dbCfg
 +
        echo "."
 +
        ;;
 +
stop)  echo -n "Stopping ndo2db daemon: ndo2db"
 +
        start-stop-daemon --stop --quiet --exec $Ndo2dbBin
 +
        echo "."
 +
        ;;
 +
restart) echo -n "Restarting ndo2db daemon: ndo2db"
 +
        start-stop-daemon --stop --quiet --exec $Ndo2dbBin
 +
        start-stop-daemon --start --quiet --exec $Ndo2dbBin -- -c $Ndo2dbCfg --daemon
 +
        echo "."
 +
        ;;
 +
reload|force-reload) echo -n "Reloading configuration files for ndo2db daemon: ndo2db"
 +
        # ndo2db reloads automatically
 +
        echo "."
 +
        ;;
 +
*)      echo "Usage: /etc/init.d/ndo2db start|stop|restart|reload|force-reload"
 +
        exit 1
 +
        ;;
 +
esac
 +
exit 0
 +
</code>
 +
 
 +
Pour l'activer
 +
 
 +
<code>
 +
sudo update-rc.d ndo2db defaults
 +
</code>
 +
 
 +
Il y a certains cas où il n'est pas nécessaire d'envoyer toutes les données gérées par Nagios dans la base NDOUtil. Il existe une [[http://www.consol.com/opensource/nagios/ndo-data-processing-options/ | petite calculette]] en ligne pour aider à déterminer quoi envoyer et surtout avoir la valeur à renseigner dans ndomod.cfg.
 +
 
 +
==== Installation SNMPTT ====
 +
 
 +
Commençons par compléter notre couche SNMP et librairie perl pour faire fonctionner SNMPTT
 +
 
 +
<code>
 +
sudo apt-get install snmpd libconfig-inifiles-perl
 +
</code>
 +
 
 +
Installation SNMPTT
 +
 
 +
<code>
 +
wget http://switch.dl.sourceforge.net/sourceforge/snmptt/snmptt_1.2.tgz
 +
tar -xzf snmptt_1.2.tgz
 +
pushd snmptt_1.2/
 +
sudo mv snmpttconvert snmpttconvertmib snmptt-net-snmp-test /usr/local/bin/
 +
sudo mv snmptt snmptthandler /usr/local/sbin/
 +
sudo mkdir -p /usr/local/etc/snmptt.d
 +
sudo cp snmptt.ini /usr/local/etc/
 +
sudo cp examples/snmptt.conf.generic /usr/local/etc/snmptt.d/
 +
</code>
 +
 
 +
Il faut ensuite convertir les MIBS dont on a besoin.
 +
Afin de tester la validité de notre installation SNMPTT, nous générons une trap SNMP que nous lui passons
 +
 
 +
<code>
 +
sudo snmptt < /home/system/src/snmptt_1.2/examples/sample-trap.generic
 +
</code>
 +
 
 +
Modifier le fichier /etc/default/snmpd pour activer le démon trap
 +
 
 +
<code>
 +
TRAPDRUN=yes
 +
 
 +
# snmptrapd options (use syslog).
 +
TRAPDOPTS='-Lsd -On -p /var/run/snmptrapd.pid'
 +
</code>
 +
 
 +
Modifier le fichier de configuration /etc/snmp/snmptrapd.conf
 +
 
 +
<code>
 +
traphandle default /usr/local/sbin/snmptt
 +
disableAuthorization yes
 +
donotlogtraps  yes
 +
</code>
  
==== Install Oreon 1.4 ====
+
Pour convertir au format snmptt des MIB, il faut utiliser snmpttconvertmib et c'est long. Voilà une moulinette qui accepte en entrée un répertoire et qui convertit chacun des fichiers qui s'y trouvent au format snmptt.
  
===== `install.sh' script =====
+
<code bash>
 +
#!/bin/bash
  
# '''http://download.oreon-project.org/centreon/centreon-1.4.1.tar.gz'''
+
ls $1 > /tmp/mibs.txt
# '''tar zxf centreon-1.4.1.tar.gz'''
 
# '''cd centreon-1.4.1'''
 
# '''./install.sh'''
 
  Where is installed Nagios ?
 
    '''/usr/lib/cgi-bin/nagios2'''
 
  Where are your nagios etc directory ?
 
    '''/etc/nagios2'''
 
  Where are your nagios plugins / libexec  directory ?
 
    '''/usr/lib/nagios/plugins'''
 
  Where are your nagios bin  directory ?
 
    '''/usr/sbin'''
 
  Where do I install Oreon ?
 
    '''/usr/local/oreon'''
 
  Where is sudo ?
 
    '''/etc/sudoers'''
 
  Where is installed RRD perl modules (RRDs.pm) ?
 
    '''/usr/lib/perl5'''
 
  Where is rrdtool binary ?
 
    '''/usr/bin/rrdtool'''
 
  Where is mail binary ?
 
    '''/usr/bin/mail'''
 
  Where is PEAR Path ?
 
    '''/usr/share/php'''
 
  Do you want to install Oreon Plugins ?
 
    '''y'''
 
  Do you want to install Oreon Traps Plugins ?
 
    '''y'''
 
  Where is your SNMP configuration file?
 
    '''/etc/snmp/'''
 
  Do you want overwrite this file ? You must regenerate this one from Oreon interface.
 
    '''y'''
 
  By default, oreon use nagios user, it's correct ?
 
    '''y'''
 
  You must specify cron user :
 
    '''y'''
 
  
===== Apply patches =====
+
while read enreg; do
  
Retrieve patches:
+
/usr/local/snmptt/bin/snmpttconvertmib --in=/usr/share/snmp/mibs/$enreg --out=/etc/snmp/snmptt.d/$enreg
# '''mkdir oreon-1.4-patches'''
+
echo "processing $enreg..."
# '''cd oreon-1.4-patches'''
 
# '''(I=1; STATUS=0;'''
 
  '''while [ $STATUS -eq 0 ]; do'''
 
    '''wget http://download.oreon-project.org/patch/oreon-patch-1.4-$I.tgz;'''
 
    '''STATUS=$?;'''
 
    '''I=$(($I+1));'''
 
  '''done)'''
 
  
Note: This script has a small error since it will try to download oreon-patch-1.4-6.tgz as well
+
done < /tmp/mibs.txt
 +
rm /tmp/mibs.txt
  
Unpack patches:
 
# '''(for TARGZ in *.tgz; do'''
 
      '''mkdir $TARGZ.unpack && tar -C $TARGZ.unpack -zxf $TARGZ;'''
 
    '''done)'''
 
  
Apply all the patches:
+
exit 0
# '''(for UNPACK in *.unpack; do'''
+
</code>
      '''for PATCH in $UNPACK/*.patch $UNPACK/*/*.patch; do'''
 
        '''echo "Applying patch $PATCH";'''
 
        '''cat "$PATCH" | (cd /usr/local/oreon && patch -p1);'''
 
      '''done;'''
 
    '''done)'''
 
  
===== Web install =====
+
Il suufit de l'appeler ensuite avec le répertoire en argument
  
Restart apache/mysql
+
<code>
 +
mibs-directory-convert.sh /usr/share/snmp/mibs/
 +
</code>
  
# '''/etc/init.d/mysql restart'''
+
==== Installation Nagtrap ====
# '''/etc/init.d/apache2 restart'''
 
  
and finalize the installation with the Oreon Web interface:
+
NagTrap est une interface bien pratique pour voir les traps snmp reçus et injectés dans une base de données MySQL. Il fournit également un plugin Nagios pour requêter cette base.
  
'''http://your_server/oreon/'''
+
Installation
  
Parameters:
+
<code bash>
 +
wget http://surfnet.dl.sourceforge.net/sourceforge/nagtrap/nagtrap-0.1.2.tar.gz
 +
tar xzf nagtrap-0.1.2.tar.gz
 +
cd nagtrap
 +
mysql -u root -p snmptt < db/snmptt-1.2.sql
 +
</code>
  
  Nagios Version = ['''2.x''']
+
Création d'une nouvelle table pour stocker les traps reçues mais inconnues
  
  Oreon Database Name = ['''oreon''']
+
<code sql>
  Oreon Data Storage Database Name = ['''ods''']
+
CREATE TABLE `snmptt`.`snmptt_unknown` (
  Oreon Database Password = ['''******''']
+
`id` mediumint( 9 ) NOT NULL AUTO_INCREMENT ,
  MySQL Client version (Password Haching Changes) = ['''>=4.1 - PASSWORD()''']
+
`eventname` varchar( 50 ) default NULL ,
 +
`eventid` varchar( 50 ) default NULL ,
 +
`trapoid` varchar( 100 ) default NULL ,
 +
`enterprise` varchar( 100 ) default NULL ,
 +
`community` varchar( 20 ) default NULL ,
 +
`hostname` varchar( 100 ) default NULL ,
 +
`agentip` varchar( 16 ) default NULL ,
 +
`category` varchar( 20 ) default NULL ,
 +
`severity` varchar( 20 ) default NULL ,
 +
`uptime` varchar( 20 ) default NULL ,
 +
`traptime` varchar( 30 ) default NULL ,
 +
`formatline` varchar( 255 ) default NULL ,
 +
`trapread` int( 11 ) default '0',
 +
PRIMARY KEY ( `id` )
 +
) ENGINE = MYISAM DEFAULT CHARSET = latin1;
  
  Administrator login for Oreon = ['''admin''']
+
INSERT INTO `snmptt`.`snmptt_unknown`
  Administrator password for Oreon = ['''******''']
+
SELECT *
  Administrator Email for Oreon = ['''someone@somewhere''']
+
FROM `snmptt`.`snmptt` ;
 +
</code>
  
===== Fix paths in Oreon database for Debian Nagios =====
+
Mise en place des fichiers pour l'interface PHP
  
Now we need to change some default parameters to follow the layout from Nagios:
+
<code bash>
 +
sudo mv nagtrap/ /usr/local/nagios/share/
 +
sudo chown -R www-data:www-data /usr/local/nagios/share/nagtrap/
 +
sudo cp -p /usr/local/nagios/share/nagtrap/etc/config.ini.php-dist /usr/local/nagios/share/nagtrap/etc/config.ini.php
 +
</code>
  
# '''mysql -u root -p'''
+
Editer le fichier config.ini.php et renseigner les valeurs pour la connexion MySQL. C'est prêt !
Enter password:
 
Welcome to the MySQL monitor. Commands end with ; or \g.
 
Your MySQL connection id is 18
 
Server version: 5.0.32-Debian_7etch1-log Debian etch distribution
 
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
 
mysql> '''use oreon'''
 
Reading table information for completion of table and column names
 
You can turn off this feature to get a quicker startup with -A
 
 
Database changed
 
mysql> '''UPDATE general_opt SET nagios_path_img = '/usr/share/nagios/htdocs/images/logos/';'''
 
mysql> '''UPDATE general_opt SET nagios_path_bin = '/usr/sbin/nagios2';'''
 
 
mysql> '''UPDATE cfg_cgi SET main_config_file = '/etc/nagios2/nagios.cfg';'''
 
mysql> '''UPDATE cfg_cgi SET physical_html_path = '/usr/share/nagios2/htdocs';'''
 
mysql> '''UPDATE cfg_cgi SET url_html_path = '/nagios2';'''
 
mysql> '''UPDATE cfg_cgi SET nagios_check_command = 'nagios_check_command=/usr/lib/nagios/plugins/check_nagios /var/cache/nagios2/ status.dat 5 &amp;#039;/usr/sbin/nagios2&amp;#039;';'''
 
 
mysql> '''UPDATE cfg_nagios SET log_file = '/var/log/nagios2/nagios.log';'''
 
mysql> '''UPDATE cfg_nagios SET cfg_dir = '/etc/nagios2/';'''
 
mysql> '''UPDATE cfg_nagios SET temp_file = '/var/tmp/nagios.tmp';'''
 
mysql> '''UPDATE cfg_nagios SET status_file = '/var/cache/nagios2/status.dat';'''
 
mysql> '''UPDATE cfg_nagios SET p1_file = '/usr/lib/nagios2/p1.pl';'''
 
mysql> '''UPDATE cfg_nagios SET log_archive_path = '/var/log/nagios2/archives/';'''
 
mysql> '''UPDATE cfg_nagios SET command_file = '/var/lib/nagios2/rw/nagios.cmd';'''
 
mysql> '''UPDATE cfg_nagios SET downtime_file = '/var/lib/nagios2/downtime.dat';'''
 
mysql> '''UPDATE cfg_nagios SET comment_file = '/var/lib/nagios2/comments.dat';'''
 
mysql> '''UPDATE cfg_nagios SET lock_file = '/var/run/nagios2/nagios2.pid';'''
 
mysql> '''UPDATE cfg_nagios SET state_retention_file = '/var/lib/nagios2/retention.dat';'''
 
 
mysql> '''use ods'''
 
Reading table information for completion of table and column names
 
You can turn off this feature to get a quicker startup with -A
 
 
Database changed
 
mysql> '''UPDATE config SET RRDdatabase_path = '/usr/local/oreon/OreonDataStorage/';'''
 
mysql> '''UPDATE config SET drop_file = '/var/log/nagios2/service-perfdata.tmp';'''
 
mysql> '''UPDATE config SET perfdata_file = '/var/log/nagios2/service-perfdata';'''
 
mysql> '''UPDATE config SET nagios_log_file = '/var/log/nagios2/nagios.log';'''
 
 
mysql> '''QUIT'''
 
  
==== Final fixes ====
+
===== Contrôle installation =====
  
# '''apt-get install libconfig-inifiles-perl'''
+
Une fois l'installation de l'ensemble des composants terminés, il ne reste qu'à vérifier que les processes ont bien été démarré.
# '''sed -ie 's,/srv/nagios/libexec,/usr/lib/nagios/plugins,g' /usr/lib/nagios/plugins/check_graph_traffic.pl'''
 
  
# '''chown nagios:www-data /var/lib/nagios2/rw/'''
+
<code bash>
# '''chmod g+rx /var/lib/nagios2/rw/'''
+
ps aux | grep nagios
 +
</code>
  
==== The End ====
+
<code>
 +
nagios    3679  0.0  0.3  20820  1848 ?        Ssl  Jul11  1:55 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
 +
nagios  10670  0.0  0.1  1984  744 ?        Ss  Jul11  0:00 /usr/local/nagios/bin/nsca -c /usr/local/nagios/etc/nsca.cfg --daemon
 +
nagios    309  0.0  0.0  3604  320 ?        Ss  13:39  0:00 /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
 +
nagios    3683  0.0  0.1  3348  968 ?        Ss  Jul11  0:17 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
 +
</code>

Version actuelle datée du 11 mai 2010 à 10:59

Attention document NON VALIDE


This howto provides a step by step walkthrough on installing the required components, and setting the default parameters (file paths, etc.) for Oreon to work with the default Nagios from Debian.

Installer le serveur virtuel[modifier]

Creation de l'image :

# xen-create-image --hostname nagios --debootstrap --ip 193.49.133.77 --memory 1024MB --swap 2048Mb --vcpu 2

Demarrage de l'image :

# xm create -c nagios.cfg

Mot de passe root :

# passwd

Install required Debian packages[modifier]

apache2[modifier]
# apt-get install sudo apache2
mysql[modifier]
# apt-get install mysql-server-5.0
php5[modifier]
# apt-get install php5
# apt-get install php-db php-date
# apt-get install php5-gd php5-mysql php5-snmp php5-ldap
# apt-get install php-mail php-mail-mime php-net-smtp php-net-socket
# apt-get install php5-xmlrpc
rrdtool[modifier]
# apt-get install rrdtool librrds-perl
snmp[modifier]
# apt-get install snmp snmpd libnet-snmp-perl

Eventually configure snmpd on this machine:

# vi /etc/snmp/snmpd.conf
com2sec readonly  default         public
# /etc/init.d/snmpd restart
# snmpwalk -v1 -c public localhost
SNMPv2-MIB::sysDescr.0 = STRING: Linux debian 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1339340) 3:43:13.40
[...]
IPV6-MIB::ipv6IfAdminStatus.2 = INTEGER: up(1)
IPV6-MIB::ipv6IfOperStatus.1 = INTEGER: up(1)
IPV6-MIB::ipv6IfOperStatus.2 = INTEGER: up(1)
Additionnal PEAR modules[modifier]
# pear upgrade pear
# pear install -o -f --alldeps DB_DataObject DB_DataObject_FormBuilder MDB2 Numbers_Roman \
Numbers_Words HTML_Common HTML_QuickForm HTML_QuickForm_advmultiselect HTML_Table Auth_SASL \
HTTP Image_Canvas Image_Color Image_Graph Image_GraphViz Net_Traceroute Net_Ping Validate XML_RPC SOAP

Nagios[modifier]

telecharger les archives :

# wget http://switch.dl.sourceforge.net/sourceforge/nagios/nagios-3.0b3.tar.gz
# wget http://belnet.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.9.tar.gz

decompresser nagios

# tar xvzf nagios-3.0b3.tar.gz
# cd nagios-3.0b3

on install :

# adduser nagios 
# groupadd nagcmd
# usermod -G nagcmd www-data
# usermod -G nagcmd nagios
# apt-get install gcc make g++ libpar-perl  
# apt-get install libcache-cache-perl libcache-memcached-perl libcache-perl libmemcache-dev memcached libsdl-perl
 

Il y a un probleme avec des librairies :

# ln -s /usr/lib/libperl.so.5.8.8 /usr/lib/libperl.so


# ./configure --with-command-group=nagcmd --with-default-perfdata --enable-embedded-perl --with-perlcache
# make all
# make full install

Installation des plugins :

# cd ..
# tar xvzf nagios-plugins-1.4.9.tar.gz
# cd nagios-plugins-1.4.9
# ./configure
# make
# make install


Mise a jour centreon

telecharger la derniere version sur le site


Command :
tar xvzf centreon-X
cd centreon-X
./install.sh -u /etc/centreon/



Repondre y a toutes les questions


Aller sur la page de centreon et mettre a jour les bases de données.











Installation Nagios 2 & 3 sur Ubuntu 6.0.6, 8.0.4 et 10.0.4 LTS[modifier]

<note tip>L'ensemble de cette installation reste valable pour Ubuntu 8.0.4 L.T.S Hardy Heron et Ubuntu 10.04 Lucid Lynx.</note>

Préambule[modifier]

Ce document couvre l'installation d'un serveur Nagios version 2 ou 3 sur Linux Ubuntu 6.0.6 LTS, Ubuntu 8.04 LTS et 10.0.4 LTS. Il doit être possible de suivre ces instructions pour d'autres distributions avec quelques modifications. Néanmoins, l' Ubuntu Server LTS est intéressante pour sa dimension "Entreprise Ready" et son suppport gratuit assuré par Canonical pour une durée de 5 ans. Cette distribution représente un bon compromis paquets récents, sécurité (le compte root est désactivé) et stabilité.

A la fin de l'installation, le serveur doit contenir l'ensemble des programmes et librairies nécessaires au fonctionnement de Nagios en production. Ne sera pas abordé l'installation des programmes satellites de la supervision comme la gestion des configurations, des changements, ntop, smokeping...) Par contre, pour nos besoins, nous couvrirons l'installation à partir des sources de :

 * Nagios
 * Nagios plugins officiels
 * Nagios NRPE pour la surveillance active
 * Nagios NSCA pour la surveillance passive
 * Nagios NDOutils pour stocker les données de Nagios dans MySQL

Notre serveur comprendra un mix de programmes installés par la commande apt-get mais aussi de paquets compilés à partir des sources de façon à contrôler les paramètres d'installation de ces programmes et de pouvoir les mettre à jour plus rapidement (patches et correctifs mineurs)





Installation Ubuntu Server 6.0.6, 8.0.4 et 10.0.4 LTS[modifier]

Nous n'allons pas couvrir en détail l'installation de la distribution Linux. Il suffit de choisir une installation de serveur LAMP et de suivre les indications. Pour que cette installation soit opérationnelle, il convient d'exécuter les commandes suivantes :

sudo apt-get update sudo apt-get upgrade sudo apt-get install openssh-server

Ces commandes mettent à jour l'ensemble de la distribution installée et installe le serveur ssh pour la prise en main à distance.

Préparation des dépôts apt pour l'installation

sudo nano /etc/apt/sources.list

Le contenu désiré est le suivant: deb http://fr.archive.ubuntu.com/ubuntu/ dapper main universe restricted deb-src http://fr.archive.ubuntu.com/ubuntu/ dapper main universe restricted deb http://fr.archive.ubuntu.com/ubuntu/ dapper-updates main universe restricted deb-src http://fr.archive.ubuntu.com/ubuntu/ dapper-updates universe restricted deb http://security.ubuntu.com/ubuntu dapper-security main universe restricted deb-src http://security.ubuntu.com/ubuntu dapper-security main universe restricted

Nous installons quelques utilitaires de base pour notre serveur de supervision

sudo apt-get install php5-gd mailx fping snmp ntp smbclient nmap saidar traceroute php5-snmp curl gettext syslog-ng

Installation de l'environnement de compilation

sudo apt-get install build-essential
















Installation Nagios[modifier]

Création de l'utilisateur nagios

sudo groupadd -g 9000 nagios sudo groupadd -g 9001 nagcmd sudo useradd -u 9000 -g nagios -G nagcmd -d /usr/local/nagios -c "Nagios Admin" nagios

Avant de pouvoir compiler Nagios le plus complètement possible, il faut installer quelques librairies de développement. Les en-têtes du noyau sont facultatifs :

sudo apt-get install libperl-dev libgd2-xpm-dev libltdl3-dev linux-headers-`uname -r`

Pour la version 3 de Nagios, ajouter la librairie libglib2

sudo apt-get install libglib2.0-dev

Quelques corrections pour que Nagios trouve les librairies que le configure a du mal à détecter

sudo ln -s /usr/include/sys/uio.h /usr/include/ sudo ln -s /usr/include/sys/socket.h /usr/include/

Ensuite compilation de Nagios, des plugins, de NRPE et NSCA.

wget http://freefr.dl.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz tar -xzf nagios-3.2.0.tar.gz pushd nagios-3.2.0 ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios --with-command-group=nagcmd --enable-event-broker --enable-nanosleep --enable-embedded-perl --with-perlcache make all sudo make install sudo make install-init sudo make install-commandmode sudo make install-config popd

Configurer apache2 pour Nagios

sudo nano /etc/apache2/conf.d/nagios.conf

Coller dans le fichier ouvert la configuration suivante :

ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"

<Directory "/usr/local/nagios/sbin">

  1. SSLRequireSSL
  Options ExecCGI
  AllowOverride None
  Order allow,deny
  Allow from all
  1. Order deny,allow
  2. Deny from all
  3. Allow from 127.0.0.1
  AuthName "Nagios Access"
  AuthType Basic
  AuthUserFile /usr/local/nagios/etc/htpasswd.users
  Require valid-user

</Directory>

Alias /nagios "/usr/local/nagios/share"

<Directory "/usr/local/nagios/share">

  1. SSLRequireSSL
  Options None
  AllowOverride None
  Order allow,deny
  Allow from all
  1. Order deny,allow
  2. Deny from all
  3. Allow from 127.0.0.1
  AuthName "Nagios Access"
  AuthType Basic
  AuthUserFile /usr/local/nagios/etc/htpasswd.users
  Require valid-user

</Directory>

Avec Nagios 3, un simple install-webconf suffit

sudo make install-webconf

Création du fichier d'utilisateur

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin sudo chown nagios:nagcmd /usr/local/nagios/etc/htpasswd.users

Ajouter l'utilisateur apache au groupe nagcmd pour pouvoir exécuter les commandes externes de Nagios depuis l'interface (ex : nagcmd:x:9001:www-data)

sudo adduser www-data nagcmd sudo /etc/init.d/apache2 restart

Pour que Nagios démarre automatiquement au boot de la machine

sudo update-rc.d nagios defaults





Installation plugins[modifier]

Librairies complémentaires[modifier]

sudo apt-get install libgnutls-dev libmysqlclient15-dev libssl-dev libsnmp-perl libkrb5-dev libldap2-dev libsnmp-dev libnet-snmp-perl gawk libwrap0-dev libmcrypt-dev fping snmp gettext smbclient dnsutils

Quelques corrections pour que le configure trouve les librairies qu'il a du mal à détecter

sudo ln -s /usr/include/inttypes.h /usr/include/sys/ sudo ln -s /usr/include/mntent.h /usr/include/sys/

Compilation[modifier]

wget http://freefr.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz tar -xzf nagios-plugins-1.4.14.tar.gz pushd nagios-plugins-1.4.14/ ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-libtap --enable-extra-opts --enable-perl-modules make sudo make install





Installation NRPE[modifier]

Installation de openssl

sudo apt-get install openssl

wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz tar -xzf nrpe-2.12.tar.gz pushd nrpe-2.12/ ./configure --enable-ssl --with-log-facility --enable-command-args --enable-threads=posix --with-trusted-path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/nagios/bin:/usr/local/nagios/libexec make sudo make install sudo cp sample-config/nrpe.cfg /usr/local/nagios/etc/

Pas de script de démarrage fourni, aussi en voici un minimal

  1. !/bin/sh

start() {

               rm -f /var/run/nrpe.pid
               /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

}

stop() {

               nrpe=`pgrep nrpe`
               kill -9 $nrpe

}

if [ -f /etc/rc.d/init.d/functions ]; then

       . /etc/rc.d/init.d/functions

fi

case "$1" in

start)
 echo 'Le service nrpe est demarrer'
 start
 exit 0
 ;;
stop)
 echo 'Le serviec nrpe est arreter'
 stop
 exit 0
 ;;
restart)
 echo 'Le serviec nrpe est arreter'
 stop
 echo 'Le service nrpe est demarrer'
 start
 exit 0
 ;;
*)
 echo 'Usage: nrpe {start|stop|restart}'
 exit 1
 ;;

esac




Installation NSCA[modifier]

Quelques fichiers mal linkés

sudo apt-get install libbind-dev libdb-dev sudo ln -s /usr/include/linux/config.h /usr/include/sys/ sudo ln -s /usr/include/dns/db.h /usr/include/

Compilation

wget http://downloads.sourceforge.net/project/nagios/nsca-2.x/nsca-2.7.2/nsca-2.7.2.tar.gz tar -xzf nsca-2.7.2.tar.gz pushd nsca-2.7.2/ ./configure make

copier les exécutables et le fichier de configuration pour finir l'installation

sudo cp src/nsca /usr/local/nagios/bin/ sudo cp src/send_nsca /usr/local/nagios/libexec/ sudo cp sample-config/nsca.cfg /usr/local/nagios/etc/

Le script de démarrage fourni fonctionnant, nous avons utilisé le code ci-dessous qui est un dérivé du script nrpe comme script de démarrage

  1. !/bin/sh
  2. Start/stop the nsca daemon.
  3. Contributed by Andrew Ryder 06-22-02
  4. Slight mods by Ethan Galstad 07-09-02

NscaBin=/usr/local/nagios/bin/nsca NscaCfg=/usr/local/nagios/etc/nsca.cfg

test -f $NscaBin || exit 0

case "$1" in start) echo -n "Starting nagios service check acceptator daemon: nsca"

       start-stop-daemon --start --quiet --exec $NscaBin -- -c $NscaCfg --daemon
       echo "."
       ;;

stop) echo -n "Stopping nagios service check acceptator daemon: nsca"

       start-stop-daemon --stop --quiet --exec $NscaBin
       echo "."
       ;;

restart) echo -n "Restarting nagios service check acceptator daemon: nsca"

       start-stop-daemon --stop --quiet --exec $NscaBin
       start-stop-daemon --start --quiet --exec $NscaBin -- -c $NscaCfg --daemon
       echo "."
       ;;

reload|force-reload) echo -n "Reloading configuration files for nagios service check acceptator daemon: nsca"

       # nsca reloads automatically
       echo "."
       ;;
  • ) echo "Usage: /etc/init.d/nsca start|stop|restart|reload|force-reload"
       exit 1
       ;;

esac exit 0

Pour l'activer

sudo update-rc.d nsca defaults




Installation NDOUtils[modifier]

Compilation et installation de NDOUtils

wget http://puzzle.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz tar -xzf ndoutils-1.4b7.tar.gz pushd ndoutils-1.4b7/ ./configure --enable-mysql make cd src sudo cp log2ndo file2sock sockdebug /usr/local/nagios/bin sudo cp ndomod-3x.o /usr/local/nagios/bin/ndomod.o sudo cp ndo2db-3x /usr/local/nagios/bin/ndo2db cd ../config/ sudo cp ndomod.cfg ndo2db.cfg /usr/local/nagios/etc

Ne reste plus qu'à créer une base de données "nagios", un utilisateur possédant les droits SELECT, INSERT, UPDATE, et DELETE sur cette base et à y insérer le fichier de structure fourni.

CREATE USER 'nagios'@'localhost' IDENTIFIED BY '****';

GRANT USAGE ON * . * TO 'nagios'@'localhost' IDENTIFIED BY '****' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE DATABASE IF NOT EXISTS `nagios` ;

GRANT SELECT , INSERT , UPDATE , DELETE ON `nagios` . * TO 'nagios'@'localhost';

Insertion du fichier de structure

cd ../ mysql -uroot -ppaswd nagios < db/mysql.sql Modifier le fichier de configuration /usr/local/nagios/etc/nagios.cfg

event_broker_options=-1 broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg

Démarrage du démon

/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg

ndo2db étant fourni sans script de démarrage, le suivant a été utilisé

  1. !/bin/sh
  2. Start/stop the nsca daemon.
  3. Contributed by Andrew Ryder 06-22-02
  4. Slight mods by Ethan Galstad 07-09-02

Ndo2dbBin=/usr/local/nagios/bin/ndo2db Ndo2dbCfg=/usr/local/nagios/etc/ndo2db.cfg

test -f $Ndo2dbBin || exit 0

case "$1" in start) echo -n "Starting ndo2db daemon: ndo2db"

       start-stop-daemon --start --quiet --exec $Ndo2dbBin -- -c $Ndo2dbCfg
       echo "."
       ;;

stop) echo -n "Stopping ndo2db daemon: ndo2db"

       start-stop-daemon --stop --quiet --exec $Ndo2dbBin
       echo "."
       ;;

restart) echo -n "Restarting ndo2db daemon: ndo2db"

       start-stop-daemon --stop --quiet --exec $Ndo2dbBin
       start-stop-daemon --start --quiet --exec $Ndo2dbBin -- -c $Ndo2dbCfg --daemon
       echo "."
       ;;

reload|force-reload) echo -n "Reloading configuration files for ndo2db daemon: ndo2db"

       # ndo2db reloads automatically
       echo "."
       ;;
  • ) echo "Usage: /etc/init.d/ndo2db start|stop|restart|reload|force-reload"
       exit 1
       ;;

esac exit 0

Pour l'activer

sudo update-rc.d ndo2db defaults

Il y a certains cas où il n'est pas nécessaire d'envoyer toutes les données gérées par Nagios dans la base NDOUtil. Il existe une [| petite calculette] en ligne pour aider à déterminer quoi envoyer et surtout avoir la valeur à renseigner dans ndomod.cfg.

Installation SNMPTT[modifier]

Commençons par compléter notre couche SNMP et librairie perl pour faire fonctionner SNMPTT

sudo apt-get install snmpd libconfig-inifiles-perl

Installation SNMPTT

wget http://switch.dl.sourceforge.net/sourceforge/snmptt/snmptt_1.2.tgz tar -xzf snmptt_1.2.tgz pushd snmptt_1.2/ sudo mv snmpttconvert snmpttconvertmib snmptt-net-snmp-test /usr/local/bin/ sudo mv snmptt snmptthandler /usr/local/sbin/ sudo mkdir -p /usr/local/etc/snmptt.d sudo cp snmptt.ini /usr/local/etc/ sudo cp examples/snmptt.conf.generic /usr/local/etc/snmptt.d/

Il faut ensuite convertir les MIBS dont on a besoin. Afin de tester la validité de notre installation SNMPTT, nous générons une trap SNMP que nous lui passons

sudo snmptt < /home/system/src/snmptt_1.2/examples/sample-trap.generic

Modifier le fichier /etc/default/snmpd pour activer le démon trap

TRAPDRUN=yes

  1. snmptrapd options (use syslog).

TRAPDOPTS='-Lsd -On -p /var/run/snmptrapd.pid'

Modifier le fichier de configuration /etc/snmp/snmptrapd.conf

traphandle default /usr/local/sbin/snmptt disableAuthorization yes donotlogtraps yes

Pour convertir au format snmptt des MIB, il faut utiliser snmpttconvertmib et c'est long. Voilà une moulinette qui accepte en entrée un répertoire et qui convertit chacun des fichiers qui s'y trouvent au format snmptt.

  1. !/bin/bash

ls $1 > /tmp/mibs.txt

while read enreg; do

/usr/local/snmptt/bin/snmpttconvertmib --in=/usr/share/snmp/mibs/$enreg --out=/etc/snmp/snmptt.d/$enreg echo "processing $enreg..."

done < /tmp/mibs.txt rm /tmp/mibs.txt


exit 0

Il suufit de l'appeler ensuite avec le répertoire en argument

mibs-directory-convert.sh /usr/share/snmp/mibs/

Installation Nagtrap[modifier]

NagTrap est une interface bien pratique pour voir les traps snmp reçus et injectés dans une base de données MySQL. Il fournit également un plugin Nagios pour requêter cette base.

Installation

wget http://surfnet.dl.sourceforge.net/sourceforge/nagtrap/nagtrap-0.1.2.tar.gz tar xzf nagtrap-0.1.2.tar.gz cd nagtrap mysql -u root -p snmptt < db/snmptt-1.2.sql

Création d'une nouvelle table pour stocker les traps reçues mais inconnues

CREATE TABLE `snmptt`.`snmptt_unknown` ( `id` mediumint( 9 ) NOT NULL AUTO_INCREMENT , `eventname` varchar( 50 ) default NULL , `eventid` varchar( 50 ) default NULL , `trapoid` varchar( 100 ) default NULL , `enterprise` varchar( 100 ) default NULL , `community` varchar( 20 ) default NULL , `hostname` varchar( 100 ) default NULL , `agentip` varchar( 16 ) default NULL , `category` varchar( 20 ) default NULL , `severity` varchar( 20 ) default NULL , `uptime` varchar( 20 ) default NULL , `traptime` varchar( 30 ) default NULL , `formatline` varchar( 255 ) default NULL , `trapread` int( 11 ) default '0', PRIMARY KEY ( `id` ) ) ENGINE = MYISAM DEFAULT CHARSET = latin1;

INSERT INTO `snmptt`.`snmptt_unknown` SELECT * FROM `snmptt`.`snmptt` ;

Mise en place des fichiers pour l'interface PHP

sudo mv nagtrap/ /usr/local/nagios/share/ sudo chown -R www-data:www-data /usr/local/nagios/share/nagtrap/ sudo cp -p /usr/local/nagios/share/nagtrap/etc/config.ini.php-dist /usr/local/nagios/share/nagtrap/etc/config.ini.php

Editer le fichier config.ini.php et renseigner les valeurs pour la connexion MySQL. C'est prêt !

Contrôle installation[modifier]

Une fois l'installation de l'ensemble des composants terminés, il ne reste qu'à vérifier que les processes ont bien été démarré.

ps aux | grep nagios

nagios 3679 0.0 0.3 20820 1848 ? Ssl Jul11 1:55 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg nagios 10670 0.0 0.1 1984 744 ? Ss Jul11 0:00 /usr/local/nagios/bin/nsca -c /usr/local/nagios/etc/nsca.cfg --daemon nagios 309 0.0 0.0 3604 320 ? Ss 13:39 0:00 /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg nagios 3683 0.0 0.1 3348 968 ? Ss Jul11 0:17 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d