Table of Contents
Configuración
Aquí describimos en más detalle la configuración de los modos mencionados modos de procesado de datos de rendimiento.
Modo Síncrono
El modo síncrono es la forma más fácil de integrar en nagios el recolector de datos process_perfdata.pl
. Cada evento dispara la ejecución de process-service-perfdata
.
Inicialmente hemos debido habilitar el procesado de los datos de rendimiento en nagios.cfg
. Tenga en cuenta que esta directiva ya estará presente en el fichero de configuración. El valor por defecto es “0”.
process_performance_data=1
El procesado de los datos debe ser deshabilitado en la definición de cada equipo o servicio para los que los datos de rendimiento NO deban ser procesados.
define service { ... process_perf_data 0 ... }
Desde la versión Nagios 3.x es posible desactivar la exportación de las variables de entorno (como parte de la optimización del sistema para obtener el máximo rendimiento). Deafortunadamente esta directiva debe estar habilitada para usar el modo síncrono. Por ello debe usar los valores por defecto (export está habilitado) o definir la variable en nagios.cfg
enable_environment_macros=1
Además, el comando para procesar los datos de rendimiento debe especificarse en nagios.cfg
service_perfdata_command=process-service-perfdata
A partir de Nagios 3.0 it puede ser útil habilitar el procesado de los datos de rendimiento de los equipos. Debido al cambio de lógica de las comprobaciones de los equipos en Nagios 3, ahora se ejecutan regularmente comprobaciones de equipos programadas.
host_perfdata_command=process-host-perfdata
Nagios debe ser notificado sobre los comandos referenciados. Si ha usado las guías de instalación rápida para Nagios, puede modificar las definiciones en commands.cfg. Se puede observar que la llamada a process_perfdata.pl no requiere de ningún argumento, aparte de especificar la opción -d ( DATATYPE ) si quiere procesar los datos de rendimiento resultantes de las comprobaciones de los equipos.
define command { command_name process-service-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl } define command { command_name process-host-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA }
Nota process_perfdata.pl
no puede ejecutarse bajo el control de ePN ( embedded Perl Nagios ). El script debe ser explícitamente llamado usando /usr/bin/perl
( o donde quiera que esté localizado su binario de perl ). Si usa Nagios 3.x o no usa ePN no hay necesidad de especificar /usr/bin/perl
.
Modo Masivo
El modo masivo es algo más complicado que el síncrono, pero reduce significativamente la carga en el servidor de nagios, debido a que el recolector de datos process_perfdata.pl
no es invocada en cada chequeo de servicio/equipo.
En el modo masivo, Nagios escribe los datos a un fichero temporal en un formato predefinido. Este fichero se procesa mediante process_perfdata.pl
a intervalos regulares. Nagios controla el arranque y ejecución periódica del recolector de datos.
Se debe habilitar el procesado de datos de rendimiento en nagios.cfg
process_performance_data=1
Además, otras directivas son necesarias
# # service performance data # 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 performance data starting with Nagios 3.0 # 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
Atención: ¡Tenga en cuenta que la definición de esta plantilla puede diferir de las suministradas en nagios.cfg
!
Las directivas y su significado:
service_perfdata_file
ruta al fichero temporal que debería alojar los datos de rendimiento.service_perfdata_file_template
formato del fichero temporal. Los datos se definen usando macros de Nagios.service_perfdata_file_mode
opción “a” especifica los datos que se van a añadir al fichero.service_perfdata_file_processing_interval
el intervalo es 15 segundosservice_perfdata_file_processing_command
el comando que se invocará en el intervalo.
Los comandos que se utilizan deben ser configurados en Nagios. Si ha usado las guías de instalación rápida de Nagios, puede modificar las definiciones en commands.cfg.
define command{ command_name process-service-perfdata-file command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata } define command{ command_name process-host-perfdata-file command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata }
<box 90%|NOTA:>
Debido a que hay más datos a procesar que en el modo síncrono process_perfdata.pl
tardará más en realizar su tarea, por lo que debería comprobar el valor de TIMEOUT en etc/process_perfdata.cfg
y ajustarlo adecuadamente.</box>
Modo Masivo con NPCD
La configuración es idéntica al modo masivo, excepto por el comanado usado.
Se debe habilitar el procesado de datos de rendimiento en nagios.cfg
process_performance_data=1
Además, otras directivas son necesarias
# # service performance data # 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 performance data starting with Nagios 3.0 # 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
Atención: ¡Tenga en cuenta que la definición de esta plantilla puede diferir de las suministradas en nagios.cfg
!
Las directivas y su significado:
service_perfdata_file
ruta al fichero temporal que debería alojar los datos de rendimiento.service_perfdata_file_template
formato del fichero temporal. Los datos se definen usando macros de Nagios.service_perfdata_file_mode
opción “a” especifica los datos que se van a añadir al fichero.service_perfdata_file_processing_interval
el intervalo es 15 segundosservice_perfdata_file_processing_command
el comando que se invocará en el intervalo.
Los comandos que se utilizan deben ser configurados en Nagios. Si ha usado las guías de instalación rápida de Nagios, puede modificar las definiciones en 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$ }
Al usar estos comandos, el fichero service-perfdata, es movido a var/spool/ depués del intervalo especificado en service_perfdata_file_processing_interval
. La macro de Nagios $TIMET$ se añade al nombre del fichero para evitar la sobreescritura accidental de ficheros anteriores. La macro $TIMET$ contiene el timestamp actual en formaro time_t (segundos desde la época UNIX).
En el directorio /usr/local/pnp4nagios/var/spool/ los ficheros son recuperados y procesados por NPCD.
NPCD monitoriza el directorio spool y le pasa los nombres de fichero a process_perfdata.pl
. De esta forma el procesado de los datos de rendimiento está totalmente desacoplado de Nagios.
Antes de iniciar NPCD debe comprobar las rutas al directorio de spool y a process_perfdata.pl
en el fichero de configuración npcd.cfg
.
Lo único que queda es iniciar NPCD.
/usr/local/pnp4nagios/bin/npcd -d -f /usr/local/pnp4nagios/etc/npcd.cfg
La opción -d
inicia NPCD como un demonio en segundo plano.