轻量级监控服务器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

脚本执行过程:

  1. 检测系统架构(amd64/arm64/arm)
  2. 安装必要依赖(tar,curl)
  3. 创建beszel用户
  4. 下载最新版beszel二进制到/opt/beszel/
  5. 创建systemd服务/etc/systemd/system/beszel-hub.service
  6. 启动服务并设置开机自启

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.100127.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 在被监控主机上执行安装命令

分别在host01host02上执行安装命令。脚本会自动:

  • 创建beszel用户
  • 下载beszel-agent二进制到/opt/beszel-agent/
  • 创建systemd服务beszel-agent.service
  • 启动Agent并设置开机自启

4.3 验证Agent状态

systemctl status beszel-agent.service

如果一切正常,稍等几秒钟刷新Beszel Web界面,即可看到host01host02出现在仪表盘上,并显示实时的CPU、内存、磁盘图表。


五、配置SMTP邮件告警

Beszel默认使用系统sendmail发送邮件,但在实际环境中sendmail配置复杂且容易被拒收。我们直接使用Beszel内置的SMTP配置,以QQ邮箱为例。

5.1 获取邮箱授权码

登录QQ邮箱网页版→设置→账户→POP3/IMAP/SMTP服务→开启SMTP服务,并生成授权码(例如abcdefghijklmnop)。注意:此授权码将作为SMTP密码使用,不是你的QQ登录密码。

5.2 在Beszel中配置SMTP

  1. 登录Beszel Web界面,点击左下角的齿轮图标(设置)。
  2. 选择“通知”选项卡。
  3. 进入“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字段。

posted @ 2026-04-22 17:00  wanghongwei-dev  阅读(165)  评论(0)    收藏  举报