Instalando Nagios Core 4: Integrando pnp4nagios a nuestra instalación

En la entrada anterior instalamos en nuestro equipo con Debian 9 la última versión de Nagios Core, en esta ocasión, le agregaremos dos funcionalidades, la habilidad de graficar los datos de perfomance y poder armar pantallas con los monitoreos que configuremos, para esto integraremos a nuestro sistema, pnp4nagios (proyecto)

Instalando pnp4nagios

Al igual que hicimos con Nagios, instalaremos esta aplicación compilando de sus fuentes la ultima versión disponible en este momento, la 0.6.26.

Comenzaremos instalando algunas dependencias

apt-get install rrdtool librrds-perl php-xml

A continuación, nos moveremos a la carpeta temporal que creamos en nuestro home y descargaremos la fuente

cd ~/tmp
wget -O pnp4nagios-0.6.26.tar.gz https://sourceforge.net/projects/pnp4nagios/files/latest

Descomprimiremos el paquete, nos moveremos a la carpeta extraída y modificaremos algunos parámetros por defecto para que coincidan con nuestra instalación (modificaremos la ruta de instalación para que quede dentro de /etc y la ruta a la carpeta de configuración de Apache).

tar zxvf pnp4nagios-0.6.26.tar.gz
cd pnp4nagios-0.6.26

./configure --prefix=/etc/pnp4nagios --with-httpd-conf=/etc/apache2/sites-enabled

Compilaremos e instalaremos la aplicación, utilizando el modificador fullinstall, instalaremos también los scripts de inicio y la configuración necesaria para el WS

make all
make fullinstall

Haremos un par de modificaciones necesarias a la configuracion de Nagios

sed -i '/process_performance_data/ s/0/1/' /etc/nagios/etc/nagios.cfg
sed -i '/enable_environment_macros/ s/0/1/' /etc/nagios/etc/nagios.cfg

Agregaremos el archivo de usuarios a la configuracion de apache para pnp4nagios

sed -i '/AuthUserFile/ s/\/usr\/local\/nagios\/etc\/htpasswd.users/\/etc\/nagios\/etc\/htpasswd.users/' /etc/apache2/sites-enabled/pnp4nagios.conf

Activaremos el demonio que recolecta los datos al inicio del sistema operativo

update-rc.d npcd defaults

Y reiniciaremos apache, nagios y el demonio de pnp4nagios

service apache2 restart && service nagios restart && service npcd restar

Verificaremos la instalación accediendo a http://IP_SERVER/pnp4nagios. Al acceder veremos un resumen de los requerimientos y el estado de los mismos, en caso de estar todo bien, veremos una imagen como la siguiente:
Y haremos como dice el mensaje, eliminaremos el archivo install.php de la ruta indicada

rm /etc/pnp4nagios/share/install.php

Casi terminamos, nos falta hacer que nagios empiece a enviar datos para que pnp4nagios los procese, los grafique y nos los muestre.

echo "# 
# Bulk / NPCD mode 
# 

# *** the template definition differs from the one in the original nagios.cfg 
# 
service_perfdata_file=/etc/pnp4nagios/var/service-perfdata 
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::\$TIMET\$\tHOSTNAME::\$HOSTNAME\$\tSERVICEDESC::\$SERVICEDESC\$\tSERVICEPERFDATA::\$SERVICEPERFDATA\$\tSERVICECHECKCOMMAND::\$SERVICECHECKCOMMAND\$\tHOSTSTATE::\$HOSTSTATE\$\tHOSTSTATETYPE::\$HOSTSTATETYPE\$\tSERVICESTATE::\$SERVICESTATE\$\tSERVICESTATETYPE::\$SERVICESTATETYPE\$ 
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

# *** the template definition differs from the one in the original nagios.cfg
#
host_perfdata_file=/etc/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::\$TIMET\$\tHOSTNAME::\$HOSTNAME\$\tHOSTPERFDATA::\$HOSTPERFDATA\$\tHOSTCHECKCOMMAND::\$HOSTCHECKCOMMAND\$\tHOSTSTATE::\$HOSTSTATE\$\tHOSTSTATETYPE::\$HOSTSTATETYPE\$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file " >> /etc/nagios/etc/nagios.cfg

Creamos los comandos necesarios para la recoleccion

echo "
#
# Bulk with NPCD mode
#
define command {
       command_name    process-service-perfdata-file
       command_line    /bin/mv /etc/pnp4nagios/var/service-perfdata /etc/pnp4nagios/var/spool/service-perfdata.\$TIMET\$
}

define command {
       command_name    process-host-perfdata-file
       command_line    /bin/mv /etc/pnp4nagios/var/host-perfdata /etc/pnp4nagios/var/spool/host-perfdata.\$TIMET\$
}" >> /etc/nagios/etc/objects/commands.cfg

Definimos los templates para cargarle a los hosts/servicios que queramos graficar

echo "
define host {
 name host-pnp
 action_url /pnp4nagios/index.php/graph?host=\$HOSTNAME\$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=\$HOSTNAME\$&srv=_HOST_
 register 0
}
define service {
 name srv-pnp
 action_url /pnp4nagios/index.php/graph?host=\$HOSTNAME\$&srv=\$SERVICEDESC\$' class='tips' rel='/pnp4nagios/index.php/popup?host=\$HOSTNAME\$&srv=\$SERVICEDESC\$
 register 0
}" >> /etc/nagios/etc/objects/templates.cfg

Y por ultimo, habilitamos la ventana flotante para no tener que entrar a la url de pnp4nagios para ver la grafica y poder ver una miniatura en la pantalla principal

cp ~/tmp/pnp4nagios-0.6.26/contrib/ssi/status-header.ssi /etc/nagios/share/ssi/

Solo nos queda cargar en algun servicio los templates que creamos anteriormente, como ejemplo, modificaremos los checkeos definidos para localhost. Para esto, editaremos el archivo /etc/nagios/etc/objects/localhost.cfg, agregando en el parametro use de cada servicio, el template srv-pnp y en la del host host-pnp. El siguiente codigo lo hara por nosotros.

sed -i '/use/ s/linux-server/linux-server,host-pnp/' /etc/nagios/etc/objects/localhost.cfg
sed -i '/use/ s/local-service/local-service,srv-pnp/' /etc/nagios/etc/objects/localhost.cfg

Reiniciaremos todo por ultima vez

service apache2 restart && service nagios restart && service npcd restart

Y si le damos un par de minutos para recolectar, empezaremos a ver nuestras gráficas se comienzan a poblar. Colocando el cursor sobre el nuevo icono que veremos, tendremos una miniatura y haciendo click, veremos los datos completos para el servicio/host. Tendremos las graficas de las ultimas 4 horas, último día, semana, mes y una anualizada.

Deja un comentario