轻量级服务器资源监控平台Beszel

什么是 Beszel ?
Beszel是一个轻量级平台,借助Beszel,可以访问CPU和内存使用情况的历史数据,以及Docker容器指标(例如特定于容器的CPU和内存统计信息)。还能收到针对潜在问题的可自定义警报通知,以便采取主动措施来优化服务器性能。

软件特点:
- 轻量级:比领先的解决方案小得多,要求也低得多。
- Docker 统计:每个容器的
CPU和内存使用历史记录。 - 警报:可配置
CPU、内存和磁盘使用情况以及系统状态的警报。 - 多用户:每个用户都有自己的系统。管理员可以跨用户共享系统。
- 简单:易于设置,不需要任何内容在线公开。
- OAuth / OIDC:支持许多
OAuth2提供商。可以禁用密码验证。 - 自动备份:将数据保存到磁盘或
S3兼容存储并从磁盘或S3兼容存储中恢复数据。 - REST API:在您自己的脚本和应用程序中使用您的指标。
安装
在群晖上以 Docker 方式安装。
Beszel 分为 Hub 和 Agent 两部分,Agent 负责数据采集,Hub 端汇聚并展示数据
Hub端的镜像为henrygd/beszel;Agent端的镜像为henrygd/beszel-agent;
本文折腾时,
latest版本均为0.1.1;

为了省事,老苏把 Hub 和 Agent 合并到了一个 docker-compose.yml 中,但是实际上执行是分开的
需要先运行 Hub ,生成一个 Public Key 之后,再运行 Agent
version: '3'
services:
beszel:
image: 'henrygd/beszel'
container_name: 'beszel'
restart: unless-stopped
ports:
- '8092:8090'
volumes:
- ./beszel:/beszel_data
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: <YOUR_PUBLIC_KEY>
FILESYSTEM: /dev/md2 # set to the correct filesystem for disk I/O stats
agent 使用 host 网络模式,因此它可以访问网络接口统计信息。这会自动公开端口,因此如果需要,可以使用环境变量更改端口。
用于磁盘 I/O 统计的文件系统/分区在FILESYSTEM环境变量中指定。可以通过下面的方式来获取,其中群晖上支持 1 和 3
- 运行
df -h并在Filesystem下选择一个选项; - 运行
lsblk并在NAME下选择一个选项; - 运行
sudo fdisk -l并在Device下选择一个选项;

任何一种都是可以的,关键就是找到你要监视的硬盘,对老苏而言,就是那个最大的硬盘 /dev/md2

更多环境变量,请参考官方文档:https://github.com/henrygd/beszel#environment-variables
然后执行下面的命令
# 新建文件夹 beszel 和 子目录
mkdir -p /volume1/docker/beszel/data
# 进入 beszel 目录
cd /volume1/docker/beszel
# 将 docker-compose.yml 放入当前目录
# 一键启动 hub
docker-compose up -d beszel
注意,这里只启动了 Hub
运行
在浏览器中输入 http://群晖IP:8092 就能看到注册界面
密码不能少于
10个字符;

登录后的主界面

点 Add System 添加 agent,第一个 agent 是本机
Name:主机名称;Host/IP:主机的IP地址;Port:主机端口,如果你要修改,对应的agent的环境变量PORT也要对应做修改;Public Key:点后面的复制按钮,替换掉环境变量中的<YOUR_PUBLIC_KEY>

注意:如果没有使用
https协议,复制是无用的,需要在弹出框里再复制

点 Add system 保存后,暂时什么都没有

将获取到的 Public Key 替换掉 <YOUR_PUBLIC_KEY> ,现在你的 docker-compose.yml 是这样的

接下来启动 agent
# 一键启动 agent
docker-compose up -d beszel-agent
agent 启动成功后

就会有数据了

如果有多台机器需要监控,只要再运行一次。被监控的主机只安装 agent 即可

下面👇是老苏在另一台机器上的 docker-compose.yml 文件
version: '3'
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 AAAAC3NzaC1lZDI1NTE5AAAAICFYiBMMsEUVgNA6K7JZysslYqXrX7JVvH9WETHks41+
FILESYSTEM: /dev/md3 # set to the correct filesystem for disk I/O stats
运行👇的命令
# 一键启动
docker-compose up -d
当 agent 启动成功后,就能看到数据了

点铃铛图标,可以设置报警

因为时间短,所以数据不多。意思到了就行了

参考文档
henrygd/beszel: A lightweight server monitoring hub with historical data, docker stats, and alerts.
地址:https://github.com/henrygd/beszel
更多推荐


所有评论(0)