Zabbix监控mysql主从同步状态

20 篇文章 2 订阅
19 篇文章 3 订阅

一、在装有zabbix-agent服务器配置中添加脚本

需要在服务器安装python3和mysqlclient模块

yum install -y python3 python3-devel

二进制安装python3参考:https://blog.csdn.net/qq_39626154/article/details/118415815

安装模块时报错信息:

OSError: mysql_config not found

解决方法:

执行以下命令yum install python-devel mysql-devel -y

然后再 pip3 install mysqlclient 可顺利安装完成

[root@db ~]# cd /etc/zabbix/

[root@db zabbix]# mkdir script

[root@db zabbix]# cd script/

[root@db script]# vim slave_status.py

编写脚本内容如下:

#!/usr/bin/python3
#coding:utf-8

import MySQLdb
import sys

class check_gz_repl():
    def __init__(self):
    #根据实际的连接参数添加参数变量
        self.dbhost = '127.0.0.1'
        self.dbuser = 'root'
        self.dbpass = '*****'
        self.dbport = 3306
        self.db = "mysql"

    #连接mysql数据库执行show slave status;语句并截取slave的io与sql进程运行状态
        self.conn = MySQLdb.connect(host=self.dbhost, user=self.dbuser, passwd=self.dbpass, port=self.dbport, db=self.db)
        self.cursor = self.conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
        self.sql = 'show slave status;'
        self.cursor.execute(self.sql)
        self.data = self.cursor.fetchall()
        self.io = self.data[0]['Slave_IO_Running']
        self.sql = self.data[0]['Slave_SQL_Running']
        self.conn.close()

    #根据进程状态返回相应的状态码1或0
    def get_io_status(self):
        if self.io == 'Yes':
            return 1
        else:
            return 0

    def get_sql_status(self):
        if self.sql == 'Yes':
            return 1
        else:
            return 0


    #输入系统参数对相应内容进行打印
if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: %s [io|sql]" %sys.argv[0])
        sys.exit(1)
    mysql = check_gz_repl()
    if sys.argv[1] == "io":
        print(mysql.get_io_status())
    elif sys.argv[1] == "sql":
        print(mysql.get_sql_status())

为脚本添加可执行权限

[root@db script]# chmod +x slave_status.py

二、添加自定义监控项目

[root@db script]# cd /etc/zabbix/zabbix_agentd.d/

[root@db script]# vim userparameter_mysql_slave.conf

#获取mysql_slave状态
UserParameter=mysql.slave[*],/etc/zabbix/script/slave_status.py $1

添加好后重启zabbix-agent进程

systemctl restart zabbix-agent

在zabbix-server服务器上运行zabbix_get检测一下脚本运行状态

[root@zabbix ~]# zabbix_get -s 192.168.100.18 -k mysql.slave[io]
1
#返回结果为1,说明状态正常。结果为0即进程中断。

三、在zabbix-web页面上配置模板

添加一个mysql-slave的模板,选择要实施的群组

 

添加io与sql监控项,每分钟执行一次脚本返回对应值

再添加监控项相应的触发器,严重性我这里设置为警告。一旦触发器响应,会触发响应的告警动作。

添加相应的图形

 

图形预览

四、主机链接相应的模板

选择主机中的模板选项,选择我们刚刚创建好的MySQL_Slave模板

链接完成后就可在该主机的图形选项中查看到该监控的运行状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值