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

RECOMENDADO DE HOY

4 Comentarios

  1. Hola buena tarde Antes que nada muchas gracias por esta guia, solicito de su apoyo sigo todos los paso mencionados pero no logro corregir el error. Si me pueden ayudar gracias.

Deja un comentario