Bienvenido a la comunidad de Pandora FMS › Forums › Soporte de la comunidad › [CLOSED] monitorizar servicio en unix
-
[CLOSED] monitorizar servicio en unix
Posted by cabardesp on mayo 9, 2011 at 20:18estoy intentando monitorizar el servicio mysql en un servidor SLES11.
he definido el siguiente modulo :module_begin
module_name servicio_mysql
module_type generic_proc
module_service mysqld
module_description Comprueba si el servicio de Mysql esta activado
module_endEl modulo me devuelve siempre el valor 0, independientemente de si el servicio esta arrancado o no.
Los procesos en ejecucion son;
# ps -ef|grep mysql
root    2931   1  0 17:48 pts/0   00:00:00 /bin/sh /usr/bin/mysqld_safe –mysqld=mysqld –user=mysql –pid-file=/var/lib/mysql/mysqld.pid –socket=/var/lib/mysql/mysql.sock –datadir=/var/lib/mysql
mysql   2971  2931  0 17:48 pts/0   00:00:00 /usr/sbin/mysqld –basedir=/usr –datadir=/var/lib/mysql –user=mysql –pid-file=/var/lib/mysql/mysqld.pid –skip-external-locking –port=3306 –socket=/var/lib/mysql/mysql.sockHe intentado poner
module_type generic_data
y
module_service /usr/sbin/mysqld
y con module_procSigue devolviendo como valor 0.
Alguien me puede decir que estoy haciendo mal.
Muchas graciastpalacios replied 13 years, 9 months ago 2 Members · 5 Replies -
5 Replies
-
::
Hola cabardesp,
Peculiar problema el tuyo. Vayamos por partes:
Es cierto que poniendo únicamente el nombre del servicio no funciona… comprobado está…
El module service ejecuta esto:
ps aux | awk 'NR > 1 {ps = ""; for (i = 11; i <= NF; ++i) {ps = (ps " " $i) }; print $3, $6, ps}'
Si a este comando le añades un | grep mysqld, verás que lo que saca es la ruta absoluta del servicio, y he visto que a eso también has llegado.
Lo peculiar es que mientras que yo he añadido la ruta absoluta después de module_service al reproducir tu caso y me ha funcionado… a ti te sigue fallando.
Esto es lo que contiene mi archivo de configuración… mira a ver si tienes algún error de sintaxis y copia y pega… pero con esto deberÃa funcionar:
module_begin module_name Service_MySQL module_type generic_proc module_service /usr/sbin/mysqld module_end
Si te sigue sin funcionar, prueba a usar:
module_begin module_name MySQLDaemon module_type generic_proc module_exec ps -Af | grep mysqld | grep -v "grep" | wc -l module_end
Pruébalo e infórmanos, para bien o para mal. 😉
Saludos.
-
::
Muchas gracias por contestar.
Te comento he añadido las dos definiciones de modulo que me pasas (copiar/pegar para evitar fallos) y me pasas lo siguiente:
Con el servicio mysql iniciado: el modulo MySQLDaemon me devuelve 2 (correcto) y el modulo Service_MySQL me devuelve 0
Con el servicio mysql parado: el modulo MySQLDaemon me devuelve 0 (correcto) y el modulo Service_MySQL me devuelve 0
por tanto algo falla cuando utilizo module_service.ps aux | awk 'NR > 1 {ps = ""; for (i = 11; i <= NF; ++i) {ps = (ps " " $i) }; print $3, $6, ps}' | grep mysqld
devuelve
0.0 1448Â /bin/sh /usr/bin/mysqld_safe --mysqld=mysqld --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --socket=/var/lib/mysql/mysql.sock --datadir=/var/lib/mysql
1.1 14916Â /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
0.0 660Â grep mysqldPero yo creo que tiene algo que ver con los parametros que se pasan –basedir=…., ya que en el mismo servidor monitorizo el servicio cron (/usr/sbin/cron) que no lleva parametros y funciona correctamente (devuelve 1 cuando esta iniciado y cero cuando no)
-
::
De nada para eso estamos 😉
Coincido contigo.
El problema tiene que estar justo en ese punto.
Ahora lo comprobaré y veremos como se puede arreglar.. de momento prueba a poner donde el módulo:
module_service /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
Tanto si funciona como si no, házmelo saber por favor.
Si sigue sin funcionar, puedes ir tirando con el otro módulo sin el module_service mientras corregimos el bug.
Un saludo.
-
::
Vale, poniendo la linea completa que devuelve el comando ps funciona, pero con un pequeño fallo. Los cambios de estado del servicio (iniciado, parado) no los detecta el agente.
Pero si paro el agente y lo vuelvo a arrancar si me lo detecta.
Me explico:
1) inicio mysql–inicio pandora_agent Correcto
2) paro mysql al tiempo de refresco pandora_agent no se entera de que lo he parado
3) reinicio pandora_agent si me dice que mysql esta parado.Este comportamiento tambien lo tiene con el servicio cron
-
::
El servicio cron y todos jeje
Esto es porque con el module_service el agente cachea los datos, pero como luego no borra la caché, mantiene siempre el mismo dato… es un bug claramente. 😉
Esto último ya está arreglado, pero queda pendiente el no tener que poner en module_service la ruta completa más los parámetros de cada servicio…
Mientras solucionamos el problema, puedes seguir usando el módulo alternativo que te puse para monitorizar el estado del servicio.
Gracias por hacernos llegar este problema y un saludo.