Implementación Técnica de Nagios

Instalación de Nagios

Dependencias para compilación y puesta en marcha

Sistema Operativo	Debian GNU/Linux
Compilador	GNU GCC
Utilidades de comunicación Notificaciones	MTA SMS
Interfaz de usuario (Opcional)	Servidor Web

Dependencias de Software

Para una correcta instalación de Nagios, con todas sus características es necesario tener instalados ciertos paquetes de software en el sistema, la instalación puede variar según la distribución de Linux que elijamos, si los tenemos empaquetados, o si los tenemos que compilar en instalar manualmente.

Paquete	Descripción	Sitio web
Perl	Interprete para el lenguaje de script Perl	http://www.perl.org
Net::SNMP	Modulo de Perl para consultas SNMP	http://search.cpan.org/dist/Net-SNMP
Crypt::DES	Modulo de Perl para encripción DES, necesario para consultas SNMPv3	http://search.cpan.org/~dparis/Crypt-DES/
Digest::HMAC	Keyed-Hashing for Message Authentication	http://search.cpan.org/dist/Digest-HMAC/
Digest::SHA1	Perl interface to the SHA-1 algorithm	http://search.cpan.org/dist/Digest-SHA1/
RRDTool	Utilitario para generación de gráficas de red y además su módulo de integración con el lenguaje Perl	http://oss.oetiker.ch/rrdtool
Zlib	Librería de compresión utilizada por las utilidades graficas	http://www.gzip.org/zlib/
LibJPEG	Librería para exportación jpg	http://www.ijg.org/
LibPNG	Librería para exportación png	http://www.libpng.org/pub/png/
Freetype2	Librería para procesamiento de fuentes	http://www.freetype.org/
Graphviz	Utilitario para generación de graficas	http://www.graphviz.org/
XFree86-libs	Librerías gráficas generales	http://koala.ilog.fr/lehors/xpm.html
Apache 2	Servidor Web	http://httpd.apache.org/
PHP	Interprete de lenguaje de script	http://www.php.net
MySQL	Sistema de base de datos	http://www.mysql.com
Postfix	SMTP para enviar mail	http://www.postfix.org/
GD	Librería para generación de formatos graficos	http://www.libgd.org/
Nagvis	Aditivo para la generación de diagramas dinamicos	http://www.nagvis.org/
PNP4Nagios	Aditivo para la generación de gráficos estadísticos y reportes visuales	http://www.pnp4nagios.org/
NDO	Agregado para articular Nagios con MySQL	http://www.nagios.org
Plugins	Plugins de chequeo standard de Nagios	http://www.nagios.org
SNMP Plugins	Plugins para la integración de chequeos SNMP de Nagios	http://nagios.manubulon.com/
Nagios	Sitio de descarga oficial	http://www.nagios.org
NagiosQL	Herramienta visual de configuración de Nagios via Web	http://www.nagiosql.org/
Dokuwiki	Herramienta de documentación colaborativa	http://www.dokuwiki.org/
Syslog-Ng	Logueo de eventos del sistema	http://www.balabit.com/network-security/syslog-ng/
SNARE	Agente Syslog para clientes Windows	http://www.intersectalliance.com/projects/index.html
MK Livestatus	Aditivo para obtener los datos de Nagios en Vivo via Socket (muy útil para abandonar NDO)	http://mathias-kettner.de/checkmk_livestatus.html
Gnokii	Aplicación de interfaz para celulares y modems 3G, para la realización de llamadas y alertas SMS	http://gnokii.org
Thruk	Interfaz alternativa para Nagios, con muchas funciones extras, basado en MK Livestatus	www.thruk.org
Interfacetable_v3t	Plugin para detectar y chequear las interfaces de un Router	http://www.tontonitch.com/
Check TSM	Plugin para hacer chequeos generales en Tivoli TSM	https://github.com/osklil/nagios-misc
Check Iostat	Estadisticas y alertas en base a los datos de iostat	http://sysengineers.wordpress.com/2010/05/27/check_iostat-pl-version-0-9-7/
Cliente Oracle Basic SQL*Plus	Cliente de Oracle para realizar los chequeos	http://www.oracle.com/technetwork/database/features/instant-client/
Eventdb	Integración de chequeos de Syslog	https://www.netways.org/projects/eventdb
Highchart for Nagios	Gráficos de PNP4Nagios en AJAX	http://sourceforge.net/projects/highchartfornag/

Tareas

Descarga y compilación

En este apartado nos concentraremos en la descarga y compilación de los diferentes paquetes bajados en formato de código fuente.

Para empezar deberemos descargar el código fuente del software Nagios desde su sitio web, en formato tar.gz

Para ello descomprimiremos el paquete descargado y luego procederemos a compilarlo.

