
前言在日常运维中我们需要一套轻量、高效、告警及时的监控系统来掌握服务器的健康状态。PrometheusGrafana虽然强大但对于开发/测试场景来说略显笨重。Beszel是一款开源监控工具它采用Hub‑Agent架构资源占用极低支持CPU、内存、磁盘、网络、温度等指标并且内置了邮件和Webhook告警功能。本文在一台中心机器上部署Beszel Hub在多台被监控机器上部署Agent并通过SMTP配置邮件告警最后设置CPU使用率超过80%等实用告警规则。一、Beszel简介项目地址https://github.com/henrygd/beszel架构Hub中心端Agent采集端特点二进制单文件部署无外部依赖Web界面美观实时图表支持Docker和二进制两种安装方式告警支持SMTP邮件和ShoutrrrSlack、TG等自动更新可选二、环境准备假设我们有如下两台虚拟机主机名IP地址角色host01192.168.200.100HubAgent自己也监控host02192.168.200.101Agent仅被监控操作系统CentOS/Rocky Linux/Ubuntu/Debian均可。以下命令均需root权限执行。三、部署Beszel Hub3.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 Agent4.1 在Hub上生成Agent密钥登录Beszel Web界面点击右上角“Add System”按钮Name输入主机名如host01Host/IP填写Agent机器的IP这里填192.168.200.100或127.0.0.1Port默认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/vQ8pKQitHm5bE1TTY9Uk/Wdb7FmhEpJoVp2 -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_numberqq.comSMTP主机smtp.qq.com端口587用户名your_qq_numberqq.com密码上面生成的授权码不是QQ密码保存后点击“发送测试通知”检查你的收件箱是否收到测试邮件可能进入垃圾箱。5.3 设置告警接收邮箱在设置-通知-电子邮件通知中可以填写默认接收告警的邮箱地址。六、添加告警规则Beszel默认没有预置任何告警规则需要我们手动创建。警报类型阈值持续时间说明CPU80%5分钟避免短时峰值误报内存80%5分钟Linux缓存通常占用高85%比较合理磁盘80%5分钟重点关注数据盘系统盘可设为85%1/5/15分钟平均负载CPU核心数*1.55分钟系统负载过高触发告警带宽发送/接收100MB/s1分钟根据实际带宽调整默认滑块上限125MB/s带宽单位Beszel中带宽单位是MB/s兆字节/秒1MB/s8Mbps。如果服务器带宽超过1GbpsWeb界面滑块无法满足需要通过内置PocketBase后台手动修改value字段。