Zabbix 监控Mysql 主从状态(Python脚本)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

 1、在被监控机(Mysql Slave端)放置检查脚本:

/usr/local/zabbix/bin/check_mysql_repl.py

 
 
  1. #!/usr/bin/python 
  2. #coding:utf-8 
  3.  
  4. import MySQLdb 
  5. import sys 
  6.      
  7. class check_mysql_repl(): 
  8.     def __init__(self): 
  9.         self.dbhost = 'localhost' 
  10.         self.dbuser = 'root' 
  11.         self.dbpass = 'wisp888' 
  12.         self.dbport = 3306 
  13.         self.sock = "/data/db_misc/mysql_3306.sock" 
  14.          
  15.         self.conn = MySQLdb.connect(unix_socket=self.sock) #根据实际情况连接
  16.         self.cursor = self.conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) 
  17.         self.sql = 'show slave status' 
  18.         self.cursor.execute(self.sql) 
  19.         self.data = self.cursor.fetchall() 
  20.         self.io = self.data[0]['Slave_IO_Running'
  21.         self.sql = self.data[0]['Slave_SQL_Running'
  22.         self.conn.close() 
  23.          
  24.     def get_io_status(self): 
  25.         if self.io == 'Yes'
  26.             return 1 
  27.         else
  28.             return 0 
  29.          
  30.     def get_sql_status(self): 
  31.         if self.io == 'Yes'
  32.             return 1 
  33.         else
  34.             return 0                
  35.          
  36.          
  37. if __name__ == "__main__"
  38.     if len(sys.argv) != 2
  39.         print "Usage: %s [io|sql]" % sys.argv[0
  40.         sys.exit(1
  41.     mysql = check_mysql_repl() 
  42.     if sys.argv[1] == "io"
  43.         print mysql.get_io_status() 
  44.     elif sys.argv[1] == "sql"
  45.         print mysql.get_sql_status() 

2、配置zabbix_agent.conf,添加Key和监控脚本:

vi /usr/local/zabbix/etc/zabbix_agentd.conf,文件最后添加以下两行:

 
 
  1. UserParameter=mysql.repl_io,/usr/local/zabbix/bin/check_mysql_repl.py io 
  2. UserParameter=mysql.repl_sql,/usr/local/zabbix/bin/check_mysql_repl.py sql 

UserParameter是固定的

mysql.repl_io 是自定的Key,下面添加监控项的时候用到

/usr/local/zabbix/bin/check_mysql_repl.py io  这一段就是上面的脚本及参数

重启zabbix_agentd

3、添加监控项:

4、添加触发器:

此触发器的作用是检测到脚本的返回值不是1就会报警。

 

就这样一个简单的监控主从配置就完成!~~

本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/1081562如需转载请自行联系原作者


lihuipeng

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
24天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
142 61
|
2月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
9天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
50 23
|
10天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
43 22
|
13天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
55 25
|
1月前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
106 7
21个Python脚本自动执行日常任务(2)
|
1月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
126 5
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
270 15
|
1月前
|
监控 安全 前端开发
使用 Zabbix 监控堆外应用
使用 Zabbix 监控堆外应用
57 9
|
1月前
|
监控 数据可视化 Java
zabbix全面的监控能力
zabbix全面的监控能力
103 7