Para aquellos que disfrutan del maravilloso mundo de Nagios quizas se han encontrado con el problema de instalar NDOUtils y no ver que los datos se graben en la base de datos.

Luego de revisar y no entender por qué los datos no estaban quedando almacenados en la tabla nagios_servicechecks, revisé que el servicio se estuviera ejecutando y la base de datos de mysql tuviera conectividad. Al descartar estas dos posibilidades y no lograr que los datos quedarán registrados entre a revisar en detalle el archivo de configuración /usr/local/nagios/etc/ndomod.cfg y lo que me encontre fue lo siguiente:

# DATA PROCESSING OPTION
# This option determines what data the NDO NEB module will process.
# Do not mess with this option unless you know what you’re doing!!!!
# Read the source code (include/ndbxtmod.h) to determine what values
# to use here.  Values from source code should be OR’ed to get the
# value to use here.  A value of -1 will cause all data to be processed.
# Read the source code (include/ndomod.h) and look for “NDOMOD_PROCESS_”
# to determine what values to use here.  Values from source code should
# be OR’ed to get the value to use here.  A value of -1 will cause all
# data to be processed.

#no timed event, no host check, no service check
data_processing_options=67108669

Después de leerlo me quedo claro que el valor de la opción data_processing_options no iba a permitir que se poblará la tabla nagios_servicechecks. Cambien el valor a -1 y luego de reiniciar el servicio ¡voila! lo datos comenzaron a quedar registrados.

Sin embargo, sentí mucha curiosidad sobre el valor anterior 67108669 y me di a la tarea de buscar el archivo ndomod.h con el fin de entender la razon de este y cualquier otro valor.

Al revisarlo encontré los siguientes valores:

#define NDOMOD_PROCESS_PROCESS_DATA 1
#define NDOMOD_PROCESS_TIMED_EVENT_DATA 2
#define NDOMOD_PROCESS_LOG_DATA 4
#define NDOMOD_PROCESS_SYSTEM_COMMAND_DATA 8
#define NDOMOD_PROCESS_EVENT_HANDLER_DATA 16
#define NDOMOD_PROCESS_NOTIFICATION_DATA 32
#define NDOMOD_PROCESS_SERVICE_CHECK_DATA 64
#define NDOMOD_PROCESS_HOST_CHECK_DATA 128
#define NDOMOD_PROCESS_COMMENT_DATA 256
#define NDOMOD_PROCESS_DOWNTIME_DATA 512
#define NDOMOD_PROCESS_FLAPPING_DATA 1024
#define NDOMOD_PROCESS_PROGRAM_STATUS_DATA 2048
#define NDOMOD_PROCESS_HOST_STATUS_DATA 4096
#define NDOMOD_PROCESS_SERVICE_STATUS_DATA 8192
#define NDOMOD_PROCESS_ADAPTIVE_PROGRAM_DATA 16384
#define NDOMOD_PROCESS_ADAPTIVE_HOST_DATA 32768
#define NDOMOD_PROCESS_ADAPTIVE_SERVICE_DATA 65536
#define NDOMOD_PROCESS_EXTERNAL_COMMAND_DATA 131072
#define NDOMOD_PROCESS_OBJECT_CONFIG_DATA 262144
#define NDOMOD_PROCESS_MAIN_CONFIG_DATA 524288
#define NDOMOD_PROCESS_AGGREGATED_STATUS_DATA 1048576
#define NDOMOD_PROCESS_RETENTION_DATA 2097152
#define NDOMOD_PROCESS_ACKNOWLEDGEMENT_DATA 4194304
#define NDOMOD_PROCESS_STATECHANGE_DATA 8388608
#define NDOMOD_PROCESS_CONTACT_STATUS_DATA 16777216
#define NDOMOD_PROCESS_ADAPTIVE_CONTACT_DATA 33554432

#define NDOMOD_PROCESS_EVERYTHING 67108863

Fue evidente que se trata de un bitmap al convertir el número en binario el resultado es 11111111111111111100111101, donde se ve que el segundo, septimo y octavo bits estan apagados indicando que las opciones  NDOMOD_PROCESS_TIMED_EVENT_DATA, NDOMOD_PROCESS_SERVICE_CHECK_DATA y NDOMOD_PROCESS_HOST_CHECK_DATA estaban deshabilitadas, tal como lo indicaban los comentarios en el archivo de configuración.

En la URL http://www.rlogix.com/node/38 encontrarán una calculadora que permite calcular con base en las opciones seleccionadas el valor apropiado para data_processing_options.

Si te es útil esta información no olvides dejar tus comentarios.