ZABBIX 5.0: Monitorizar MySQL y enviar alertas por telegram

Muy buenas!

Hoy os traigo un post para poder monitorizar un servidor mysql a través de el agente de zabbix.

Todos los pasos se tienen que seguir en el zabbix agent cliente, en ningún caso sobre el servidor zabbix, a no ser que se especifique lo contrario.

1.- Instalar zabbix agent en el host a monitorizar

Descargar paqueteria

wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb
dpkg -i zabbix-release_5.0-1+buster_all.deb

Actualizar repositorios del sistema

apt-get update

Instalar agente zabbix

apt-get install zabbix-agent

2.- Instalar paquetería en el host a monitorizar

apt install mariadb-server
apt install mariadb-client

3.- Descargar este archivo y subirlo en el host a monitorizar (en mi caso lo he hecho a través de ftp)

Por ejemplo, si el host (zabbix agent) a monitorizar es un debian 10 con un mysql server, lo que haremos es subir aquí el archivo que he comentado que es necesario descargar. En ningún caso se tiene que subir al servidor zabbix.

Link: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent

wget https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent/template_db_mysql.conf

Mover el archivo a la carpeta del agente de zabbix:

mv template_db_mysql.conf /etc/zabbix/zabbix_agentd.d/

No hace falta configurar ningún parámetro de este archivo.

4.- Crear directorio /var/lib/zabbix en el cliente a monitorizar

Crear carpeta directorio local zabbix

mkdir -p /var/lib/zabbix/

Asignar permisos a la carpeta para que zabbix pueda leer y ejecutar el script de telegram

chown zabbix:zabbix /var/lib/zabbix/
chmod 755 /var/lib/zabbix/

5.- Crear usuario y otorgar permisos en la base de datos a monitorizar

mysql -u root -p
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'CONTRASEÑA';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON . TO 'zbx_monitor'@'%';
quit;

6.- Crear archivo .my.cnf en el directorio local del agente de zabbix /var/lib/zabbix

nano /var/lib/zabbix/.my.cnf

[client]
user='zbx_monitor' #usuario de la base de datos
password='' #Contraseña usuario de la base de datos

7.- Reiniciar agente zabbix

service zabbix-agent restart

8.- Añadir template “MySQL by Zabbix agent” al host mysql para poder monitorizar las consultas.

Revisamos que estén llegando datos de mysql:

9.- Prueba con trigger de apagado servicio mysql

En esta prueba lo que pretendo es si al parar el servicio de mysql (service mysql stop) salta un trigger en el panel de alertas de zabbix.

Al cabo de 1 minuto saltará una alerta en zabbix

Si volvemos a iniciar servicio veremos como muestra el trigger correctamente

El trigger que esta en severidad “Information” nos indica que el servicio mysql se ha reiniciado y que por lo consecuente mantiene 10 minutos el trigger en estado PROBLEM. Una vez pasen 10 minutos y el servicio de mysql esté levantado el trigger tendrá el estado RESOLVED.

10.- Enviar alertas vía telegram

En este post os enseño a como configurar el bot para recibir avisos de zabbix.

En este post no me centraré en la configuración del media type y de como enviar alertas a telegram al ya tener un post específico y si quieres saber como configurarlo te recomiendo leer este post:

https://ericfe.com/index.php/2021/01/zabbix-enviar-mensajes-via-telegram/

10.1.- Enviar alerta en caso de caída del servicio mysql

Name: el nombre que le quieras poner a la acción.

Conditions: que condición desencadenará para enviar el mensaje -> en este caso que zabbix detecte que el servicio mysql esta caído.

Configurar operaciones:

Send to users: A que usuarios notificará el trigger mediante los media types configurados.

Saltará el trigger:

Recibiremos un telegram:

Espero que os haya gustado el post, un saludo y hasta la próxima!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.