Beszel 是一个轻量级的服务器监控平台,包含 Docker 统计信息、历史数据和警报功能。它拥有友好的 Web 界面、简单的配置,并且开箱即用。它支持自动备份、多用户、OAuth 身份验证和 API 访问。
功能
- 轻量级: 比主要解决方案更小,资源占用更少。
- 简单: 易于设置,无需公网暴露。
- Docker 统计: 跟踪每个容器的 CPU、内存和网络使用历史。
- 警报: 可配置 CPU、内存、磁盘、带宽、温度和状态的警报。
- 多用户: 用户管理自己的系统。管理员可以在用户之间共享系统。
- OAuth / OIDC: 支持多种 OAuth2 提供程序。可以禁用密码验证。
- 自动备份: 从磁盘或 S3 兼容的存储保存和恢复数据。
- REST API: 在您自己的脚本和应用程序中使用或更新您的数据。
架构
- Hub: 一个基于 PocketBase 构建的 Web 应用程序,提供用于查看和管理连接系统的仪表板。
- Agent: 在您要监控的每个系统上运行,创建一个最小的 SSH 服务器以将系统指标传递到中心。
部署
Beszel 部署可以分为 Hub 的部署和 Agent 的部署,官方提供二进制文件、脚本、容器等方案供选择。本教程采用二进制文件部署方案。
Hub 部署
下载与自己平台架构相符的二进制文件
cd /opt
mkdir beszel_linux
wget https://github.com/henrygd/beszel/releases/download/v0.9.1/beszel_linux_amd64.tar.gz
gunzip beszel_linux_amd64.tar.gz
tar xvf beszel_linux_amd64.tar
创建 systemd 服务
vim /etc/systemd/system/beszel.service
[Unit]
Description=Beszel Hub
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=3
User=root
WorkingDirectory=/opt/beszel_linux
ExecStart=/opt/beszel_linux/beszel serve --http "0.0.0.0:8090"
[Install]
WantedBy=multi-user.target
启动服务
systemctl daemon-reload
systemctl start beszel.service
systemctl enable beszel.service
skyline :: /opt/coder » systemctl status beszel.service
● beszel.service - Beszel Hub
Loaded: loaded (/etc/systemd/system/beszel.service; enabled; preset: enabled)
Active: active (running) since Sun 2025-01-19 19:37:18 CST; 2h 10min ago
Main PID: 3522 (beszel)
Tasks: 10 (limit: 9430)
Memory: 24.5M
CPU: 4.113s
CGroup: /system.slice/beszel.service
└─3522 /opt/beszel_linux/beszel serve --http 0.0.0.0:8090
Jan 19 19:37:18 skyline systemd[1]: Started beszel.service - Beszel Hub.
Jan 19 19:37:18 skyline beszel[3522]: 2025/01/19 19:37:18 Server started at http://0.0.0.0:8090
Jan 19 19:37:18 skyline beszel[3522]: ├─ REST API: http://0.0.0.0:8090/api/
Jan 19 19:37:18 skyline beszel[3522]: └─ Dashboard: http://0.0.0.0:8090/_/
Agent 部署
访问 http://127.0.0.1:8090/ 注册账户并登录。
- 点击
Add System
Docker
或Binary
二选一- 拷贝对应的安装指令,下面选择的是
Binary
安装指令 - 在
Name
Host/IP
填写自己机器的信息
在需要监控的服务器上执行安装 Agent 指令
curl -sL https://raw.githubusercontent.com/henrygd/beszel/main/supplemental/scripts/install-agent.sh -o install-agent.sh && chmod +x install-agent.sh && ./install-agent.sh -p 45876 -k "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILL1qN+Q2Aw8gLrV//7uVxyOz0nzruCyfGarTfjt7PRA" --china-mirrors