一款轻量级的分布式监控工具——Beszel
本文最后更新于 2024-08-16,文章内容可能已经过时。
大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~
| 前言
作为数码折腾爱好者而言,设备越玩越多,服务越玩越花,但是设备的状态,以及容器占用情况反而很少有人去关注,一旦想起来去用才发现服务已经停了,这个时候就很尴尬。因此一套轻量级的,可以监控设备和容器的监控中心,就会显得有很价值。
今天,我们介绍的项目叫Beszel,它是一套作用于NAS和服务器端的轻量级监控工具,它提供了一个仪表板来查看和管理我们的连接系统,监控内容包含设备历史数据、Docker状态和警报等。安装Beszel需要部署一套服务器端,并且为每一个客户端安装agent插件。
项目地址:
项目特性:
- 重量轻:比领先的解决方案更小,要求更低。
- 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,选择项目,点击新建,选择路径,点击下一步即可
方法三:威联通部署compose
打开Container Station,选择【应用程序】,点击【创建】,将代码复制进去,点击验证后部署即可
方法四:铁威马部署compose
打开Docker Manager,选择【项目】,点击【+】,选择文件路径以后,填入代码即可
| 系统使用简介
一、前端功能
首先就是创建账号密码登录,搞定以后在首页有一个【Add System】按钮,点击可以看到如下界面。
一共是4个需要输入的地方
Name : 监听的设备名称
Host/Ip : 监听的设备IP
Port : 监听的设备端口,默认是45876
Key :设备密钥,就是我们在创建docker时候自定义的那个
比如我这里监听成功的群晖920,可以看到各类资源使用情况
点击详情以后,可以看到有CPU使用情况,各容器的CPU使用情况
内存使用情况,各容器内存使用情况
如果前面给了硬件权限,那么还可以获取I/O信息。网络上能获取到读写的实时速率。
二、后端功能
点击右上角头像,选择system进入后台。首先是支持配置2FA绑定和登录。
支持设置邮箱预警通知
支持使用S3作为数据存储空间
如果设置了预警,而且触发警告的话,在alerts里可以看到具体的警告信息。
值得一提的是,Beszel提供了一个完整的内置API工具,可以用于资源的采集和使用。