Openwrt & netdata 开启温度监控

内外网找了半天,最后自行研究解决,记录一下。

不显示的原因

首先netdata监控温度的插件有2个,老的chart.d下的sensors和新的python.d下的sensors,官方推荐用新的python.d。

python.d的原理大概是sensors指令,chart.d的原理是找/sys/路径,我使用的openwrt其实两者都可以实现,老的openwrt可能不能sensors指令,新的可以了。

但是测试了两个方式都死活不出来,参考了 2016年的issue ,最后在一个比较新的 issue 下,发现有命令可以debug具体sensors模块看为啥拿不到数据,才发现问题所在:

chart.d方式错误原因:没有timeout指令

1

2

# /usr/lib/netdata/plugins.d/charts.d.plugin sensors

2021-10-25 23:08:03: charts.d: WARNING: main: command 'timeout' is not found in /usr/sbin:/usr/bin:/sbin:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin.

python.d方式错误原因:没有yaml模块

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# /usr/lib/netdata/plugins.d/python.d.plugin sensors

Traceback (most recent call last):

  File "/usr/lib/netdata/python.d/python_modules/bases/loaders.py", line 13, in <module>

    from yaml import SafeLoader as YamlSafeLoader

ModuleNotFoundError: No module named 'yaml'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "/usr/lib/netdata/plugins.d/./python.d.plugin", line 69, in <module>

    from bases.loaders import load_config

  File "/usr/lib/netdata/python.d/python_modules/bases/loaders.py", line 17, in <module>

    from yaml import SafeLoader as YamlSafeLoader

ModuleNotFoundError: No module named 'yaml'

知道真相的我眼泪掉下来,看来解决问题还是得找尽量源头的debug方式来先找出问题,瞎测试毫无意义。

因为本身对python不熟,对openwrt下的python怎么装模块更加不熟,所以还是用老的chart.d插件。

解决方案

1、安装timeout:opkg install coreutils-timeout

2、进入/etc/netdata

3、使用./edit-config charts.d.conf来编辑配置文件,这个edit-config等于是一个配置工具能够从/usr/lib拉取默认配置过来,在配置里最后加入sensors=force。不加一定不会有温度,原因未知。

4、用/usr/lib/netdata/plugins.d/charts.d.plugin sensors测一下,如果有一直跳数据出来,就说明成功了。

5、Openwrt的版本默认可能关闭了chart.d插件,编辑/etc/netdata/netdata.confcharts.d = no改为charts.d = yes或直接注释掉那一行,若没有这行则不需要

6、重启netdata: /etc/init.d/netdata restart

效果

Openwrt & netdata 开启温度监控

更好的解决方案

因为和Netdata的开发成员沟通后,表示python效率会更高,虽然用chart方式也没问题。最后还是安装了python-yaml,也可以直接解决:opkg install python3-yaml

不要忘记编辑配置文件把python插件两个开关打开:

1、/etc/netdata/netdata.conf 中 python.d = no 改为 python.d = yes或直接注释掉那一行,同样如果没有就不理会

2、用 ./edit-config python.d.conf创建配置文件并把里面的enabled改为yes

效果

Openwrt & netdata 开启温度监控

2022.09.17

今天在一个更新的openwrt上开启,发现连python都没有,安装python3-yaml会自动安装python,无法直接测温,

还需安装: opkg install python3-logging python3-ctypes lm-sensors 方可正常测出温度~

在路由器上安装 Docker 是一项相对复杂的任务,因为大多数家用路由器(如 TP-Link、华硕等)通常运行的是嵌入式系统,资源有限且操作系统封闭性强。不过,对于某些具备较高开放性的设备(例如支持 OpenWrt 或 Padavan 系统的路由器),是可以通过刷写固件的方式实现 Docker 的部署。 ### 1. 判断路由器是否支持 Docker 并非所有路由器都适合或能够运行 Docker。首先需要确认以下几点: - 路由器芯片架构是否为 x86、ARM 或其他常见架构。 - 是否有足够的内存和存储空间(Docker 至少需要 256MB 内存和数 MB 存储)。 - 是否支持第三方固件(如 OpenWrt、Padavan、DD-WRT 等)。 如果路由器本身基于 Linux 内核,并支持 USB 接口挂载存储,则更有可能成功部署 Docker。 ### 2. 安装第三方固件(如 OpenWrt) 若原厂固件不支持 Docker,需考虑刷入 OpenWrt 等可扩展固件: #### 安装步骤简要如下: 1. **备份原始固件**,以防刷机失败。 2. 访问 [OpenWrt 官网](https://openwrt.org/) 查找对应型号的固件。 3. 使用路由器管理界面或 TFTP 工具进行刷写。 4. 登录 OpenWrt 系统并配置网络。 ### 3. 安装 Docker 环境 OpenWrt 原生并不包含 Docker 支持,但可通过安装 `docker` 和 `docker-compose` 包来实现: ```bash opkg update opkg install docker docker-compose ``` 之后启动 Docker 服务: ```bash /etc/init.d/docker start ``` ### 4. 启动容器并进行交互 启动一个容器后,若希望与容器进行交互,可在命令中加入 `-i` 参数,以保持标准输入开启状态[^1]: ```bash docker start &lt;container_id&gt; -i ``` ### 5. 配置网络与持久化存储 Docker 在启动时会创建一个名为 `docker0` 的虚拟网桥,默认地址为 `172.17.0.1`,每个容器将被分配 IP 地址,如 `172.17.0.2`、`172.17.0.3` 等,容器之间可通过该网络互相通信[^2]。 为确保数据持久化,建议使用 `-v` 参数将宿主机目录挂载到容器中: ```bash docker run -d -v /mnt/sda1:/data myapp ``` ### 6. 实际应用示例:监控路由器硬件信息 如引用[3]所述,在 TP-Link XDR6088 上安装 Docker 并部署 netdata 容器,可以实现对 CPU 温度、负载等信息的监控,并接入 Home Assistant 进行可视化展示。 示例命令如下: ```bash docker run -d --name=netdata \ -p 19999:19999 \ -v /proc:/host/proc:ro \ -v /sys:/host/sys:ro \ --cap-add=SYS_PTRACE \ netdata/netdata ``` 访问 `http://&lt;路由器IP&gt;:19999` 即可查看监控面板。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值