beszel 轻量级服务器监控中心
Beszel 是一款开源的轻量级服务器资源监控工具,能够对服务器的关键资源展开实时监控,同时会记录下详实的历史数据。
它以直观的界面展现 CPU、内存、磁盘 I/O 等重要指标,还能对 Docker 容器的运行状态进行监控,帮助用户更清晰地把握容器的性能状况。
此外,Beszel 拥有告警功能,一旦系统出现异常,可及时向管理员发出提醒,为系统的稳定运行保驾护航。凭借其简易的安装和配置流程,Beszel 特别适合中小型服务器的日常监控需求,能为用户带来极大的便利。
主要特性
- 轻量级: 比主流解决方案体积更小,资源占用更少。
- 简单: 易于设置,无需暴露于公共互联网。
- Docker 统计: 跟踪每个容器的 CPU、内存和网络使用历史记录。
- 告警: 可针对 CPU、内存、磁盘、带宽、温度和状态配置告警。
- 多用户: 支持每个用户管理自己的系统。管理员可在用户间共享系统。
- OAuth / OIDC: 支持多种 OAuth2 提供商。可禁用密码认证。
- 自动备份: 从磁盘或兼容 S3 的存储中保存和恢复数据。
- REST API: 在您自己的脚本和应用程序中使用或更新数据。
目前还有以下问题:
- 被控无法修改,当你在主控界面天街被控以后,无法修改.可能是由于ssh密钥通信的原因.但是连被控的名字都无法修改就有点过分了.
- IPV6支持不好,目前github里面有不少人提了这个问题.作者说会在下个版本修复这个问题.
- 多磁盘支持不好,目前作者介绍的比较少,可以通过手动办法解决:https://github.com/henrygd/beszel?tab=readme-ov-file#monitoring-additional-disks-partitions-or-remote-mounts
- 自定义功能少,目前来说在设置页里面无法修改皮肤/站点名字/图标等,有需要的可以进程序自己修改,不过后续升级就会改回来的.
- 不支持游客访问,可以设置一个只读的账号.
- 少了个流量总共使用了多少监控功能
当然,由于这些缺点也导致了 Beszel 有着超高的易用性,反正就是安装和使用都很简单的意思.
架构
Beszel 由两个主要组件构成:Hub(中心处理节点)和Agent(代理节点)。
Hub:
是一个基于 PocketBase 构建的 Web 应用程序,为查看和管理已连接的系统提供一个仪表盘。
- 功能: Hub 作为 Beszel 的中心服务器,用于聚合和展示监控数据。它接收从多个系统发来的数据,并在界面上显示服务器资源使用情况,如 CPU、内存、磁盘 I/O 等历史数据。
- 部署方式: 可以通过单个二进制文件或 Docker 容器运行。Hub 不需要暴露在公共互联网中,增加了安全性。
Agent:
主要安装在你需要监控的服务器上,它会通过SSH方式将健康的数据传输到你的HUB系统汇总。
- 功能: Agent 是安装在被监控系统上的轻量级程序。它负责收集服务器的资源使用情况,并将数据发送给 Hub。Agent 还支持监控 Docker 容器,跟踪容器的 CPU、内存、网络使用情况。
- 部署方式: Agent 可以使用 Docker 容器或单个二进制文件进行安装,支持通过简单的环境变量配置多个文件系统和网络接口。
安装
安装HUB
中心可以通过单独的二进制文件或 Docker / Podman 容器运行。
推荐直接使用 docker-compose.yml启动
详细的 docker-componse.yml
配置信息如下:
此配置通常可以直接使用,但在 Web 界面添加系统时需要执行以下步骤:
- 使用您的公钥更新 KEY 值,然后再次运行 docker compose up -d 以重新启动代理
- 将 host.docker.internal 用作 主机/IP。 请勿使用 localhost 或 127.0.0.1
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel
restart: unless-stopped
extra_hosts:
- host.docker.internal:host-gateway
ports:
- 8090:8090
volumes:
- ./beszel_data:/beszel_data
beszel-agent:
image: henrygd/beszel-agent:latest
container_name: beszel-agent
restart: unless-stopped
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
PORT: 45876
# 请勿删除密钥周围的引号
KEY: '使用“添加系统”对话框复制的公钥进行更新'
初始化管理员
启动中心 (hub) 后,导航至 http://localhost:8090 或您选择的地址。
系统将提示您创建帐户:
配置您的第一个系统
单击右上角的 添加系统 (Add System) 按钮以打开系统创建对话框。本示例中我们使用的是 localhost,但您也可以使用远程代理。
在启动代理之前,请勿点击对话框中的 添加系统 (Add System) 按钮。
启动代理
从 添加系统 (Add System) 对话框复制
docker-compose.yml
内容。创建一个目录来存储代理的
docker-compose.yml
文件。mkdir beszel-agent cd beszel-agent
创建一个名为 docker-compose.yml 的文件,并粘贴 添加系统 (Add System) 对话框中提供的内容。
vim docker-compose.yml
启动代理
docker compose up -d
完成添加系统
现在代理正在运行,请单击对话框中的 添加系统 (Add System) 按钮。
您将在表格中看到新系统。如果它变为绿色,则表示一切正常。
如果它变为红色,请查看 官方手册 页面。
其他功能
在主界面选择服务器右边的铃铛可以选择告警,在线/cpu/内存/磁盘/流量/温度等都可以设置触发器,目前通知方式支持Webhook和邮件(需要自己设置发邮件服务器)
点击主界面右上角的那个小人可以选择其余的功能,比如日志和备份等功能,那样子会跳转到另一个面板界面,和主界面是一样的邮箱账号和密码,可以自己进行设置.备份/存储到S3和OAuth2 登录