Zabbix调用python脚本监控MySQL主从复制状态

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
 
1、创建查询主从同步用户

mysql> rant replication client on *.* to monitor@'localhost' identified by 'pwd';

本人是Centos7,为了方便就使用自带的python2.7 edition,python3.x需要安装,edition个人自定义,脚本只需要修改print语句而已
 
2、编写python(2.7)

vim /usr/local/script/monitor.py
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-

import re
import os


def monitor():
    username = 'monitor'
    pwd = 'pwd'
    content = '\"show slave status\G;\"'

    show = os.popen('mysql -h localhost -u{} -p{} -e {}'.format(username, pwd, content)).read()
    Slave_IO_Running = re.search('Slave_IO_Running: [\S]*', show).group()[18:]
    Slave_SQL_Running = re.search('Slave_SQL_Running: [\S]*', show).group()[19:]
    Last_Errno = int(re.search('Last_Errno: [\d]*', show).group()[12:])
    current_state = ('Slave_IO_Running:{} Slave_SQL_Running:{} Last_Errno:{}'.format(Slave_IO_Running,
                                                                          Slave_SQL_Running, Last_Errno))
    if Last_Errno == 0 and Slave_IO_Running == 'Yes' and Slave_SQL_Running == 'Yes':
        print 'Status: OK\n', current_state
    else:
        print 'Status: PROBLEM\n', current_state


if __name__ == '__main__':
    monitor()

安全考虑,修改权限

chown zabbix: monitor.py
chmod 500 monitor.py

3、配置zabbix agent

vim /usr/local/zabbix_agentd/conf/zabbix_agentd.conf
UnsafeUserParameters=1	#改为1,不可以自定义
UserParameter=showslavestatus,/usr/local/script/monitor.py

在这里插入图片描述
UserParameter说明:
var1是zabbix键值,也是报警的告警项目,自定义;var2是命令或脚本
showslavestatus稍后在zabbix界面添加监控项的自定义键值,如果脚本需要加参数则写成showslavestatus[*]

重启zabbix agent
 
4、在zabbix server上调用测试

zabbix_get -s client_ip -p 10050 -k "showslavestatus"	  # showslavestatus是zabbix agent配置文件的var1
mysql: [Warning] Using a password on the command line interface can be insecure.
Status: OK
Slave_IO_Running:Yes Slave_SQL_Running:Yes Last_Errno:0

5、配置item and trigger
 
在对应的监控主机上配置item
在这里插入图片描述
在这里插入图片描述
在Monitoring - Latest data查看数据
在这里插入图片描述

在对应的主机上配置trigger

在这里插入图片描述
在这里插入图片描述
触发告警

mysql> stop slave;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值