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
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.
Hola Miguel, los testeos te dan todos en verde?
Hola Jorge. Muy buena tu explicación, fué muy fácil hacerlo funcionar. Gracias !!
Excelente Carlos, felicitaciones el logro fue tuyo, solo te di una guía. Saludo