Es muy útil disponer de un visor gráfico para nuestro nagios. PNP4Nagios nos aporta de forma fácil y automática una gráfica de cada uno de los checks que tenemos en nuestro nagios además de permitirnos poder acceder a esta base de datos que genera mediante Grafana, para así poder crearnos nuestros dashboard personalizados.
Instalación de PNP4Nagios
Instalar las dependencias de PNP4Nagios
yum install rrdtool perl-Time-HiRes rrdtool-perl php-gd -y
Descargar PNP4Nagios
wget https://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.26.tar.gz
Descomprimimos y desempaquetamos PNP4Nagios
tar -xzvf pnp4nagios-0.6.26.tar.gz
Nos dirigimos al directorio y configuramos
cd pnp4nagios-0.6.26 ./configure
Ahora habra preparado todo lo que necesita para poder compilar y hacer funcionar PNP4Nagios. En el cuadro de mensaje que nos aparece las diferentes ubicaciones donde estara el programa y los diferentes archivos. Para continuar escribiremos:
make all
Y una vez haya acabado:
make fullinstall
Ahora habilitamos el servicio npcd que es el que gestiona los gráficos.
chkconfig --add npcd && chkconfig --level 35 npcd on
Reiniciamos apache
systemctl restart httpd
Ahora podemos verificar que toda la configuracion se ha realizado correctamente. Nos dirigimos a la direccion del servidor http://direcciondelservidor/pnp4nagios. Nos abrirá una página donde todos los apartados deben estar en verde.
Por último paso en la ventana de verificación nos indica que debemos de eliminar el archivo install.php. Para ello lo que vamos a hacer en cambiarle el nombre en lugar de eliminarlo:
mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.backup
Vincular PNP4Nagios a Nagios
Agregar al final del archivo /usr/local/nagios/etc/nagios.cfg
process_performance_data=1 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 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
Agregar al final del archivo /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$ }
Agregar al final del archivo /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 }
Ahora para que aparezca en todos los checks solo necesitamos agregar en generic-service y a generic-host el nombre que corresponda (srv-pnp o bien host-pnp)
⬇️¡Sigue, comenta y comparte! ⬇️