Nagios : Différence entre versions
| (23 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 --memory 1024MB --swap 2048Mb --vcpu 2 |
Demarrage de l'image : | Demarrage de l'image : | ||
# xm create -c nagios.cfg | # xm create -c nagios.cfg | ||
| − | + | Mot de passe root : | |
| + | # passwd | ||
==== Install required Debian packages ==== | ==== Install required Debian packages ==== | ||
| − | ===== apache2 | + | ===== apache2 ===== |
| − | # | + | # apt-get install sudo apache2 |
===== mysql ===== | ===== mysql ===== | ||
| Ligne 56 : | 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> | ||
| − | + | 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. | |
| − | + | <code bash> | |
| + | #!/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 | |
| − | + | </code> | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | Il suufit de l'appeler ensuite avec le répertoire en argument | |
| − | + | <code> | |
| + | mibs-directory-convert.sh /usr/share/snmp/mibs/ | ||
| + | </code> | ||
| − | + | ==== Installation Nagtrap ==== | |
| − | |||
| − | + | 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 | |
| − | + | <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> | ||
| − | + | Création d'une nouvelle table pour stocker les traps reçues mais inconnues | |
| − | + | <code sql> | |
| − | + | 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` ; | |
| + | </code> | ||
| − | + | Mise en place des fichiers pour l'interface PHP | |
| − | + | <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> | ||
| − | + | Editer le fichier config.ini.php et renseigner les valeurs pour la connexion MySQL. C'est prêt ! | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | ==== | + | ===== Contrôle installation ===== |
| − | + | 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é. | |
| − | |||
| − | + | <code bash> | |
| − | + | ps aux | grep nagios | |
| + | </code> | ||
| − | + | <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.
Sommaire
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">
- 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>
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
- !/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
- !/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
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é
- !/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
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
- 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.
- !/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