zabbix 监控EMC存储
环境:
操作系统: centos stream 8
zabbix: zabbix6.0LTS+nginx+mysql
EMC存储:unity 400 , unisphere 5.0.6
监控方式:通过搜索得知,EMC存储不支持snmp监控(可能支持snmp trap, 没有深究)。 unisphere支持RESTFul API 接口,该接口默认开启, 可使用该接口获取监控数据。网上有人出了该接口监控的python脚本和zabbix模板。
zabbix库中的EMC监控模板:https://github.com/zabbix/community-templates/tree/main/Storage_Devices/EMC/template_emc_unity
该地址只有模板,没有python脚本,无法独立使用。
经过搜索,找到下面项目,应该是模板原作者创建的,项目文件中也有zabbix模板,和zabbix库中的模板估计相同,我用的zabbix库中的模板。这个项目的readme.md 文件讲了脚本的用法,文档中“unity_get_stateNEW.py”脚本不存在,应该是写错了,用“unity_get_state.py”替换可以执行。
EMC监控项目地址:GitHub - aklyuk/zabbix-emc-unity: Python script for monitoring EMC Unity strages
上面用到的文件分享:
链接:https://pan.baidu.com/s/18oNUPhejwraF_-XZgU-x9A
提取码:z6mz
监控配置:
- zabbix web前端导入监控模板“template_emc_unity.yaml”,添加主机配置,关联该模板,注意:主机名和可见名称必须一致,不要单独修改可见名称,会导致无法正确关联脚本发送给zabbix-server的数据。
配置用户名和密码,用户名和密码可以在emc存储上添加一个只读用户(操作员是只读权限,不推荐直接用admin)
2 检查配置文件/etc/zabbix/zabbix_agentd.conf中的ServerActive=xxx.xxx.xxx.xxx (127.0.0.1或者zabbix-server的地址)
3 安装zabbix-sender
dnf install zabbix-sender
4.安装python3
dnf install python3
5.上传“unity_get_state.py”至路径/usr/lib/zabbix/externalscripts , 必须是该路径,zabbix模板中调用脚本时从该路径执行。修改权限,给zabbix用户执行权限,模板调用时以zabbix用户执行。
6.测试脚本执行,返回0即正常,日志在/tmp/unity_state.log,确认zabbix用户有该日志的读写权限
./unity_get_state.py --api_ip='X.X.X.X' --api_port='443' --api_user='zabbix' --api_password='PASSWORD' --storage_name="zabbix web前端配置的主机名" --discovery
7.以上配置完成,zabbix页面就能显示数据了。