版权声明:版权所有,转载请标明出处! https://blog.csdn.net/wuguifa/article/details/89495915
恩,非常nice的一个标题,如果满分一百分的话,我给自己打82分,剩下的18分以666的形式给我自己。
本次的教程,我们要利用zabbix的UserParameter来做MySQL主从复制状态的监测。
教程基础:
搭建好的zabbix监控平台,
完成主从配置的MySQL数据库
python3及pymysql模块。
先放上我们的监测脚本,脚本命名为ms_status.py:
#!/usr/bin/python3
'''
Created on 2019年4月23日
@author: wugf
'''
import pymysql
'''
使用show slave status命令获取主从复制状态,
判断下面两个线程是否是 Yes
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
都为Yes输出0,否则输出1
'''
hostname = "120.77.237.248"
username = "backup1"
password = "Yiju2018"
port = 3306
con = pymysql.connect(host=hostname, port=port, user=username, passwd=password)
cur = con.cursor()
cur.execute('show slave status;')
status = cur.fetchall()
if status[0][10] and status[0][11] == "Yes":
print(0)
else:
print(1)
con.close()
.
.
接下来我们来配置zabbix-agent的配置文件,我这里用来执行监测的主机是Zabbix server。
在zabbix_agent.conf配置文件里面加一行,逗号左边的是监控项的键值,右边的脚本的路径,加完保存后重启下zabbix-agent:
.
.
然后我们新建一个监控项:
监控项的键值就是上面我们设置的mysql.ms_status:
.
.
配合完之后我们可以看到,正常情况下获取到的值都是0:
.
.
我们可以设置一个触发器,当主从复制状态异常时(即获取的值不是0时),在控制面板上会有一个告警提示:
.
.
也可以自定义通知类型,我这里做的是企业微信通知,大概看一下,不做详细介绍:
.
.
好了,教程结束,谢谢观看!