自定义MySQL主从延迟监控
- 环境说明
ip | 服务器类型 |
---|---|
192.168.218.132 | zabbix服务器 |
192.168.218.133 | mysql-slave端 |
192.168.218.131 | mysql-master端 |
需搭建好MySQL主从环境,如何搭建–>MySQL主从配置
- 脚本编写
//在编写脚本前我们在从库上授权一个用户,保证密码的安全性
mysql> grant super,replication client on *.* to 'zabbix'@'localhost' identified by 'zabbix123';
Query OK, 0 rows affected, 2 warnings (0.00 sec)
//开始编写脚本
[root@localhost scripts]# mkdir /scripts
[root@localhost scripts]# touch check_replication_delay.sh
[root@localhost scripts]# chmod +x check_replication_delay.sh
[root@localhost scripts]# vim check_replication_delay.sh
#!/bin/bash
#show slave status\G;中的Seconds_Behind_Master为主从赋值延迟
delay=$(mysql -uzabbix -pzabbix123 -e 'show slave status\G;' 2>/dev/null |grep '_Behind' |awk '{print $2}')
if [ $delay != NULL ];then
echo '0'
else
echo '1'
fi
- 修改配置文件添加脚本路径
[root@localhost ~]# vim /usr/local/etc/zabbix_agentd.conf
UnsafeUserParameters=0 //把值修改为1
UnsafeUserParameters=1 //修改后
UserParameter=check_delay,/scripts/check_replication_delay.sh
- 重启服务
[root@localhost ~]# pkill zabbix
[root@localhost ~]# zabbix_agentd
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 [::]:22 [::]:*
- 测试key(服务端)
[root@localhost ~]# zabbix_get -s 192.168.218.133 -k check_delay
0
//目前主从复制没有延迟,返回值为0,key正常
- web界面配置监控项
- web界面配置触发器
- 测试触发器