Zabbix 4.4(六)zabbix监控mysql主从同步状态(自定义监控脚本)

本文介绍了如何使用Zabbix 4.4监控MySQL主从同步状态,包括设置监控脚本、配置zabbix-server、创建触发器和图形,以及故障排查与延迟监控。

实验环境

zabbix-server
centos7
192.168.14.216

mysql主节点
centos7
192.168.14.210
5.5.64-MariaDB MariaDB Server

mysql从节点
centos7
192.168.14.211
5.5.64-MariaDB MariaDB Server

zabbix-server监控mysql从节点的slave状态两个值(Slave_IO_Running、Slave_SQL_Running),通过这两个值返回的状态判断mysql主从同步是否异常。

前提准备:

mysql主从配置参考:https://blog.csdn.net/tladagio/article/details/103137845

zabbix-server添加监控主机参考:https://blog.csdn.net/tladagio/article/details/103060962

一、mysql从节点

1、查看mysql主从同步状态(mysql用户名和密码自行创建)

2、检测得到两个Yes即表示状态正常

[root@slave ~]# mysql -uroot -p123456 -e "show slave status \G"|grep "_Running"|awk '{print $NF}'|grep -c "Yes"  
2

3、创建监控状态脚本

[root@slave ~]# mkdir -p /usr/local/zabbix/script        #创建一个目录存放脚本
[root@slave ~]# cd /usr/local/zabbix/script/
[root@slave script]# vi check_slave_status.sh
#!/bin/bash
mysql -uroot -p123456 -e "show slave status \G"|grep "_Running"|awk '{print $NF}'|grep -c "Yes"  
[root@slave script]# chmod +x check_slave_status.sh        #授权执行权限

4、新建zabbix-agent监控脚本(引用监控状态脚本)

[root@slave ~]# vi /etc/zabbix/zabbix_agentd.d/userparameter_che_status.conf
UserParameter=check.slave_status,/usr/local/zabbix/script/check_slave_status.sh

5、重启服务

[root@slave ~]# systemctl restart zabbix-agent 

二、zabbix-server

1、测试是否获取到值

[root@f96412915d59 zabbix]# zabbix_get -s 192.168.14.211 -k "check.slave_status"
2

2、添加监控项(键值和UserParameter的值一致)

3、设置触发器

主从状态正常取得数值是2个Yes,如果数值小于2就说明主从状态异常

4、添加图形

5、查看图形

三、查看触发告警

1、从节点手动停止

[root@slave ~]# mysql -uroot -p123456 -e "stop slave;"

2、zabbix页面查看告警

3、从节点手动开启

[root@slave ~]# mysql -uroot -p123456 -e "start  slave;"

4、问题解决之后,自动消除告警提示

故障问题解决

1、如果出现ERROR 1227 (42000) at line 1: Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation

解决:mysql从节点的命令或者脚本没有加上mysql的用户名和密码

2、如果出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)

解决:mysql从节点暂时停止掉selinux的拦截行为:setenforce 0  

四、监控mysql主从复制延迟

1、查看延迟

[root@slave ~]# mysql -uroot -p123456 -e "show slave status \G"|grep 'Seconds_Behind_Master'|awk '{print $2}'  
0

Seconds_Behind_Master:0 说明没有延迟

Seconds_Behind_Master:NULL 说明有故障

2、添加Key

[root@slave ~]# cat  /etc/zabbix/zabbix_agentd.d/userparameter_che_status.conf 
UserParameter=check.slave_status,/usr/local/zabbix/script/check_slave_status.sh
UserParameter=seconds_behind_master,mysql -uroot -p123456 -e "show slave status \G"|grep 'Seconds_Behind_Master'|awk '{print $2}'

3、重启服务

[root@slave ~]# systemctl restart zabbix-agent 

4、zabbix-server验证值

[root@f96412915d59 zabbix]# zabbix_get -s 192.168.14.211 -k "seconds_behind_master"
0

5、添加监控项

6、设置触发器

7、主节点测试写入数据

Mysqlslap:
  来自于mariadb包,测试的过程默认生成一个mysqlslap的schema,生成测试表t1,查询和插入测试数据,mysqlslap库自动生成,如果已经存在则先删除。用--only-print来打印实际的测试过程,整个测试完成后不会在数据库中留下痕迹

使用格式:
  mysqlslap [options]

900和1000个并发分别得到一次测试结果(Benchmark),并发数越多,执行完所有查询的时间越长。为了准确起见,可以多迭代测试几次

[root@master ~]# mysqlslap -uroot -p123456 -a --concurrency=900,1000 --number-of-queries 1000 --iterations=5 --debug-info
Benchmark
	Average number of seconds to run all queries: 1.444 seconds
	Minimum number of seconds to run all queries: 1.399 seconds
	Maximum number of seconds to run all queries: 1.517 seconds
	Number of clients running queries: 900
	Average number of queries per client: 1

Benchmark
	Average number of seconds to run all queries: 1.611 seconds
	Minimum number of seconds to run all queries: 1.561 seconds
	Maximum number of seconds to run all queries: 1.661 seconds
	Number of clients running queries: 1000
	Average number of queries per client: 1


User time 2.08, System time 4.27
Maximum resident set size 27132, Integral resident set size 0
Non-physical pagefaults 44853, Physical pagefaults 0, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 61052, Involuntary context switches 112

8、查看告警图形

9、告警提示

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友人a笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值