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