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