轻量级监控服务器Beszel部署与邮件告警配置
轻量级监控服务器Beszel部署与邮件告警配置
前言
在日常运维中,我们需要一套轻量、高效、告警及时的监控系统来掌握服务器的健康状态。Prometheus+Grafana虽然强大,但对于开发/测试场景来说略显笨重。Beszel是一款开源监控工具,它采用Hub‑Agent架构,资源占用极低,支持CPU、内存、磁盘、网络、温度等指标,并且内置了邮件和Webhook告警功能。
本文在一台中心机器上部署Beszel Hub,在多台被监控机器上部署Agent,并通过SMTP配置邮件告警,最后设置CPU使用率超过80%等实用告警规则。
一、Beszel简介
- 项目地址:https://github.com/henrygd/beszel
- 架构:Hub(中心端)+Agent(采集端)
- 特点:
- 二进制单文件部署,无外部依赖
- Web界面美观,实时图表
- 支持Docker和二进制两种安装方式
- 告警支持SMTP(邮件)和Shoutrrr(Slack、Telegram等)
- 自动更新(可选)
二、环境准备
假设我们有如下两台虚拟机:
| 主机名 | IP地址 | 角色 |
|---|---|---|
| host01 | 192.168.200.100 | Hub+Agent(自己也监控) |
| host02 | 192.168.200.101 | Agent(仅被监控) |
操作系统:CentOS/Rocky Linux/Ubuntu/Debian均可。
以下命令均需root权限执行。
三、部署Beszel Hub
3.1 一键安装脚本
Beszel官方提供了一个自动化安装脚本,支持systemd服务注册、自动创建专用用户等。我们使用--china-mirrors参数以解决GitHub访问慢的问题。
curl -sL https://get.beszel.dev/hub -o /tmp/install-hub.sh && \
chmod +x /tmp/install-hub.sh && \
/tmp/install-hub.sh -p 8090 --china-mirrors
参数说明:
-p 8090:指定Hub Web端口(默认8090)--china-mirrors:使用国内代理加速下载(如https://gh.beszel.dev)
脚本执行过程:
- 检测系统架构(amd64/arm64/arm)
- 安装必要依赖(tar,curl)
- 创建
beszel用户 - 下载最新版
beszel二进制到/opt/beszel/ - 创建systemd服务
/etc/systemd/system/beszel-hub.service - 启动服务并设置开机自启
3.2 启动与验证
systemctl enable beszel-hub.service --now
systemctl status beszel-hub.service
输出应包含active(running)。此时通过浏览器访问http://192.168.200.100:8090即可看到Beszel登录界面。
3.3 初始化管理员账户
首次访问需要注册一个管理员账号(邮箱、密码)。请牢记该密码,后续配置告警和添加主机都需要登录。
四、部署Beszel Agent
4.1 在Hub上生成Agent密钥
登录Beszel Web界面,点击右上角“Add System”按钮:
- Name:输入主机名,如
host01 - Host/IP:填写Agent机器的IP(这里填
192.168.200.100或127.0.0.1) - Port:默认
45876
点击“复制 Linux 安装命令”类似下面的命令:
curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && chmod +x /tmp/install-agent.sh && /tmp/install-agent.sh -p 45876 -k "ssh-ed25519AAAAC3NzaC1lZDI1NTE5AAAAILlJEN/vQ8pKQitHm5bE1TTY9U+k/Wdb7FmhEpJo+Vp2" -t "593-6612bc041ec-5c2-04da119237" -url "http://192.168.200.100:8090" --china-mirrors
其中-k后面的字符串是公钥,-t后面的是令牌(Token),-url是Hub的访问地址。
4.2 在被监控主机上执行安装命令
分别在host01和host02上执行安装命令。脚本会自动:
- 创建
beszel用户 - 下载
beszel-agent二进制到/opt/beszel-agent/ - 创建systemd服务
beszel-agent.service - 启动Agent并设置开机自启
4.3 验证Agent状态
systemctl status beszel-agent.service
如果一切正常,稍等几秒钟刷新Beszel Web界面,即可看到host01和host02出现在仪表盘上,并显示实时的CPU、内存、磁盘图表。
五、配置SMTP邮件告警
Beszel默认使用系统sendmail发送邮件,但在实际环境中sendmail配置复杂且容易被拒收。我们直接使用Beszel内置的SMTP配置,以QQ邮箱为例。
5.1 获取邮箱授权码
登录QQ邮箱网页版→设置→账户→POP3/IMAP/SMTP服务→开启SMTP服务,并生成授权码(例如abcdefghijklmnop)。注意:此授权码将作为SMTP密码使用,不是你的QQ登录密码。
5.2 在Beszel中配置SMTP
- 登录Beszel Web界面,点击左下角的齿轮图标(设置)。
- 选择“通知”选项卡。
- 进入“Mail settings”后,填写以下信息:
| 字段 | 示例值 |
|---|---|
| 发件人邮箱 | your_qq_number@qq.com |
| SMTP主机 | smtp.qq.com |
| 端口 | 587 |
| 用户名 | your_qq_number@qq.com |
| 密码 | 上面生成的授权码(不是QQ密码) |
保存后,点击“发送测试通知”,检查你的收件箱是否收到测试邮件(可能进入垃圾箱)。
5.3 设置告警接收邮箱
在设置-通知-电子邮件通知中,可以填写默认接收告警的邮箱地址。
六、添加告警规则
Beszel默认没有预置任何告警规则,需要我们手动创建。
| 警报类型 | 阈值 | 持续时间 | 说明 |
|---|---|---|---|
| CPU | 80% | 5分钟 | 避免短时峰值误报 |
| 内存 | 80% | 5分钟 | Linux缓存通常占用高,85%比较合理 |
| 磁盘 | 80% | 5分钟 | 重点关注数据盘,系统盘可设为85% |
| 1/5/15分钟平均负载 | CPU核心数*1.5 | 5分钟 | 系统负载过高触发告警 |
| 带宽(发送/接收) | 100MB/s | 1分钟 | 根据实际带宽调整,默认滑块上限125MB/s |
带宽单位:Beszel中带宽单位是MB/s(兆字节/秒),1MB/s=8Mbps。如果服务器带宽超过1Gbps,Web界面滑块无法满足,需要通过内置PocketBase后台手动修改
value字段。

浙公网安备 33010602011771号