简单RestAPI获取硬件状态

2023-05-11 作者:

简单来说,我需要一个能从HA上直接浏览家里主路由的CPU温度的首屏,因为RK3399发热比较猛却只有被动散热。有人可能说,加个小风扇难度很大么?呃,具备Netgear R7000(博通方案)在夏天轻松面对75℃服役5年的经验,我觉得国货不妨一战。

所以这个小项目,其实提供了对运行在物理机上几乎任意Linux的cpu温度、磁盘余量、上电时间等参数的rest api获取。写的比较糙快猛,主要满足自己需求,所以莫要预期过高哈。

提供何种接口

随意运行一个http client,比如  curl http://[hostname]:9090/stats/[data_type]

data_type初期支持三种, du, temps, boot_time 分别代表磁盘用量,多个温度,和上电时间。然后就可以返回数据了。

如何安装

  • clone代码库,设置python3的虚拟运行环境,避免影响系统环境。
  • 根据 requirements.txt 安装所需依赖。
  • python entry.py 即可运行服务。
  • 使用curl、postman或者其他http client检查服务是否正常。
  • 可选 –  sys_stats_restful.service 内附这个文件可以帮你把服务做成Systemd持久化,支持开机启动。
  • 可选 –  to_be_placed_in_ha_configuration.yaml 这个文件可以帮你在HA上集成rest传感器用于收集和展示数据。

我的软硬件配置

  • 一块Tinker Board 2s,RK3399大小核,运行Armbian,内核版本 6.1.x #1 SMP PREEMPT aarch64 GNU/Linux 。
  • 物理机上开KVM虚拟化,从eth0口按VLAN分两个interface再建出wan、lan两个网桥,OpenWrt就可以得到虚拟的eth0、eth1各接一个网桥,物理机层面上则体现为单臂路由;然后外接Netgear VLAN switch转成多个物理接口。
  • 物理机的CPU和GPU温度可以直接命令行使用 sensors 查看,前提是安装了 apt install lm-sensors 。
  • 该服务可以直接部署在Armbian(物理机)上,我是折腾派,部署在lxc里,所以docker应该也不是问题,只要代码能直接获取到host系统的这些数据。预计KVM虚拟机上部署应该没戏,因为那个级别的隔离,虚拟机内的代码拿不到物理机这些数据。

2023-05-17更新:

这样在HA app上可直观看网络负载与“路由器”CPU温度的关系。如果想再参考室温影响,可以把弱电箱所在房间的温度也一起采集放上去,我目前24小时采集的两处室温都不在弱电箱附近,就不对比了。

可怜的弱电箱环境,刚脱离了发热大户R7000(博通方案)跟微温的AX6s(联发科方案)友好相处了一年,又来个瑞芯微家的电暖器…

 

 

原创文章,转载请注明: 转载自渔人小径

本文链接地址: 简单RestAPI获取硬件状态

打赏 PayPal

文章的脚注信息由WordPress的wp-posturl插件自动生成

打赏 赞(0)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

最近文章

分享

发表评论

电子邮件地址不会被公开。 必填项已用*标注