Cette page vous explique comment installer Nagios 3, Nareto, Ndo-utils sur une Debian Etch depuis les sources. <note warning>Ce document est en cours de rédaction</note>
# apt-get install libpng12-dev libgd2-noxpm-dev iputils-ping libpq-dev libmysqlclient15-dev make gcc apache2
Récupérer la version de Nagios 3 sur le site officiel ici, celle utilisée ici est la nagios-3.0.3. Pour que Nareto puisse fonctionner avec Nagios 3, il faut appliquer le patch “nareto.patch” qui va créer des nouveaux fichiers qui seront compiler avec les librairies de Nagios.
# wget https://fannagioscd.svn.sourceforge.net/svnroot/fannagioscd/tag/fannagioscd-2.0/SOURCES/nareto.patch.gz # gunzip nareto.patch.gz # tar xzf nagios-3.0.2.tar.gz # cd nagios-3.0.2 # patch -p1 < ../nareto.patch
# ./configure --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share/nagios --libexecdir=/usr/lib/nagios/plugins --localstatedir=/var/log/nagios --sbindir=/usr/lib/nagios/cgi --sysconfdir=/etc/nagios --with-cgiurl=/nagios/cgi-bin --with-command-user=www-data --with-command-group=www-data --with-gd-lib=/usr/lib --with-gd-inc=/usr/include --with-htmurl=/nagios --with-init-dir=/etc/rc.d/init.d --with-lockfile=/var/log/nagios/nagios.pid --with-mail=/bin/mail --with-nagios-user=nagios --with-nagios-group=nagios --with-template-objects --with-template-extinfo --enable-event-broker # make -j3 all # make install install-init install-commandmode install-config
# mkdir -p /usr/lib/nagios/plugins/eventhandlers # cp -afp contrib/eventhandlers/* /usr/lib/nagios/plugins/eventhandlers/ # mkdir -p /usr/include/nagios # cp -p include/*.h /usr/include/nagios/ # cp -p sample-config/httpd.conf /etc/apache2/conf.d/
Afin d'avoir une interface plus conviviale de Nagios, télécharger les 2 archives suivantes.
# wget https://fannagioscd.svn.sourceforge.net/svnroot/fannagioscd/tag/fannagioscd-2.0/SOURCES/nagiosLogos-1.0.tar.gz # wget https://fannagioscd.svn.sourceforge.net/svnroot/fannagioscd/tag/fannagioscd-2.0/SOURCES/nuvola-1.1.tar.gz # tar xzf -C /usr/share/nagios/images/logos -f nagiosLogos-1.0.tar.gz # tar xzf -C /usr/share/nagios -f nuvola-1.1.tar.gz
# cp daemon-init /etc/init.d/nagios # chmod +x /etc/init.d/nagios # update-rc.d nagios defaults # /etc/init.d/nagios start
L'utilisateur “nagiosadmin” sera le premier utilisateur qui pourra se connecter sur l'interface web de Nagios. Pour notre exemple, il aura comme mot de passe “nagiosadmin”. Bien entendu, pensez à le modifier.
# htpasswd -b -c /etc/nagios/htpasswd.users nagiosadmin nagiosadmin # adduser nagios www-data # sed -i "s/Nagios version 2.11/Nagios version 3.0.2/" /usr/share/nagios/main.html # chown -R www-data:nagios /etc/nagios
# sed -i 's/check_external_commands=0/check_external_commands=1/' /etc/nagios/nagios.cfg # sed -i 's:#broker_module=/somewhere/module1.o:broker_module=/usr/lib/nagios/ndomod.o config_file=/etc/nagios/ndomod.cfg:' /etc/nagios/nagios.cfg
# /etc/init.d/apache2 restart
# apt-get install libldap2-dev libpq-dev postgresql-dev libmysqlclient15-dev libsnmp9-dev libradius1-dev libkrb5-dev libnet-snmp-perl procps coreutils mawk
Récupérer la dernière version stables des plugins Nagios ici à savoir pour nous la 1.4.11 et le patch “nagios-plugins_en” qui sera utilisé avant la compilation
# wget http://lkco.gezen.fr/public/nagios-plugins_en.patch # tar xzf nagios-plugins-1.4.11.tar.gz # cd nagios-plugins-1.4.11 # patch -p1 < ../nagios-plugins_en.patch # ./configure --with-cgiurl="/nagios/cgi-bin" --with-fping-command="/usr/sbin/fping" --libexecdir=/usr/lib/nagios/plugins # make # make install
Récupérer la dernière version sur ici et le patch “nagios-ndo-initscript”
# apt-get install mysql-server-5.0
# wget http://lkco.gezen.fr/public/nagios-ndo-initscript.patch # tar xzf ndoutils-1.4b7.tar.gz # cd ndoutils-1.4b7 # patch -p1 < ../nagios-ndo-initscript.patch # ./configure --with-ndo2db-user=nagios --with-ndo2db-group=nagios # make # mkdir -p /var/ndo # cp db/*.sql db/installdb db/prepsql db/README /var/ndo/ # mkdir -p /var/ndo/queries # cp db/queries/* /var/ndo/queries # cp init-script.centos /etc/init.d/ndo2db # chmod +x /etc/init.d/ndo2db # mkdir -p /var/lock/subsys/ # chown root:root /etc/init.d/ndo2db # cp src/ndomod-3x.o /usr/lib/nagios/ndomod-3x.o # cp src/ndomod-2x.o /usr/lib/nagios/ndomod-2x.o # ln -s /usr/lib/nagios/ndomod-3x.o /usr/lib/nagios/ndomod.o # cp -a config/ndomod.cfg /etc/nagios # echo 'broker_module=/usr/lib/nagios/ndomod.o config_file=/etc/nagios/ndomod.cfg' > /etc/ndomod-load.cfg # cp src/ndo2db-3x /usr/sbin/ndo2db # cp -a config/ndo2db.cfg /etc/nagios
# sed -i 's:^socket_name=.*:socket_name=/var/log/nagios/ndo.sock:' /etc/nagios/ndo2db.cfg # sed -i 's:^ndo2db_user=.*:ndo2db_user=nagios:' /etc/nagios/ndo2db.cfg # sed -i 's:^db_user=.*:db_user=root:' /etc/nagios/ndo2db.cfg # sed -i 's:^db_pass=.*:db_pass=:' /etc/nagios/ndo2db.cfg # sed -i 's:^debug_file=.*:debug_file=/var/log/nagios/ndo2db.debug:' /etc/nagios/ndo2db.cfg # sed -i 's/^\(socket_type=unix.*\)$/#\1/' /etc/nagios/ndo2db.cfg # sed -i 's/^#\(socket_type=tcp.*\)$/\1/' /etc/nagios/ndo2db.cfg # sed -i 's/^#\(output_type=tcpsocket.*\)$/\1/' /etc/nagios/ndomod.cfg # sed -i 's/^\(output_type=unixsocket.*\)$/#\1/' /etc/nagios/ndomod.cfg # sed -i 's:^\(output=/usr/local/nagios/var/ndo.sock\):#\1:' /etc/nagios/ndomod.cfg # sed -i 's/^#\(output=127.0.0.1\)/\1/' /etc/nagios/ndomod.cfg # sed -i 's:^buffer_file=.*:buffer_file=/var/log/nagios/ndomod.tmp:' /etc/nagios/ndomod.cfg # update-rc.d ndo2db defaults # apt-get install mysql-server-5.0 (si mysql server non present) # /usr/bin/mysqladmin -u root create nagios # cd /var/ndo # perl installdb -u root -p "" -h localhost -d nagios
TODO
Voilà tout doit fonctionner maintenant, (re)-démarrer dans cet ordre les services suivants : Ndo, Nagios, Apache.
# /etc/init.d/ndo2db restart # /etc/init.d/nagios restart # /etc/init.d/apache2 restart
Lancer votre navigateur et aller sur l'adresse de votre machine par l'exemple : http://192.168.0.1/nagios/
Reste plus qu'à ajouter vos hosts à superviser.
Un peu d'optimisation: Lorsque Nagios commence à prendre du retard, c'est à dire que la latence moyenne augmente fortement dans la vue tactical overview c'est le fait que vous avez beaucoup d'indicateur à superviser. Essayer de changer les valeur suivantes selon votre configuration afin de décharger Nagios de certaines taches qui ne vous sont pas utiles, du fichier nagios.cfg
status_update_interval=15 use_syslog=0 log_service_retries=0 log_host_retries=0 log_event_handlers=0 log_external_commands=0 log_passive_checks=0 max_service_check_spread=15 service_inter_check_delay_method=s service_interleave_factor=s host_inter_check_delay_method=s max_host_check_spread=15 max_concurrent_checks=0 cached_host_check_horizon=60 cached_service_check_horizon=30 auto_reschedule_checks=0 use_aggressive_host_checking=0 check_service_freshness=0 check_host_freshness=0 enable_flap_detection=0 use_large_installation_tweaks=1