vlambda博客
学习文章列表

技巧 | 利用 Zabbix 监控数据库文件大小

【作者】许远,广州九一乐维工程师 


场景模拟:

数据库空间如果太大,对性能方面有一定的影响,所以某知名企业的运维人员小智想要监控每台数据库服务器的数据库文件大小。这名运维人员目前的做法是执行查询语句,把结果存成txt文件,然后每天都需要登录到所有的数据库服务器查看这个保存了数据库文件大小的txt文件,这样的做法导致了小智每天都要加班完成其他的工作,所以小智就想要用zabbix监控数据库文件的大小。

实验过程:

如图,下面是运行人员小智用查询语句把数据库的大小写入某个txt文件中

技巧 | 利用 Zabbix 监控数据库文件大小

第一步:获取数据库大小的数据 。(小智把所有数据库服务器上记录数据库大小的db .txt 文件,统一存在/tmp目录,/tmp/db.txt)

定义一个自定义键值,用来获取/tmp/db.txt的文件内容

技巧 | 利用 Zabbix 监控数据库文件大小

然后到zabbix的主机界面定义一个键值,用来获取db .txt 的内容

技巧 | 利用 Zabbix 监控数据库文件大小

记住,一定要选文本类型,因为如果文件中出现了空行,类型选字符,空行下面如果有内容,就会显示不出来。所以要学文本类型。

重启zabbix _agent 是配置生效

如果已经获取到数据库的大小了

技巧 | 利用 Zabbix 监控数据库文件大小

把获取的数据用javascript转换成json格式先。

result = value.split('n')

var result_array = new Array()

技巧 | 利用 Zabbix 监控数据库文件大小

获取的结果是:

{"data":[{"DBNAME":"admin","SIZE":"0.00GB"},{"DBNAME":"cadre","SIZE":"25.650GB"},{"DBNAME":"config","SIZE":"0.015GB"},{"DBNAME":"cspdb","SIZE":"13.988GB"}]}

技巧 | 利用 Zabbix 监控数据库文件大小

第二步:zabbix的预处理javascript+jsonpath做成自动发现规则

技巧 | 利用 Zabbix 监控数据库文件大小

图中的类型要用相关项目,因为这样才能用刚才获取数据库文件大小的键值的内容用json path+ javascript处理成自动发现规则的固定形式

技巧 | 利用 Zabbix 监控数据库文件大小

根据上面获取数据库文件的大小那个键值,我们可以看出来,运维人员小智存的数据格式是每行一个数据库名对应一个数据库的大小

提取数据库名

J sonpath的参数

$.data..['DBNAME']

J avascript的内容

技巧 | 利用 Zabbix 监控数据库文件大小

提取数据库名的javascipt

db = eval(value)

db_arr = db.length

result_array = new Array() 定义一个新的数组专门存放数据库名

技巧 | 利用 Zabbix 监控数据库文件大小

return返回的结果是

{"data":[{"{#DBNAME}":"admin"},{"{#DBNAME}":"cadre"},{"{#DBNAME}":"config"},{"{#DBNAME}":"cspdb"}}]

第三步:使用json path做成监控项 

技巧 | 利用 Zabbix 监控数据库文件大小

监控项原型使用刚才{#DBNAME}宏值做监控项名称,并且键值也必须要用到这个宏,不然到时候键值会冲突。

类型也要选相关项目,因为他要通过一开始获取数据库大小的键值,利用json path 提取数据库的大小。

技巧 | 利用 Zabbix 监控数据库文件大小

最后等待生成的监控项

技巧 | 利用 Zabbix 监控数据库文件大小

原题:Zabbix 使用 javascript+jsonpath 预处理动态生成监控项
如有任何问题,可点击文末 阅读原文 ,到社区原文下评论交流
觉得本文有用,请转发、点赞或点击“在看”,让更多同行看到


 资料/文章推荐:



http://www.talkwithtrend.com/Topic/3937


下载 twt 社区客户端 APP

技巧 | 利用 Zabbix 监控数据库文件大小

或到应用商店搜索“twt”