Zabbix监控Mysql优化
一、实现思路
由于之前监控mysql的模板分多套,主从和不同的端口都要有不同的模板,并且监控是通过zabbix agentd 方式获取数据。每调用一个监控项的key就要查询一次数据库,增加了数据库的压力,改进后的mysql监控,通过zabbix trapper方式获取数据,agnet端主动将监控mysql所需的数据发给server,不需server主动获取,减轻了server端的压力。并且sender方式可以发送一个文件给server端,通过脚本执行命令将所需查询的数据库的数据的命令简化合并,只需简单数条,就可获得所需监控数据并传给指定文件通过sender方式发送。最后通过定义一个监控项key定期执行一次脚本(脚本内容为收集数据,发送数据)。实现后监控mysql不同主从库只需一套模板,并通过前端页面传入参数,端口动态。
二、具体实现步骤
1. agent 端配置
上图为agent配置文件中关于mysql的自定义参数,将其替换为如图1内容。
图1
图1中定义脚本内容为:
图2
以上agent端配置完成。
2.server端页面配置
为了优化方案操作的简便,在将原来使用的模板导出后直接在模板上修改。
(1)原来的监控模板监控项如图3:
图3
(2)改进后的监控模板监控项(其中mysqltrapper为调用采集数据脚本的key,agent方式,其它为trapper方式)如图4:
图4
图5(其他端口的情况)
(3)触发条件:
图6
三、回退方案
如修改后并不能获取到数据,或其他原因导致监控不成功。做如下步骤恢复到为修改前的状态。
(1)图1内容替换回原来内容。
(2)图4修改回图3。
四、存在的问题
(1)修改过程中是否会引起mysql报警,在自己测试过程中,因为修改过程中server将收不到值,不会引起触发条件报警。
五、动态发现mysql端口测试
通过discovery功能,动态发现监听mysql的端口,动态传参。
发现端口脚本:
图7
执行结果:
图8
以下两图为配置discovery rule和监控项key:
图9
图10
转载于:https://my.oschina.net/ydsakyclguozi/blog/382082