Parametrización del plugin El plugin se utiliza previa configuración del fichero externo de configuración. NOTA: Es extremadamente importante tener en cuenta que los archivos de configuración pensados para el plugin en UNIX deben estar editados y almacenados con retornos de carro tipo “UNIX” y que si se usan retornos de carro tipo “WINDOWS” el plugin no funcionará adecuadamente. Existen tres bloques funcionales dentro del fichero de configuración: Configuración de acceso a MySQL y datos generales Para que el plugin monitorice la base de datos hay que proporcionarle las credenciales de acceso y algunos datos generales que luego se usarán en las comprobaciones: Usuario, password y host de MySQL Las credenciales de acceso se completarán de la siguiente forma: conf_mysql_user mysql conf_mysql_pass 1234 conf_mysql_host 127.0.0.1 Existe la posibilidad de que tengamos la contraseña en blanco del usuario mysql. En este caso habria que comentar la linea ( # conf_mysql_pass) Datos generales Aquí se especificarán el directorio home de MySQL (generalmente /var/lib/mysql), el fichero de log, un directorio para ficheros temporales y la ruta completa al plugin de parseo de logs de Pandora: conf_mysql_homedir /var/lib/mysql conf_mysql_basedir /var/lib/mysql conf_mysql_logfile /var/log/mysql.log conf_temp /tmp conf_logparser /etc/pandora/plugins/grep_log Parámetros de sistema A continuación se describen los módulos de comprobación específicos del sistema que se encuentran configurados por defecto en el mysql.conf adjunto: Bloque de chequeo de sistema Un bloque de chequeo de sistema en el fichero de configuración es como se muestra a continuación: check_begin # Linea de comentario. check_end A continuación se describen los chequeos del plugin: Verificación del conectividad con la base de datos Mediante este chequeo se comprobará si la base de datos tiene conectividad con otros elementos software. Si este chequeo no es satisfactorio se abortará la monitorización: check_begin check_mysql_service check_end Chequear si el proceso de mysql está activo Este chequeo comprueba que el proceso de MySQL este activo en el sistema: check_begin check_mysql_service check_end Chequeo de memoria del servidor (proceso) Mediante este chequeo se comprueba el uso de memoria por el servidor MySQL. check_begin check_mysql_memory check_end Número de conexiones TIME_WAIT en el sistema Muestra el número de conexiones en estado TIME_WAIT en el sistema: check_begin check_system_timewait check_end Chequeo de espacio en disco del servidor Chequea el espacio es disco (en KB) por parte de la base de datos. Se comprobará el tamaño del directorio MySQL homedir especificado en el apartado de Datos generales: check_begin check_system_diskusage check_end Tamaño del fichero ibdata1 Chequea el tamaño (en KB) del fichero ibdata1 que se encuentra en el directorio MySQL homedir: check_begin check_mysql_ibdata1 check_end Búsqueda de errores en los logs de error de la base de datos Buscará la cadena “ERROR” en el fichero de log indicado en la sección de Datos generales. Este modulo siempre devolverá el tipo de dato async_string y en caso de que la comprobación devuelva datos se ejecutará el comando asociado (explicado en la sección Ejecución de comandos bajo condición): check_begin check_mysql_logs check_end Parámetros de rendimiento A continuación se describen los módulos de comprobación de rendimiento: Bloque de chequeo de rendimiento Similares a los de chequeos de sistema como se muestra a continuación: check_begin # Linea de comentario. check_end A continuación se muestran los bloques de chequeo de rendimiento: Número de conexiones activas MySQL Devuelve el número de conexiones activas en la base de datos: check_begin mysql_status Full processlist check_end  Número de conexiones abortadas por que el cliente no cerró correctamente la conexión . check_begin mysql_status Aborted_connects check_end  Número de bytes recibidos por los clientes check_begin mysql_status Bytes_received check_end  Número de bytes enviados por los clientes check_begin mysql_status Bytes_sent check_end Información de estado del servidor (SHOW GLOBAL STATUS ó SHOW STATUS ) Estas consultas se basan en el comando SHOW GLOBAL STATUS de MySQL. Dentro de los datos devueltos por este comando se podrá realizar la búsqueda de algún token y de su valor asociado: check_begin mysql_status check_end Información de estado de InnoDB (SHOW INNODB STATUS) Estas consultas se basan en el comando SHOW INNODB STATUS de MySQL. Dentro de los datos devueltos por este comando se podrá realizar la búsqueda de algún token y de su valor asociado: check_begin mysql_status Com_insert check_end Número de inserciones en la base de datos Número de transacciones de tipo INSERT hechas en la base de datos:   check_begin check_name mysql_innodb check_end Número de bloqueos sobre tablas en la base de datos al realizar una transacción check_begin mysql_status Com_lock_tables check_end Bloqueos activos sobre tablas y registros por cada sesión activa   check_begin # Number of locks over DB tables mysql_status Table_locks_waited check_end check_begin # Number of row locks mysql_status Innodb_row_lock_waits check_end Peticiones de I/0 pendientes check_begin mysql_status Pending_io check_end Tamaño total de datos en GB   check_begin mysql_status Total_size check_end Monitorización vía SQL Una de las características mas potentes del plugin es la posibilidad de especificar su propia orden SQL para obtener el valor. Veamos algún ejemplo: check_begin check_name num_tables check_schema information_schema check_sql SELECT COUNT(*) FROM tables check_end Check_name El nombre de la comprbación que se verá en la interfaz de Pandora. . Check_sql La query que deberá devolver un dato simple (ya sea número o cadena).. Check_schema El esquema de MySQL al que se conectará el plugin para realizar la query Ejecución de comandos bajo condición En todos los módulos se podrá especificar la ejecución de un comando si se cumple una condición. Dichas condiciones podrán ser: • == (igual a un valor) • != (Diferente de un valor) • < (menor de un valor dado) • > (Mayor de un valor dado). Si la condición se satisface entonces se ejecutará el comando configurado mediante el token post_execution. En el caso del chequeo check_mysql_logs se ejecutará el comando si devuelve algún dato esta comprobación. Un ejemplo de esta configuración es la siguiente: check_begin check_mysql_cpu post_condition > 95 post_execution snmptrap -v 1 -c public x.x.x.x 1.2.4.4.65.6.4.3 6 128 check_end Parametrización del comando asociado a un chequeo Como se comentó anteriormente en cada comprobación se puede configurar un comando a ejecutar si la condición se cumple. Además, se puede utilizar un token en el comando para que si este se ejecuta entonces se sustituya por el valor del chequeo. Por ejemplo, por medio de la macro _DATA_ en este ejemplo se guarda en el fichero /tmp/mysql_cpu_result el contenido del chequeo: check_begin check_mysql_cpu post_condition > 95 post_execution echo _DATA_ >> /tmp/mysql_cpu_result check_end Estado del módulo Complementariamente, los módulos devolverán un estado si se indica con el token de configuración: post_status WARNING O bien: post_status CRITICAL Tipo de dato Por defecto todos los monitores devolverán generic_data, salvo que se indique el siguiente token de configuración. module_type generic_data_inc module_type async_string (o cualquier otro válido) La única excepción es el monitor check_mysql_service automáticamente un módulo de tipo generic_proc. * En los módulos en los que usemos check_name, se puede usar check_type para elegir el tipo de dato del módulo. Tratamiento de datos en comprobaciones de tipo de rendimiento En comprobaciones de tipo de rendimiento y queries SQL se puede configurar para que se devuelva el valor absoluto tal cual lo devuelve MySQL (data_absolute) o la diferencia entre el dato actual y el anterior (data_delta). En la primera ejecución de la comprobación configurada con data_delta no se devolverá dato alguno. A partir de la segunda ejecución se devolverá el incremento. Si se diera el caso que la diferencia entre el dato actual y el anterior fuera negativa, el valor de la comprobación se resetearia y la comprobación no devolverá dato alguno. Por defecto las comprobaciones de tipo de rendimiento serán configuradas como data_absolute. Por ejemplo esta comprobación devolverá el incremento de las sesiones activas en MySQL: check_begin mysql_status Full processlist data_delta check_end