Zabbix 5.0:通过 LLD 方式自动化监控阿里云 RDS
之前做了RDS监控,由于 RDS 实例数量增多,手动添加的方式已经不够效率,故改为 LLD(Low-level discovery) 方式做监控。
什么是 LLD
LLD(Low-level discovery),即低级发现,提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法。例如,Zabbix 可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网络接口手动创建监控项。此外,可以配置 Zabbix 根据定期执行发现后的得到实际结果,来移除不需要的监控。
用户可以自己定义发现类型,只要它们遵循特定的 JSON 协议。
采集数据脚本
调用阿里云 Api,采集 RDS 相关数据,相关配置可参考之前的文章,采集脚本略。
需要将 Api 返回的数据处理,将字段修改为 {#MACRO}
形式的 LLD 宏,最后生成 json 格式的数据:
例如:
1 | [{ |
说明:
{#DBINSTANCEID}
:RDS 实例 ID{#DBNAME}
:RDS 实例名称
💡Tips:LLD 宏必须大写,否则会报错。
配置模板
新建模板,创建自动发现规则:
说明:
参数 | 说明 |
---|---|
名称 | 规则名称 |
类型 | 发现的检查类型 |
键值 | 可以是内置键值,也可以是自定义 |
更新间隔 | 执行发现的时间间隔 |
自定义时间间隔 | 非必选, 灵活:允许重定义默认更新间隔,调度:可以使监控项在特定时间或时间序列生效 |
资源周期不足 | 资源失效时间,若资源失效则删除,如果设置为“0”,将立即删除实体。不建议使用“0” |
创建监控原型:
创建触发器原型:
创建图形原型:
以此类推,把需要监控的项目都加上去。
查看效果:
总结
LLD 方式,大大减轻了人为添加监控告警的负担,RDS 实例的变更也不需要人为去增删监控,真正做到自动化监控。
但也带来一些问题,比如性能问题,实例越多,监控原型越多,同时执行的监控采集脚本进程就越多,服务器的负载压力越大,而且频繁调用阿里云Api也会带来一些费用成本。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 时间之旅!
评论