Beszel 是一个轻量级的分布式系统监控工具,适合一些简单的系统资源监控任务。它分为 HUB 和 Agent两个部分。Agent 部署在小规模的各种机器上收集信息,HUB 则负责将各个 Agent 收集的信息整理到一个数据库【PocketBase】中,并在网页端展示。
我的 OpenWrt 路由器部署了一些像 Nextcloud 这种吃资源的服务,需要一个监控工具来查看资源占用情况。感觉 Beszel 挺符合需求,于是在这里分享一下如何将HUB和Agent部署在同一台机器上。
前提条件
- OpenWrt 安装了 Docker
- 使用
docker network create --subnet 172.20.20.0/24 --gateway 172.20.20.1 br-2020创建自定义接口br-2020。 - 反向代理,这里以 Cloudflare 为例子
安装和部署
- SSH 登陆 OpenWrt,先安装 HUB 端。其中
CSP变量的作用是允许 Beszel 嵌入在其他网站的框架内。我希望利用 Nextcloud 的【External sites】插件实现嵌入访问。来源
1 |
|
- 完成后,打开浏览器。在 Cloudflare Zero Trust Tunnels 中添加一条 Tunnel,绑定域名
monitor.example.com。我这里就不多解释了,可以看【OpenWrt配置Cloudflare隧道】这篇文章。
注意:由于后台数据库【PocketBase】的限制,用 Cloudflare 做反向代理必须在该隧道的 HTTP设置 中启用 禁用分块编码。否则注册账号后会被强制退出无法正常登陆。来源
- 打开
monitor.example.com,注册账号并进入面板后点击右上角【Add System】添加服务器,填入【Host/IP】,点击复制公钥和令牌。
【Name】OpenWrt
【Host/IP】/beszel_socket/beszel.sock
【Public Key】ssh-ed25519 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
【Token】xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- SSH 登陆 OpenWrt,然后安装 Agent 端。
1 |
|
- 回到
monitor.example.com,点击添加,就能正常看到 OpenWrt 的系统资源信息了。