本文最后更新于 2024-08-16,文章内容可能已经过时。

大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~

| 前言

作为数码折腾爱好者而言,设备越玩越多,服务越玩越花,但是设备的状态,以及容器占用情况反而很少有人去关注,一旦想起来去用才发现服务已经停了,这个时候就很尴尬。因此一套轻量级的,可以监控设备和容器的监控中心,就会显得有很价值。

今天,我们介绍的项目叫Beszel,它是一套作用于NAS和服务器端的轻量级监控工具,它提供了一个仪表板来查看和管理我们的连接系统,监控内容包含设备历史数据、Docker状态和警报等。安装Beszel需要部署一套服务器端,并且为每一个客户端安装agent插件。

项目地址:

https://github.com/henrygd/beszel

项目特性:

  • 重量轻:比领先的解决方案更小,要求更低。
  • Docker stats:每个容器的CPU和内存使用历史。
  • 警报:可配置的CPU、内存和磁盘使用情况以及系统状态警报。
  • 多用户:每个用户都有自己的系统。管理员可以在用户之间共享系统。
  • 简单:易于设置,不需要任何东西在网上公开。
  • OAuth / OIDC:支持许多OAuth2提供商。可以禁用密码验证。
  • 自动备份:将数据保存到磁盘或S3兼容的存储设备,或从磁盘或S3兼容的存储设备恢复数据。
  • REST API:在您自己的脚本和应用程序中使用您的指标。

| 系统部署教程

一、导入镜像

如果无法访问docker下载地址的,可以通过本网盘下载镜像压缩包(tar格式),然后通过NAS的镜像导入功能导入。

我用夸克网盘分享了「beszel」,点击链接即可保存。
链接:https://pan.quark.cn/s/72c0c7ec14e0

二、compose代码

🔻hub服务端代码

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

🔻agent客户端代码

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
    environment:
      PORT: 45876
      KEY: 'ssh-ed25519 自定义密钥'
      # 下面这个参数用于获取磁盘I/O,需要自定在ssh内通过sudo fdisk -l 来获取
      # FILESYSTEM: '/dev/sda'

三、各NAS系统部署项目方法

方法一:通用SSH部署compose

🔻新建文件夹路径【/volume1/docker/项目名】,在目录下新建或上传前面提到的【docker-compose.yml】文件,然后输入以下指令

# 来到文件夹目录
cd /volume1/docker/容器名/
# 启动容器
docker-compose up -d

方法二:群晖部署compose

打开Container Manager,选择项目,点击新建,选择路径,点击下一步即可
image.png

方法三:威联通部署compose

打开Container Station,选择【应用程序】,点击【创建】,将代码复制进去,点击验证后部署即可
image.png

方法四:铁威马部署compose

打开Docker Manager,选择【项目】,点击【+】,选择文件路径以后,填入代码即可
image.png


| 系统使用简介

一、前端功能

首先就是创建账号密码登录,搞定以后在首页有一个【Add System】按钮,点击可以看到如下界面。
image.png

一共是4个需要输入的地方

Name : 监听的设备名称
Host/Ip : 监听的设备IP
Port : 监听的设备端口,默认是45876
Key :设备密钥,就是我们在创建docker时候自定义的那个

比如我这里监听成功的群晖920,可以看到各类资源使用情况
image.png

点击详情以后,可以看到有CPU使用情况,各容器的CPU使用情况
QQ_1722873318883.png

内存使用情况,各容器内存使用情况
QQ_1722873352300.png

如果前面给了硬件权限,那么还可以获取I/O信息。网络上能获取到读写的实时速率。
QQ_1722873383192.png

二、后端功能

点击右上角头像,选择system进入后台。首先是支持配置2FA绑定和登录。
QQ_1722873540959.png

支持设置邮箱预警通知
QQ_1722873605206.png

支持使用S3作为数据存储空间
QQ_1722873624955.png

如果设置了预警,而且触发警告的话,在alerts里可以看到具体的警告信息。
QQ_1722873646532.png

值得一提的是,Beszel提供了一个完整的内置API工具,可以用于资源的采集和使用。
QQ_1722873679462.png