zabbix监控MySQL
原创
©著作权归作者所有:来自51CTO博客作者959_1x的原创作品,请联系作者获取转载授权,否则将追究法律责任
zabbix监控MySQLhttps://blog.51cto.com/c959c/5332037
zabbix监控MySQL
实验环境:
mysql主从配置参考 mysql主从
关闭防火墙和selinux 安装zabbix,zabbix是基于lamp环境下的,先搭建lamp架构
安装zabbix监控mysql主从
主机系统
| IP
| 角色
|
centos7.6最小化
| 192.168.66.128
| zabbix-agentd-MySQL-slave
|
centos7.6最小化
| 192.168.66.129
| zabbix-agentd-MySQL-server
|
实验一:监控MySQL主从同步状态
[root@128slave ~]# egrep -v "#|^$" /usr/local/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.66.129
ServerActive=192.168.66.129
Hostname=1
UnsafeUserParameters=1
UserParameter=check_mysql,/bin/bash /scripts/check_mysql.sh
UserParameter=check_mysql2,/bin/bash /scripts/check_mysql2.sh
配置免密登录
[root@128slave ~]# vim /etc/my.cnf
[client]
host=localhost
user=root
password=1
添加一个key
UserParameter=check_mysql,/bin/bash /scripts/check_mysql.sh
[root@128slave ~]# vim /scripts/check_mysql.sh
#!/bin/bash
A=$(mysql -e "show slave status\G" | grep "Running" |awk '{print $NF}' | grep -c "Yes")
if [ $A -lt 2 ];then
echo '1'
else
echo '0'
fi
[root@128slave ~]# pkill zabbix
[root@128slave ~]# zabbix_agentd
服务端验证:
[root@129master ~]# zabbix_get -s 192.168.66.128 -k check_mysql
1
说明
脚本是为了判断yes的个数来判断mysql主从是否同步。
如果yes有两个的话那么同步
如果yes小于两个的话则不同步
【Zabbix-server-web端配置】
创建一个监控项作为mysql主从

创建触发器,实现主从异常报警

Add中

手动触发测试:
[root@128zabbix src]# mysql -e "stop slave;"

实验二:监控MySQL主从延迟
添加一个key
UserParameter=check_mysql2,/bin/bash /scripts/check_mysql2.sh
[root@128slave ~]# vim /scripts/check_mysql2.sh
#!/bin/bash
A=$(mysql -e "show slave status\G" 2>/dev/null|egrep 'Seconds_Behind_Master'|awk '{print $2}')
if [ $A -ne 0 ];then
echo '1'
else
echo '0'
fi
[root@128slave ~]# pkill zabbix
[root@128slave ~]# zabbix_agentd
服务端验证:
[root@129master ~]# zabbix_get -s 192.168.66.128 -k check_mysql2
0
说明没有延迟
【Zabbix-server-web端配置】
创建一个监控项作为mysql延迟

创建触发器,实现主从异常报警

Add

手动测试
插入几百到几千万条数据,才能看出延迟,方法在gtid主从那一章
结果:
