Buscar

Linux: Mysql monitor en tiempo real manual

En muchas ocasiones necesitamos monitorizar a tiempo real las conexiones que se están realizando a nuestro Mysql.

Si utilizamos el comando top, tenemos la posibilidad de ver el uso de recursos y número de procesos que está utilizando el servicio MySQL, sin embargo no podemos ver el detalle de las querys, inserts, updates.

Esta monitorización a nivel de servicio puede realizarse con todo tipo de herramientas, una de ellas, muy extendida es Mytop (jeremy.zawodny.com)

En el caso de distribuciones RHEL/CentOS, encontraremos el paquete de Mytop en los repositorios RPMForge o EPEL.

También existen herramientas GUI que podemos utilizar fuera del servidor, conectar al servicio y monitorizar, sin embargo en ocasiones, nos encontramos que por motivos de seguridad solo están permitidas las conexiones al servicio MySQL desde localhost (127.0.0.1)

Siempre tenemos la posibilidad de utilizar el cliente de mysql, conectar al servicio y ejecutar show processlist, de esta forma, vemos los procesos del servicio en tiempo real.

Veamos el siguiente ejemplo:

watch -n 6 --differences "mysql -u root -pXXXXXXXXXXX -e 'show processlist'"

Salida monitor MySQL

Explicación del comando:

watch -n 6 --differences: El comando watch nos muestra el contenido que especifiquemos como parámetro. 

En este caso, se especificará la salida de ejecución del cliente mysql.

Además, indicamos el parámetro -n 6, que realizará un refresco cada 6 segundos y el parámetro --differences, que resaltará de forma visual las diferencias.

mysql -u root -pXXXXXXXXXXX -e 'show processlist': mysql, es el cliente mysql en modo texto, con los parámetros -u y -p especificamos las credenciales y con el parámetro -e especificamos el comando SQL a ejecutar.

Consideraciones adicionales:

También nos podemos encontrar que las sentencias de SQL de Select, Insert, Update, etc. queden truncadas en la salida por pantalla. Para evitar este problema, podemos cambiar show processlist por show full processlist.

Para interpretar el resultado de la ejecución de show processlist podemos consultar la siguiente referencia: SHOW PROCESSLIST Syntax (dev.mysql.com)



No hay comentarios:

Publicar un comentario