当前位置: 首页 > Linux运维 > Docker > 开源轻量级服务器监控工具 Beszel:基于 Docker 的安装与使用指南

开源轻量级服务器监控工具 Beszel:基于 Docker 的安装与使用指南

发布于:2024-10-12 Docker 0条评论 5,409 views
本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

Beszel 是一款开源的轻量级服务器资源监控工具,支持对服务器的关键资源进行实时监控,并记录历史数据。它通过直观的界面展示 CPU、内存、磁盘 I/O 等关键指标,还支持监控 Docker 容器的运行状态,帮助用户更好地了解容器的性能表现。除此之外,Beszel 还具备告警功能,能在系统出现异常时及时提醒管理员,确保系统的稳定运行。通过简易的安装和配置流程,Beszel 非常适合中小型服务器的日常监控需求。

3d198574915e7ce3.png

Beszel特点

  • 轻量级:比主流解决方案更小,且占用资源更少。
  • 简单:设置简便,无需暴露在公共互联网中。
  • Docker 统计:跟踪每个容器的 CPU、内存和网络使用历史。
  • 告警:可配置的告警功能,针对 CPU、内存、磁盘使用率及系统状态。
  • 多用户:每个用户管理自己的系统,管理员可以共享系统给其他用户。
  • OAuth / OIDC:支持多种 OAuth2 提供商,可以禁用密码认证。
  • 自动备份:可将数据保存到磁盘或兼容 S3 的存储,并支持恢复。
  • REST API:可以在你的脚本和应用中使用或更新数据。

Beszel架构

Beszel 的架构是一个基于客户端-服务器模型的监控平台,由Hub(中心服务器)Agent(代理)组成。

Hub(中心服务器)

  • 功能:Hub 作为 Beszel 的中心服务器,用于聚合和展示监控数据。它接收从多个系统发来的数据,并在界面上显示服务器资源使用情况,如 CPU、内存、磁盘 I/O 等历史数据。
  • 部署方式:可以通过单个二进制文件或 Docker 容器运行。Hub 不需要暴露在公共互联网中,增加了安全性。

Agent(代理)

  • 功能:Agent 是安装在被监控系统上的轻量级程序。它负责收集服务器的资源使用情况,并将数据发送给 Hub。Agent 还支持监控 Docker 容器,跟踪容器的 CPU、内存、网络使用情况。
  • 部署方式:Agent 可以使用 Docker 容器或单个二进制文件进行安装,支持通过简单的环境变量配置多个文件系统和网络接口。

Docker部署Beszel

这篇文章xiaoz用Docker Compose来部署Beszel作为演示,我们假设您已经安装好了Docker。

部署Beszel Hub

Hub可以理解为Beszel的务端,负责展示/管理和告警等工作,我们在使用Beszel的时候至少需要一个服务端。接下来通过Docker Compose部署Beszel Hub,详细的docker-compose.yaml内容如下:

services:
  beszel:
    image: 'henrygd/beszel'
    container_name: 'beszel'
    restart: unless-stopped
    ports:
      - '8090:8090'
    volumes:
      - ./beszel_data:/beszel_data

然后使用docker-compose up -d启动,启动成功后通过http://IP:8090访问WEB页面,并设置一个管理员邮箱和密码,以便后续使用。

6c1486101b5084e4.png

部署Beszel Agent

Agent相当于Beszel的客户端,负责采集数据并上报给Hub(服务端),我们需要在每一台服务器都安装Agent,这样就可以监控所有服务器。也是通过Docker Compose部署,首先需要在Beszel后台 - 点击右上角Add System

eac6a04be861673e.png

然后填写服务器IP/端口等信息,再点击Copy docker compose按钮。

c9c802a1c9d5fe79.png

会自动生成docker-compose.yaml内容,如下格式:

services:
  beszel-agent:
    image: "henrygd/beszel-agent"
    container_name: "beszel-agent"
    restart: unless-stopped
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      # monitor other disks / partitions by mounting a folder in /extra-filesystems
      # - /mnt/disk1/.beszel:/extra-filesystems/disk1:ro
    environment:
      PORT: 45876
      KEY: "ssh-ed25519 xxx"
      # FILESYSTEM: /dev/sda1 # override the root partition / device for disk I/O stats
  • 注意:KEY请改成自己的

将上面的内容保存为docker-compose.yaml,并输入命令docker-compose up -d即可启动Beszel Agent。上面的yaml配置可以看到使用了HOST网络模式,并使用45876作为端口,所以我们还需要在防火墙或安全组放行45876端口,不然无法通信。方法如下:

# 如果是firewalld
firewall-cmd --zone=public --add-port=45876/tcp --permanent
firewall-cmd --reload
# 如果是ufw
ufw allow 45876

操作完毕后别忘记回到Beszel页面,点击Add System按钮。

875dbcd799b2f7f4.png

然后等待几分钟,就可以在页面看到监控数据啦。

3bd0148f9899dde1.png

Beszel还有个好处是可以对Docker容器资源进行监控,这一点非常不错。

1cb0b30884ed52b6.png

其它功能

Beszel还可以设置暗黑模式。

0cbf25e5ab12c9ae.png

也可以设置SMTP的方式发送邮件。

d517660674a67de5.png

还可以对服务器的指标进行监控告警。

e09f1d411951d555.png

还可以将文件备份到S3协议的对象存储中。(xiaoz也不清楚这部分是日志文件还是什么)

1b8b491857e1d53c.png

同时Beszel还支持API和Webhook等功能,极大的方便运维和开发人员,有兴趣的朋友可以进一步研究。

浅谈Beszel的优点和缺点

以下是xiaoz个人观点,仅供参考。

Beszel优点

  • 安装相对简单
  • 轻量简洁,能满足基本的监控需要
  • 支持Docker容器资源监控

Beszel缺点

  • 界面不支持中文
  • 服务器添加后不支持修改,如果要修改好像只能删除后重新添加
  • 对多个磁盘的服务器不够友好
  • 监控指标不够详细,比如无法监控服务器网络连接数

对比Prometheus

目前xiaoz大多数服务器均使用Prometheus + Grafana监控方案,这套监控方案非常成熟且美观。最近发现Beszel后进行了部署测试,相比之下各有优缺点,如果是公司生产环境个人还是建议Prometheus或Zabbix这种成熟方案。如果是自己的服务器,不在意更多细节指标,Beszel也完全能够满足需要,以下是一个个人整理的非专业对比,仅供参考。

名称/功能BeszelPrometheus
安装简单困难
使用简单困难
监控Docker容器默认支持需要额外配置
告警默认支持需要额外配置
监控指标一般丰富
监控多个磁盘一般友好
自动发现不支持支持

备注:Beszel对Docker支持非常友好,因此您还可以将Beszel安装到您的NAS设备中!

结语

Beszel 是一款专为轻量化服务器监控设计的开源工具,能够通过简单的配置满足中小型服务器的日常监控需求。在 Docker 环境中,Beszel 的部署特别方便,支持对 Docker 容器资源监控。同时,它还具备告警、数据备份和 API 集成等功能,帮助用户在异常情况发生时快速响应。虽然在一些高级监控功能上比不上 Prometheus 这样的成熟方案,但对于不需要复杂配置的个人服务器或小型项目,Beszel 依然是一个很好的选择。

Beszel项目地址:https://github.com/henrygd/beszel


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注