Luego ejecutaremos el script configure, lo que hacer dicho script, es generar el ambiente propicio para poder ejecutar el proceso de compilación, ayudados por medio de la utilidad make.

Ejemplo de salida de ejecución del script configure :

General Options:
-------------------------
Nagios executable: nagios
Nagios user/group: nagios,nagios
Command user/group: nagios,nagios
Event Broker: yes
Install ${prefix}: /usr/local/nagios
Install ${includedir}: /usr/local/nagios/include/nagios
Lock file: ${prefix}/var/nagios.lock
Check result directory: ${prefix}/var/spool/checkresults
Init directory: /etc/init.d
Apache conf.d directory: /etc/apache2/conf.d
Mail program: /bin/mail
Host OS: linux-gnu
IOBroker Method: epoll
Web Interface Options:
------------------------
HTML URL: http://localhost/nagios/
CGI URL: http://localhost/nagios/cgi-bin/
Traceroute (used by WAP): /usr/sbin/traceroute
Review the options above for accuracy. If they look okay,
type 'make all' to compile the main program and CGIs.

Instalación de Nagios orientada a la distribución

Es útil pensar en utilizar varios paquetes de plugins disponibles en la distribución para poder facilitar el proceso de actualizaciones, igualmente es recomendable los componentes base de Nagios compilarlos y dejar separados los plugins personalizados para poder dejarlos independientes de las actualizaciones que apliquemos a los paquetes de la distribución.

Caso concreto

Sistema Operativo	Debian 8.1
Version de Nagios	4.1.1

Desinstalar paquetes o cosas innecesarias del paquete base de debian netinst e instalar el compilador GCC, realizar pruebas con el FLAG O3 al momento de la compilación.

General Options:
-------------------------
Nagios executable: nagios
Nagios user/group: nagios,nagios
Command user/group: nagios,nagios
Event Broker: yes
Install ${prefix}: /usr/local/nagios
Install ${includedir}: /usr/local/nagios/include/nagios
Lock file: ${prefix}/var/nagios.lock
Check result directory: ${prefix}/var/spool/checkresults
Init directory: /etc/init.d
Apache conf.d directory: /etc/httpd/conf.d
Mail program: /bin/mail
Host OS: linux-gnu
IOBroker Method: epoll
Web Interface Options:
------------------------
HTML URL: http://localhost/nagios/
CGI URL: http://localhost/nagios/cgi-bin/
Traceroute (used by WAP): /usr/sbin/traceroute

make install-base

cd ./base && make install
make[1]: Entering directory '/root/nagios-4.1.0rc1/base'
make install-basic
make[2]: Entering directory '/root/nagios-4.1.0rc1/base'
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/bin
/usr/bin/install -c -m 774 -o nagios -g nagios nagios /usr/local/nagios/bin
/usr/bin/install -c -m 774 -o nagios -g nagios nagiostats /usr/local/nagios/bin
make[2]: Leaving directory '/root/nagios-4.1.0rc1/base'
make strip-post-install
make[2]: Entering directory '/root/nagios-4.1.0rc1/base'
/usr/bin/strip /usr/local/nagios/bin/nagios
/usr/bin/strip /usr/local/nagios/bin/nagiostats
make[2]: Leaving directory '/root/nagios-4.1.0rc1/base'
make[1]: Leaving directory '/root/nagios-4.1.0rc1/base'

make install-init

/usr/bin/install -c -m 755 -d -o root -g root /etc/init.d
/usr/bin/install -c -m 755 -o root -g root daemon-init /etc/init.d/nagios
*** Init script installed ***

make install-commandmode

/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
*** External command directory configured ***

Paquetes debian de plugins a instalar junto con sus dependencias :

monitoring-plugins-basic

monitoring-plugins-common

monitoring-plugins-standard

nagios-plugins-contrib

nagios-snmp-plugins

nagios-nrpe-plugin

nagios-plugin-check-multi

python-nagiosplugin

python3-nagiosplugin

libnagios-plugin-perl

Paquetes extra para la administración del sistema :

htop

bmon

tcpdump

strace

tcptrack

ltrace

Paquetes extra para agregados de Nagios :

rrdtool,librrds-perl

Cliente oracle

oracle-instantclient-basic_10.2.0.5-2_amd64.deb

oracle-instantclient-sqlplus_10.2.0.5-2_amd64.deb

php5-cli

php5-curl php5-gd

ntpstat

ntpdate

nmap

xmlstarlet

libmail-sendmail-perl

php5-snmp

Nótese que no se realizó la instalación del servidor Web, lo máximo a dejar en el mismo servidor de Nagios es un MTA para notificaciones, por ejemplo postfix. Ya que el uso de un servidor Web dentro de la misma instalación de Nagios, dependiendo de su tamaño, puede afectar en seria forma a la performance del servidor.