[发明专利]一种通过ZABBIX监控MYSQL表空间的方法在审
申请号: | 201510521181.7 | 申请日: | 2015-08-24 |
公开(公告)号: | CN105095496A | 公开(公告)日: | 2015-11-25 |
发明(设计)人: | 周庆勇;付迅 | 申请(专利权)人: | 浪潮软件股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/30;G06F11/34 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
地址: | 250101 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种通过ZABBIX监控MYSQL表空间的方法,其方法如下:通过创建键值为mysql.schema.size[mysql用户名,mysql密码,数据库名,表名]的监控项将参数传给mysqlsize.sh脚本,该脚本获取数据后传给zabbix并写入数据库。本发明的一种通过ZABBIX监控MYSQL表空间的方法和现有技术相比,可以实时监控集群中任意服务器上mysql所有表的总大小、某个数据库所有表的大小以及某个数据库中某张表的大小,并在Web界面上实时展现出来,当表空间超出指定大小时产生告警信息提醒用户。而且本发明还具有构思合理、使用方便、节省人力、智能化程度高等特点,因而具有很好的使用价值。 | ||
搜索关键词: | 一种 通过 zabbix 监控 mysql 空间 方法 | ||
【主权项】:
一种通过ZABBIX监控MYSQL表空间的方法,其特征在于方法如下:在zabbix系统中找到要监控的数据库服务器,创建一个新的监控项,类型为“Zabbix代理”,键值为mysql.schema.size[mysql用户名,mysql密码,数据库名,表名];根据数据库名与表名的不同分为三类:(1)、当参数“数据库名”为“all”时,参数“表名”无效,意为整个mysql所有表的大小,例如:mysql.schema.size[root,root,all];(2)、当参数“数据库名”不为“all”,参数“表名”为“all”时意为该数据库下所有表的总大小,例如:mysql.schema.size[root,root,cmp,all],即cmp数据库所有表的总大小;(3)、当参数“数据库名”与“表名”都不为“all”时意为该数据库下某张表的大小,例如:mysql.schema.size[root,root,zabbix,history],即zabbix数据库的history表的大小;修改zabbix_agentd.conf配置文件,添加UserParameter=mysql.schema.size[*],/usr/local/zabbix/plugins/mysqlsize.sh $1 $2 $3 $4,其中mysql.schema.size[*]是新创建的监控项的键值,mysqlsize.sh 是收集表大小的shell脚本,$1 $2 $3 $4分别对应着监控项mysql.schema.size的四个参数:mysql用户名,mysql密码,数据库名,表名;将配置文件中的Timeout值设为10或更大,因为默认为3秒,而mysqlsize.sh执行一次的时间往往大于3秒,Timeout值必需大于mysqlsize.sh的执行时间才会正常执行;mysqlsize.sh代码如下:#!/bin/bashuser=$1password=$2dbname=$3tablename=$4if [ $dbname == "all" ] #查询mysql下所有数据库的总大小thensize=$(mysql ‑u${user} ‑p${password} ‑D information_schema ‑BN ‑e"SELECT SUM(DATA_LENGTH+INDEX_LENGTH) FROM TABLES;")echo $sizeelseif [ $tablename == "all" ]#查询数据库$dbname下所有表的总大小thensize=$(mysql ‑u${user} ‑p${password} ‑D information_schema ‑BN ‑e"SELECT SUM(DATA_LENGTH+INDEX_LENGTH) FROM TABLESWHERE TABLE_SCHEMA='$dbname';")echo $sizeelse ##查询数据库$dbname下的$tablename表的大小size=$(mysql ‑u${user} ‑p${password} ‑D information_schema ‑BN ‑e"SELECT SUM(DATA_LENGTH+INDEX_LENGTH) FROM TABLES WHERE TABLE_SCHEMA='$dbname' AND TABLE_NAME='$tablename';") echo $size fifiZabbix系统将$1 $2 $3 $4传给mysqlsize.sh后,该脚本会根据用户名($1)与密码($2)登陆mysql,然后根据数据库名($3)与表名($4)进行查询,最后将结果返回给zabbix,然后写入zabbix的数据库。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮软件股份有限公司,未经浪潮软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510521181.7/,转载请声明来源钻瓜专利网。