使用Zabbix + Python对Mysql监控
一、背景介绍
随着公司业务的变迁,公司的开发数据库以mysql为主了。mysql服务器层面的监控,例如CPU、内存、硬盘空间等就用zabbix自带的linux模板即可。数据库层面zabbix也自带了一个模板,但是它需要将mysql的密码写到my.cnf文件中,这样不安全,因此决定自己写一个。原先我写过一个用python去监控oracle的博客使用zabbix监控oracle数据库,对于mysql的监控大同小异,只需要简单改改监控项即可。
二、监控方式
Zabbix服务端的环境为:CentOS 6.10, Zabbix 3.4.15, Python 3.6.8。被监控的mysql 版本为8.0.x。监控采用外部检查(External Check)的方式,即从zabbix服务端执行python脚本,去查询被监控的mysql信息。这种方式的好处是监控脚本放在zabbix服务端,后面想修改模板和脚本只需要在zabbix服务端修改一次即可,被监控端不用做任何操作,省心。
三、监控项规划
确定好了监控方式,接下来就开始对监控项进行规划。
1. os层
port:mysql端口是否正常监听,检测不到监听端口,报警
proc:mysqld进程是否存在,检测不到mysqld进程,报警
以上两个监控项通过zabbix agent采集信息(需要在被监控机安装zabbix-agent)
2. db层
主库和从库都包括的监控项:
readonly:是否只读,状态发生改变时报警
uptime:运行时间,uptime减少表示数据库发生了重启,报警
queries:检查qps
select: 查询的sql次数
update: 更新的sql次数
delete: 删除的sql次数
insert: 插入的sql次数
slow_queries: 慢查询次数
threads_running: 正在运行的线程数,设定100,超过该值报警,根据自己需求适当调整
threads_limit: 线程限制,设定90%,超过该值报警,根据自己需求适当调整
只在从库有的监控项:
从库采用自动发现的方式,即执行“show slave status”有结果就表明这个是从库
slave_io_running:从库的io线程,如果不为YES,报警
slave_sql_running: 从库的sql线程,如果不为YES,报警
seconds_behind_master:从库落后主库的时间,设定10分钟,超过该值报警,根据自己需求适当调整
四、实践
我假设你已经有了zabbix服务端,因此这里略过如何搭建zabbix。
在zabbix服务端安装python3(略),并安装argparse, inspect, pymysql包。
将附件中的mysqlmon.py放入/usr/lib/zabbix/externalscripts下,同时赋权限chmod 755 mysqlmon.py,注意修改mysqlmon.py的第一行#!/usr/local/python3/bin/python3,这里要改成你自己的python执行路径。
将附件的mysql_template.xml导入到zabbix中(我是基于zabbix 3.4.15写的模板,其它zabbix版本可能会出现模板导不进去的情况)。
添加服务器,链接到模板Template-Db-Mysql-ExternalCheck-Customize。
在被监控的mysql中创建监控用户,用户只需要有show view, replication client权限即可。
grant show view, replication client on . to xxx;修改主机中的宏(address,username,password填写被监控mysql的信息)
后面就能看到相关图形和报警了
如果想自己添加一个监控项,则只需要在mysqlmon.py添加一个方法,方法名与key的参数名一致即可(下面是一个示例,我用红框圈出来的地方)
如果大家在使用过程中碰到了问题以及想添加其它的监控项,欢迎大家在博客下面留言,我后续对这个模板进行改进。
五、附件
下面附件下载都为txt后缀,需要手工修改
mysqlmon.py下载地址
mysql_template.xml下载地址
使用Zabbix + Python对Mysql监控的更多相关文章
- 如何在Zabbix上安装MySQL监控插件PMP
PMP,全称是Percona Monitoring Plugins,是Percona公司为MySQL监控写的插件.支持Nagios,Cacti.从PMP 1.1开始,支持Zabbix. 下面,看看如何 ...
- 6.Zabbix 3.0 MySQL 监控
请查看我的有道云笔记: http://note.youdao.com/noteshare?id=94cd760a4848939d33892b7464cc0401&sub=8B6EDD27671 ...
- 【Linux】Zabbix + MPM + msmtp + mutt 监控MySQL + 邮件报警
Zabbix部署参考博文 http://blog.sina.com.cn/s/blog_5611597901017oe0.html MPM安装配置参考博文和MPM官网下载地址 http://blog ...
- 京东MySQL监控之Zabbix优化、自动化
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wangwei007.blog.51cto.com/68019/1833332 随 ...
- 转 zabbix debug and zabbix使用percona插件监控mysql
########## https://www.cnblogs.com/keithtt/p/8542987.html zabbix使用percona插件监控mysql 1.添加percona仓库. ...
- zabbix系列 ~ 如何更好的利用mysql监控
一 简介:今天来聊聊一些关于mysql 监控需要关注的问题二 实现的原理 1 global status 2 variables 三 我们需要关注的zabbix性能图 1 事务类型 ...
- Zabbix学习之路(五)之MySQL监控
1.linux-node2节点安装数据库 [root@linux-node2 ~]# yum install -y mariadb-server [root@linux-node2 ~]# syste ...
- ZABBIX 3.0 配置监控MYSQL性能【OK】
Zabbix3.0自带了MySQL插件来监控mysql数据库的模板,只需要配置好agent客户端,然后在web端给主机增加模板就行了. 参考:http://www.cnblogs.com/keving ...
- zabbix通过percona插件监控mysql
percona zabbix mysql-plugin是percona发布的一个使用zabbix监控mysql数据库的工具,这款工具比zabbix自带的监控模板要强大的多,毕竟percona是Mysq ...
随机推荐
- [loj3075]组合数求和
Subtask1:$m,nd\le 2\times 10^{3}$ 对$M$质因数分解,假设$M=\prod_{i=1}^{k}p_{i}^{\alpha_{i}}$(其中$p_{i}$为素数) ...
- 程序员需要达到什么水平才能顺利拿到 20k 无压力?
程序员要拿到20k,应该达到什么水平? 1 熟悉增删改查技能,熟悉项目开发相关流程和技能. 2 能解决基本问题,分布式或比较深的问题,太难的不会不要紧,但常规的应该有项目经验. 3 简历好看些 ...
- Elasticsearch分布式搜索和数据分析引擎-ElasticStack(上)v7.14.0
Elasticsearch概述 **本人博客网站 **IT小神 www.itxiaoshen.com Elasticsearch官网地址 https://www.elastic.co/cn/elast ...
- Windows快捷键及cmd打开方式
Windows快捷键 win+e 打开我的电脑 win+r 打开运行 ctrl+z 撤销 shift+del 彻底删除 alt+F4 关闭窗口 ctrl+c 复制 ctrl+a 全选 ctrl+x 剪 ...
- Docker容器基础入门认知-网络篇
这篇文章中,会从 docker 中的单机中的 netns 到 veth,再到单机多个容器之间的 bridge 网络交互,最后到跨主机容器之间的 nat 和 vxlan 通信过程,让大家对 docker ...
- LGV 引理小记
讲个笑话,NOI 之前某场模拟赛让我知道了这个神奇的科技,于是准备 NOI 之前学完,结果鸽着鸽着就鸽掉了,考 day1 之前一天本来准备花一天时间学的,然后我就开玩笑般地跟自己说,这么 trivia ...
- Codeforces 1290D - Coffee Varieties(分块暴力+完全图的链覆盖)
Easy version:Codeforces 题面传送门 & 洛谷题面传送门 Hard version:Codeforces 题面传送门 & 洛谷题面传送门 发现自己交互题烂得跟 s ...
- C++ and OO Num. Comp. Sci. Eng. - Part 2.
本文参考自<C++ and Object-Oriented Numeric Computing for Scientists and Engineers>. 1. Basic Types ...
- urllib的基本使用介绍
1. urllib中urlopen的基本使用介绍 1 ### urllib中urlopen的基本使用介绍 2 3 ## urlopen的基本用法(GET请求) 4 import urllib.requ ...
- 3.Median of Two Sorted Arrays Leetcode
难度系数:5星 /*************************************************************************** 题目:有两个排好序的数组,要求 ...