PNP4Nagios es un complemento para Nagios que analiza los datos de rendimiento obtenidos por los plugins y los almacena automáticamente en bases de datos RDD (Round Robin Databases, ver RRD Tool). En el desarrollo de PNP hemos valorado que tuviera una fácil instalación y un mínimo mantenimiento mientras está en producción.

1- Dependencias necesarias

# yum install rrdtool perl-Time-HiRes rrdtool-perl php-gd

2- Descarga e instalación

# cd /opt

# wget https://sourceforge.net/projects/pnp4nagios/files/latest/download/pnp4nagios-0.6.26.tar

# tar zxfv pnp4nagios-0.6.26.tar
# cd pnp4nagios-0.6.26
# ./configure
# make all
# make fullinstall

4- Configuración para que inicie solo cuando reinicia el server.

# chkconfig --add npcd && chkconfig --level 35 npcd on
# systemctl reload httpd.service

Si accedemos al interface de pnp4nagios: http://nuestra_ip/pnp4nagios/ deberíamos ver todos los chequeos que realiza en verde.

5- Quitamos el archivo install.php
Al hacer esto si refrescamos la imagen nos dará error, pero ahora lo arreglamos.

# mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.ORI

6- Sigue al pie de la letra estos pasos
Acá hay que copiar y pegar varias cosas. Empezaremos por el archivo de configuración principal nagios.cfg, donde verificamos que el parámetro “process_performance_data” sea igual a 1.

# nano /usr/local/nagios/etc/nagios.cfg
process_performance_data=1

Después copiamos esto al final

#
# Bulk / NPCD mode
#
# *** the template definition differs from the one in the original nagios.cfg
#
service_perfdata_file=/usr/local/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=/usr/local/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

Guardamos y a continuación añadimos los comandos necesarios.

# nano /usr/local/nagios/etc/objects/commands.cfg

define command {
command_name process-service-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}
define command {
command_name process-host-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}

Y para finalizar vamos a crear un par de plantillas. Estas plantillas simplemente nos activan el “action_url” para que tengamos un enlace directo a PNP4Nagios.

# nano /usr/local/nagios/etc/objects/templates.cfg

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
}

Modificamos nuestros objetos Host / Servicios para que hereden dicha plantilla. Noten que agregue solamente una ,host-pnp y ,srv-pnp que creamos anteriormente

define host{
 use linux-server,host-pnp
 host_name localhost
 alias localhost
 address 127.0.0.1
 }
define service{
 use local-service,srv-pnp
 host_name localhost
 service_description PING
 check_command check_ping!100.0,20%!500.0,60%
 }

Reiniciamos los servicios para que tome el cambio.

# service npcd restart && service nagios restart

Ahora podemos ingresar por el navegador a http://ip_del_server/pnp4nagios pero la idea es poder ingresar desde el mismo nagios.

7- Copiar lo siguiente:
Copiamos esta carpeta, lo que hace es que al pasar el mouse sobre el icono de “action_url” podremos ver una miniatura de la gráfica.

# cp /opt/pnp4nagios-0.6.26/contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/

Reiniciamos los servicios

# service npcd restart && service nagios restart

Deja un comentario