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!