欢迎光临
我们一直在努力

服务器宕机如何第一时间发现?Beszel+cpolar搭建远程告警系统

服务器宕机如何第一时间发现?Beszel+cpolar搭建远程告警系统

在运维工作中,服务器宕机是最令人头疼的问题之一。如果不能第一时间发现,可能会导致业务长时间中断,带来不可估量的损失。传统的监控方案往往需要复杂的配置和昂贵的商业软件,而今天我们要介绍的Beszel与cpolar组合,可以让你用轻量级工具快速搭建一套远程告警系统,实现宕机秒级感知。

为什么选择Beszel与cpolar?

Beszel是一款开源的服务器监控工具,支持CPU、内存、磁盘、网络等核心指标的实时监控,并内置了灵活的告警规则。它轻量、易部署,适合个人开发者和小型团队使用。而cpolar则是一款内网穿透工具,可以将本地服务安全地暴露到公网,让你在外网也能随时访问监控面板和接收告警通知。

两者的结合,既解决了监控数据的采集与展示问题,又解决了远程访问和告警推送的难题。下面我们将一步步演示如何搭建这套系统。

第一步:安装Beszel

Beszel支持多种安装方式,推荐使用Docker Compose进行部署。首先,在你的服务器上创建目录并编写docker-compose.yml文件:

mkdir beszel && cd beszel
cat <<EOF > docker-compose.yml
version: '3.7'
services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    ports:
      - "9527:9527"
    volumes:
      - ./data:/app/data
    environment:
      - TZ=Asia/Shanghai
EOF

然后启动服务:

docker-compose up -d

启动后,访问http://服务器IP:9527即可看到Beszel的Web界面。首次访问需要创建管理员账号,按照提示完成初始化即可。

第二步:添加监控目标

在Beszel面板中,点击“添加服务器”按钮,填写目标服务器的名称、IP地址和SSH端口。Beszel通过SSH协议采集数据,因此需要提供可用的SSH凭据。支持密码和密钥两种方式,建议使用密钥认证以提高安全性。

添加完成后,Beszel会自动开始采集数据。你可以在仪表盘中查看CPU、内存、磁盘等指标的实时曲线,也可以设置历史数据保留策略。

第三步:配置告警规则

Beszel的告警功能非常灵活。进入“告警”设置页面,你可以创建多条规则,例如:

  • CPU使用率超过90%持续5分钟
  • 内存使用率超过85%
  • 磁盘剩余空间低于10GB
  • 服务器心跳丢失(即宕机)

每条规则可以指定通知渠道,Beszel支持邮件、Webhook、Slack、Telegram等。这里我们以Webhook为例,演示如何对接cpolar的告警推送。

第四步:使用cpolar暴露监控面板

为了在外网访问Beszel面板,我们需要使用cpolar创建一条隧道。cpolar支持多种协议,这里我们使用HTTP隧道。首先,在服务器上安装cpolar客户端:

curl -L https://www.cpolar.com/static/downloads/releases/3.3.3/cpolar-stable-linux-amd64.zip -o cpolar.zip
unzip cpolar.zip
sudo mv cpolar /usr/local/bin/

然后,登录cpolar官网注册账号,获取认证token。在服务器上执行:

cpolar authtoken <你的token>

接着,创建一条隧道指向Beszel的9527端口:

cpolar http 9527

执行后,cpolar会生成一个公网URL,例如https://abc123.cpolar.top。现在,你可以通过这个URL从任何地方访问Beszel监控面板了。

第五步:配置远程告警通知

有了公网URL,我们就可以配置告警通知了。以Webhook为例,在Beszel的告警规则中,选择“Webhook”类型,填写一个接收告警的URL。这个URL可以是你的企业微信机器人、钉钉机器人或者自定义的API接口。

例如,使用企业微信机器人,只需将机器人的Webhook地址填入即可。当告警触发时,Beszel会发送一个POST请求,包含告警详情。你可以通过简单的脚本解析并转发到手机通知。

如果你希望更直接的推送,也可以使用cpolar的“事件通知”功能。cpolar支持在隧道状态变化时发送通知,但针对监控告警,还是建议使用Beszel自身的Webhook功能,因为它的告警内容更丰富。

第六步:测试告警链路

配置完成后,务必进行测试。你可以手动停止被监控服务器上的SSH服务,模拟宕机场景,观察是否能在预期时间内收到告警。Beszel默认的心跳检测间隔是30秒,你可以根据需求调整。

测试时,注意检查Webhook是否成功接收请求,以及通知是否及时送达。如果使用企业微信或钉钉,可以在手机上确认是否收到消息。

进阶:使用cpolar的固定域名

cpolar免费版提供的域名是随机生成的,重启后会变化。为了长期稳定使用,建议升级到付费版或使用cpolar的固定域名功能。这样,即使服务器重启,监控面板的URL也不会改变,方便你配置书签或集成到其他系统。

获取固定域名后,只需在cpolar命令中添加--subdomain参数即可:

cpolar http -subdomain=myserver 9527

这样,你的监控面板地址就固定为https://myserver.cpolar.top了。

安全建议

将监控面板暴露到公网存在一定的安全风险,因此务必做好防护:

  • 为Beszel设置强密码,并启用两步验证(如果支持)。
  • 使用cpolar的访问控制功能,限制允许访问的IP地址。
  • 定期更新Beszel和cpolar到最新版本,修复已知漏洞。
  • 不要将SSH密钥明文存储在服务器上,使用环境变量或密钥管理服务。

常见问题(FAQ)

Q1: Beszel支持监控哪些指标?

Beszel支持CPU使用率、内存使用率、磁盘空间、网络流量、系统负载等常见指标,并支持自定义脚本采集更多数据。

Q2: cpolar免费版和付费版有什么区别?

免费版提供随机域名,带宽和隧道数量有限;付费版提供固定域名、更高带宽和更多隧道,适合生产环境使用。

Q3: 告警通知延迟多久?

Beszel的心跳检测间隔默认30秒,告警触发后,Webhook通知通常在几秒内送达,具体取决于你的通知渠道。

Q4: 如何调整心跳检测间隔?

在Beszel的服务器设置中,可以修改“心跳间隔”参数,单位为秒。建议设置为30-60秒,太短会增加负载,太长则影响告警及时性。

Q5: 是否支持多服务器监控?

支持。Beszel可以添加多台服务器,每台服务器独立配置告警规则,方便统一管理。

总结

通过Beszel与cpolar的组合,我们成功搭建了一套轻量、高效的远程服务器监控告警系统。它不仅能实时监控服务器状态,还能在宕机时第一时间推送通知,帮助你快速响应故障。整个方案成本低、易维护,非常适合个人开发者和小型团队使用。

如果你还在为服务器宕机而烦恼,不妨试试这套方案,让运维工作更加从容。

赞(0) 打赏
未经允许不得转载:云服务器推荐 » 服务器宕机如何第一时间发现?Beszel+cpolar搭建远程告警系统

评论 抢沙发

更好的WordPress主题

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册