前言
楼主是用小马 V5 主机,部署 ESXI 虚拟化,一块 mstat SSD 装虚拟系统和一块 3.5英寸 2T的硬盘做数据盘。
由于没有做冗余,比较担心硬盘挂了不能提前知道,希望利用 HA 的自动化功能来帮我监控硬盘的 smart 数据。
经 huex 大佬点拨,我写了个 shell。
利用 esxcli esxtop smartctl(第三方) 等命令获取 esxi 中的内存 CPU 还有硬盘的 smart 信息,将信息通过 jq 命令生成 json。
最后放入 esxi 的 http 根目录,那么 homeassistant 就可以通过 RESTful Sensor 的方式获取 esxi 中的 json 数据,组成 sensor。
使用方法
- 开启 ESXI 的 SSH 连入。
- 上传 VIB 安装包 至 ESXI 存储内。
- 运行
esxcli software acceptance set --level=CommunitySupported
将软件包接受级别改成社区** - 运行
esxcli software vib install -v /vmfs/volumes/SSD2/monitoring-1.0.0-6.x86_64.vib -f
安装我做好的软件包,其中 SSD2 请修改为自己存储的名字。 - 运行
ps -c |grep "monitoring_value_to_json.sh" | grep -v grep
如果回显有返回的话证明程序正常运行。
[root@esxi:~] esxcli software vib install -v /vmfs/volumes/SSD2/monitoring-1.0.0-6.x86_64.vib -f
Installation Result
Message: Operation finished successfully.
Reboot Required: false
VIBs Installed: Neroxps_bootbank_monitoring_1.0.0-6
VIBs Removed:
VIBs Skipped:
[root@esxi:~] ps -c |grep "monitoring_value_to_json.sh" | grep -v grep
2815619 2815619 sh /bin/sh /opt/monitoring-tools/monitoring_value_to_json.sh
更新
1. 先用 kill 停止脚本运行。
2. 再使用 esxcli software vib update -v /vmfs/volumes/SSD2/monitoring-1.0.0-6.x86_64.vib -f
更新插件。
[root@esxi:~] ps -c |grep "monitoring_value_to_json.sh" | grep -v grep | awk '{print $1}'| xargs kill
[root@esxi:~] esxcli software vib update -v /vmfs/volumes/SSD2/monitoring-1.0.0-6.x86_64.vib -f
Installation Result
Message: Operation finished successfully.
Reboot Required: false
VIBs Installed: Neroxps_bootbank_monitoring_1.0.0-6
VIBs Removed: Neroxps_bootbank_monitoring_1.0.0-5
VIBs Skipped:
卸载
和更新一样,先 kill 再卸载。
[root@esxi:~] ps -c |grep "monitoring_value_to_json.sh" | grep -v grep | awk '{print $1}'| xargs kill
[root@esxi:~] esxcli software vib remove -n monitoring
Removal Result
Message: Operation finished successfully.
Reboot Required: false
VIBs Installed:
VIBs Removed: Neroxps_bootbank_monitoring_1.0.0-6
VIBs Skipped:
HA 配置
执行完以上安装过程后,你就可以通过 https://192.168.1.10/value.json 下载得到监控生成的 json 文件,这时候就可以参考 Template Sensor 编写 homeassistant 的配置了。
文末我会放上我的 home-assistant 配置作为参考。
更新日志
[1.0.0-7]
Fixed
- 固定硬盘容量为GB,取消原来用 df -h 获取后 HA 无法统计曲线的 bug
[1.0.0-6]
Added
- 添加
.Memory.Used_Pct
字段。
Fixed
- 将获取内存的方法从
esxtop
改为vsish -e get /memory/comprehensive
大大提高内存获取速度。 - 内存获取时间由 15分钟一次改为5秒一次,与 CPU 同步。
- JSON
Memory_Free_MByes
路径修改为Memory.Free_GB
,单位从MB
改为GB