admin 管理员组

文章数量: 887019

        夏天到了,路由器明显变热,想监控下主路由的温度,奈何TP的app只有速度显示,而且TP的路由开放性一直不强,不过偶然看到这篇文章:关于在6088官方docker中获取硬件温度数据的一些尝试与疑问,决定尝试一下。

        先放效果图:

        能够看到CPU、内存、温度和速度等信息,还算比较满意。       

        首先是环境:TL-XDR6088 1.0.31(该版本包含新版本的docker,与6680、7280、10390的功能一致)

         插好U盘在路由管理中打开Doker功能,随后使用ip:1180进入doker管理界面

         在镜像拉取界面拉取netdata

       

        如果由于网络环境无法直接拉取,可以在能够拉取的环境下拉取下来,使用docker save导出镜像,再到镜像管理中导入,注意需要拉取aarch64(arm64)架构的镜像,可参考使用 docker pull 拉取特定架构容器镜像

导入镜像后在容器部署中进行部署即可。

很快即可部署成功,之后通过路由ip:19999即可访问

          但是此时是没有温度监控数据的,需要进容器管理-终端命令中修改两个文件(参考:Netdata 添加 温度检测)

su #root权限
cd /etc/netdata 
./edit-config charts.d.conf
加入sensor=force

cd /etc/netdata 
./edit-config python.d.conf
加入sensor: no

        保存重启后即可看到温度信息
      

        由于6088的内存仅有512M,建议参考zabbix、netdata和glances,做最简单的系统资源监控文章中netdata部分进行优化,优化后在镜像管理-性能监控中查看CPU占用在1%、内存60M左右。

        如果只需要在netdata中监控做到这里即可,需要加入HA可以使用相应的netdata集成在configuration.yaml中加入。可参考以下代码,data_group等可能不同,可参考官方文档自行查找修改。

sensor:
  - platform: netdata
    host: "路由器ip"     
    port: "端口"
    name: TP-XDR6088
    resources:
      temperature:
        data_group: sensors.temp_thermal_zone0_thermal_thermal_zone0_thermal_zone0
        element: sys_devices_virtual_thermal_thermal_zone0_temp
        icon: mdi:thermometer
      cpu_idle:
        data_group: system.cpu
        element: idle
        icon: mdi:cpu-64-bit
      ram_used:
        data_group: system.ram
        element: used
        icon: mdi:memory

        由于传感器数据为cpu空闲百分比以及内存用量,需要再通过template集成对传感器数据进行计算转化添加unique_id,可参考官方文档在configuration.yaml中转化为cpu使用百分比及内存使用百分比。(以下代码供参考)

template:
  - sensor:
      - name: "xdr_6088_temp"
        unique_id: tp_xdr_6088_temp
        unit_of_measurement: "℃"
        state: "{{ states('sensor.tp_xdr6088_temperature') | float }}"  
        icon: mdi:thermometer
        
      - name: "xdr_6088_cpu_useage"
        unique_id: tp_xdr_6088_cpu_useage
        unit_of_measurement: "%"
        state: "{{ 100 - states('sensor.tp_xdr6088_cpu_idle') | float }}"
        icon: mdi:cpu-64-bit
        
      - name: "xdr_6088_ram_useage"
        unique_id: tp_xdr_6088_ram_useage
        unit_of_measurement: "%"
        state: "{{ (states('sensor.tp_xdr6088_ram_used') | float / 512) * 100}}"  
        icon: mdi:memory
      

        保存重启HA后即可在设备实体中看到温度、cpu、内存等实体信息

        由于netdata只能监控容器内的网络情况,路由实际网络需要通过UPnP/IGD集成添加:

        最后根据自己的喜好做成卡片就行啦,开始的效果图中使用的图表是mini-graph-card。

本文标签: 路由器 监控设备 信息 tplink HomeAssistant