systemadmin.es > Monitorización > Check de Nagios para comprobar los bloqueos en una base de datos MySQL

Check de Nagios para comprobar los bloqueos en una base de datos MySQL

Anteriormente vimos que los bloqueos es un problema típico en entornos LAMP, a continuación veremos un pequeño script para alertar de la presencia de bloqueos en la base de datos.

Para que funcione necesitaremos que la contraseña se encuentre en el fichero /var/mysql/.mysql.root.pass y pasarle al script el número máximo de locks que permitimos (por defecto 2)

#!/bin/bash

MAXLOCKS=$1
PASSWORD=$(cat /var/mysql/.mysql.root.pass)

if [ -z "$MAXLOCKS" ];
then
        MAXLOCKS=2
fi

LOCKS=$(echo "show processlist;" | mysql -p${PASSWORD} | grep Lock | wc -l)

if [ -z "$LOCKS" ];
then
        echo "UNKNOWN - Error de contrasena o MySQL DOWN"
        exit 3
fi

if [ $LOCKS -gt $MAXLOCKS ];
then
        echo "CRITICAL: John Locke esta triste porque tiene mas de $MAXLOCKS locks... ya no puede andar|locks=$LOCKS;"
        exit 2
fi

echo "OK - John Locke esta feliz y puede andar!!!| locks=$LOCKS;"
exit 0

Si lo ejecutamos directamente veremos el OK:

# ./check_johnlocke
OK - John Locke esta feliz y puede andar!!!| locks=0;

John Locke esta feliz:

John Locke esta feliz porque no hay bloqueos

John Locke esta feliz porque no hay bloqueos

En caso de bloqueos recibiremos el siguiente CRITICAL:

# ./check_johnlocke
CRITICAL: John Locke esta triste porque tiene mas de 2 locks... ya no puede andar|locks=8;

Y John Locke ya no sera feliz y dejara de andar:

John Locke ya no puede andar

John Locke ya no puede andar

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>