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)

¡Desata el Geek que llevas dentro!

Perfecto para regalar o para darte un capricho

Seguro que esto te interesa