前提:
-->实现的流程步骤:
-->zabbix上超融合监控展示结果
所需软件:1、zabbix 2、python 3、node.js环境
所需资料:1、超融合平台API接口(通过厂家获取)
关联zabbix知识点:1、zabbix监控类型使用外部检查 2、zabbix采集后数据预处理,使用功能:JSONPath、javascrip 3、zabbix自动发现规则
一、解析文件进行API获取信息开发
1、超融合的公钥内容:
url连接:https://ip地址//vapi/json/public_key
2、用公钥把监控用户的密码加密(参考API文档):
需要让厂家提供2份文件,ras.js、encrypt.js
3、解析超融合平台API文件,找到涉及到相关API功能,
本次开发4个API接口,分别是获取超融合基本状态,存储信息,外部存储信息(具体可查看API接口说明文档)
①、超融合登录认证

②、获取超融合详情信息

③、获取超融合虚拟存储信息

④、获取超融合其它存储信息

--> 开发注意:
1、登录后seesion持久化问题,当前是把session相关参数保存文件,如果不保留会导致超融合记录每一分钟登录日志,把重要日志刷掉 2、首次执行监控脚本时,其它脚本需要判断seesion参数存在才会执行,不然会导致首次执行脚本zabbix监控参数会报错
二、制作zabbix模板
1、基础信息监控类型:
①、新增主监控项,监控类型选择 外部检查,键值为 脚本 + 参数方式传参
脚本执行:monitor_sangfordevinfo.py[{HOST.IP},{$SANGFOR.USERNAME},{$SANGFOR.PASWWORD},{$SANGFOR.HOSTID}]

②、新增子监控项,监控类型选项 相关项目,主要项选项 主监控项

③、主监控项返回的数据是json格式数据,需要从json数据获取对应key值
脚本返回的数据(使用在线json格式化):在子监控项,选择预处理,使用jsonpath方式对key进行取证
2、存储监控类型:
①、新增主监控项,监控类型选择 外部检查,键值为 脚本 + 参数方式传参
脚本执行:monitor_sangforother.py[{$SANGFOR.IP},{$SANGFOR.USERNAME},{$SANGFOR.PASWWORD}]

②、新增自动发现规则,解决多个存储类型监控参数

③、主监控项返回数据包含多个类型的存储和多个存储空间信息
使用jsonpath的正则表达式对iscsi类型存储信息获取
获取到的iscsi类型存储盘信息
对上述数据使用JavaScript脚本添加索引后
执行完JavaScript脚本情况
zabbix自动发现后的监控项
三、制作zabbix报警项
1、添加触犯器:
当虚拟存储剩余空间:sangfor.hci.volumes.ratio 剩下20%
四、总结
1、超融合获取监控脚本还有优化的空间,如存储空间存在多台设备收集,改进思路:只需要输入集群IP就能自动采集所有集群下设备情况
2、本次难点是掌握zabbix监控项值预处理方式,对超融合监控采集后数据才能转换处理存储,
3、只要能采集数据,zabbix都能完美实现监控。最后,zabbix功能很强大,等待我们进一步探索!
感谢作者投稿!
延伸阅读