Zabbix调用python脚本监控mysql主从状态

3 篇文章 0 订阅
1 篇文章 0 订阅

脚本只监控从库的同步状态

Zabbix安装路径:/usr/local/zabbix/

zabbix客户端:192.168.15.66


一、配置脚本查询mysql帐号权限

CREATE USER 'showslavestatus'@'localhost' IDENTIFIED BY '123456';
GRANT REPLICATION CLIENT ON *.* TO 'showslavestatus'@'localhost';

二、创建py脚本存放路径/usr/local/zabbix/script

cat SHOWSLAVESTATUS.py

#!/usr/bin/python3
# -*- coding: utf-8 -*-
#__author:"zhengchaooo"
#date: 2018/3/31
import re,os
class SHOWSLAVESTATUS:
    mysqlpath = '/usr/local/d/bin/mysql'
    def __init__(self,ip,port,username,pwd):
        self.ip = ip
        self.port = port
        self.username = username
        self.pwd = pwd
    def show(self,content):
        pip =  os.popen('%s -h %s -P %s -u%s -p%s -e %s'%(self.mysqlpath,self.ip,self.port,self.username,self.pwd,content)).read()
        Slave_IO_Running = ((re.search('Slave_IO_Running: [\S]*', pip)).group()[18:])
        Slave_SQL_Running = ((re.search('Slave_SQL_Running: [\S]*', pip)).group()[19:])
        Last_Errno = int((re.search('Last_Errno: [\d]*',pip)).group()[12:])
        print ('Slave_IO_Running:%s Slave_SQL_Running:%s Last_Errno:%s'%(Slave_IO_Running,Slave_SQL_Running,Last_Errno))
        if Last_Errno == 0 and Slave_IO_Running == 'Yes' and Slave_SQL_Running == 'Yes':
            print ('Yes,主从库同步正常')
        else:
            print ('False,主从库同步异常')
s1 = SHOWSLAVESTATUS('127.0.0.1','63307','showslavestatus','123456')
s1.show('\"SHOW SLAVE STATUS\G\"')

授予权限chmod +x SHOWSLAVESTATUS.py

测试脚本./SHOWSLAVESTATUS.py


Slave_IO_Running #I/O线程是否被启动并成功地连接到主服务器上
Slave_SQL_Running #SQL线程是否被启动
Last_Errno #被多数最近被执行的查询返回的错误数量和错误消息。错误数量为0并且消息为空字符串意味着“没有错误”。
提示:Warning: Using a password on the command line interface can be insecure
在MySQL 5.6 在命令行输入密码,就会提示这些安全警告信息,直接无视

三、添加zabbix_agentd.conf自定义配置脚本 编辑/usr/local/zabbix/etc/zabbix_agentd.conf 增加

UnsafeUserParameters=1
UserParameter=SHOWSLAVESTATUS[*],/usr/local/zabbix/script/SHOWSLAVESTATUS.py

重启zabbix_agentd,脚本可以调用

四、在zabbix服务器上调用测试

执行命令 192.168.15.66是客户端脚本的地址
/usr/local/zabbix/bin/zabbix_get -s 192.168.15.66 -p 30050 -k "SHOWSLAVESTATUS"

五、在zabbix添加监控脚本

然后查看最新数据查看接收数据

六、创建触发器,要是接收到False就告警

这边关闭主库数据库检查是否会告警

成功接收到报警邮件

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Zabbix中监视MySQL主从状态,需要执行以下步骤: 1. 确保MySQL主从复制已正确配置并正在运行。可以通过在主服务器上运行SHOW MASTER STATUS; 和在从服务器上运行SHOW SLAVE STATUS; 来检查复制状态。 2. 在MySQL主服务器上创建一个具有适当权限的MySQL用户以供Zabbix使用。可以使用以下命令创建用户: CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password'; GRANT REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost'; 3. 在Zabbix服务器上安装MySQL监视器模板。该模板包含用于监视MySQL服务器的预定义项和触发器。 4. 在Zabbix服务器上创建一个MySQL主服务器主机,将其与MySQL监视器模板关联,并配置主机的连接参数。这些参数应包括MySQL主服务器的IP地址、端口和上一步中创建的MySQL用户的凭据。 5. 在Zabbix服务器上创建一个MySQL从服务器主机,将其与MySQL监视器模板关联,并配置主机的连接参数。这些参数应包括MySQL从服务器的IP地址、端口和上一步中创建的MySQL用户的凭据。 6. 等待一段时间,以便Zabbix收集有关MySQL主从复制状态的数据。可以通过查看Zabbix监视器模板中的图形和报告来检查这些数据。 7. 如果需要,可以根据需要创建自定义Zabbix触发器,以便在MySQL主从复制状态出现问题时接收警报。 请注意,这只是一个基本的概述。实际的实施可能因环境和要求的不同而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值