Beszel开发环境搭建:Docker一键启动全流程

Beszel开发环境搭建:Docker一键启动全流程

【免费下载链接】beszel Lightweight server monitoring hub with historical data, docker stats, and alerts. 【免费下载链接】beszel 项目地址: https://gitcode.com/GitHub_Trending/be/beszel

为什么选择Docker化部署?

传统服务器监控工具部署往往面临环境依赖复杂配置步骤繁琐版本兼容性冲突三大痛点。以Zabbix为例,需依次配置LAMP stack、数据库初始化、Agent注册等流程,平均耗时超过40分钟。而Beszel通过Docker容器化方案,将部署流程压缩至5分钟内,同时保证开发、测试、生产环境的一致性。

读完本文你将掌握

  • 使用Docker Compose一键部署Beszel监控系统
  • 配置Agent与Hub的安全通信
  • 实现数据持久化与服务自恢复
  • 常见问题诊断与性能优化

环境准备清单

依赖项最低版本推荐版本检查命令
Docker20.10.0+24.0.5+docker --version
Docker Compose2.0.0+2.20.3+docker compose version
磁盘空间1GB5GB+df -h /var/lib/docker
内存1GB2GB+free -h

安装Docker环境

# 适用于Ubuntu/Debian系统
sudo apt update && sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER  # 注销重登录后生效

# 验证安装
docker run --rm hello-world
docker compose version

架构解析:Hub与Agent协同工作流

mermaid

核心组件说明

  • Hub:基于PocketBase的Web应用,提供 dashboard、数据存储和告警管理
  • Agent:轻量级数据收集器,运行在目标服务器,采集CPU/内存/磁盘/容器指标
  • 通信方式:WebSocket(套接字)加密连接,支持TLS 1.3传输加密

一键部署步骤

1. 获取项目代码

# 克隆仓库
git clone https://gitcode.com/GitHub_Trending/be/beszel
cd beszel/supplemental/docker/same-system

# 查看版本信息(当前稳定版:0.12.7)
grep -A 3 'const Version' ../../../beszel/version.go

2. 配置Docker Compose

创建docker-compose.yml(已提供模板,关键配置说明如下):

version: '3.8'
services:
  beszel:  # Hub服务
    image: 'henrygd/beszel:0.12.7'  # 固定版本号,避免自动更新
    container_name: 'beszel-hub'
    restart: unless-stopped
    ports:
      - '8090:8090'  # Web界面端口
    volumes:
      - ./beszel_data:/beszel_data  # 数据持久化
    environment:
      - ADMIN_EMAIL=admin@example.com
      - ADMIN_PASSWORD=SecurePass123!  # 首次登录后修改

  beszel-agent:  # 本地Agent
    image: 'henrygd/beszel-agent:0.12.7'  # NVIDIA GPU用户使用henrygd/beszel-agent-nvidia
    container_name: 'beszel-agent'
    network_mode: host  # 需直接访问主机Docker
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro  # 只读访问Docker
    environment:
      PORT: 45876
      KEY: 'your-secure-key-here'  # 与Hub配对的密钥
      FILESYSTEM: /dev/sda1  # 监控的文件系统
      # NVIDIA_VISIBLE_DEVICES: all  # GPU监控启用

3. 启动服务集群

# 生成安全密钥(替换docker-compose.yml中的KEY)
openssl rand -hex 16

# 启动服务
docker compose up -d

# 检查状态
docker compose ps
# 预期输出:
# NAME                IMAGE                          COMMAND                  STATUS              PORTS
# beszel-hub          henrygd/beszel:0.12.7         "/beszel"                Up 5 seconds        0.0.0.0:8090->8090/tcp
# beszel-agent        henrygd/beszel-agent:0.12.7    "/beszel-agent"           Up 5 seconds

4. 访问与初始化

  1. 打开浏览器访问:http://服务器IP:8090
  2. 使用配置的ADMIN_EMAIL和ADMIN_PASSWORD登录
  3. 导航至Systems > Add System,输入Agent的IP和密钥

关键配置详解

数据持久化方案

存储路径用途备份建议
./beszel_dataHub配置、监控数据、用户信息每日备份,保留30天
/var/run/docker.sockDocker容器指标采集无需备份
# 创建自动备份脚本 backup.sh
#!/bin/bash
BACKUP_DIR=/backup/beszel
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
docker exec beszel-hub sh -c 'tar -czf - /beszel_data' > $BACKUP_DIR/beszel_$TIMESTAMP.tar.gz
find $BACKUP_DIR -name 'beszel_*.tar.gz' -mtime +30 -delete

Agent高级配置

environment:
  # 基础配置
  PORT: 45876
  KEY: 'your-secure-key-here'
  HUB_URL: 'ws://127.0.0.1:8090/ws'
  # 高级配置
  EXTRA_FILESYSTEMS: 'sdb1,sdc'
  TEMP_THRESHOLD: '75'  # 温度告警阈值(°C)
  LOG_LEVEL: 'info'  # debug/info/warn/error
  UPDATE_INTERVAL: '10s'  # 数据采集间隔

故障诊断与性能优化

常见问题排查

症状可能原因解决方案
Hub启动失败端口冲突netstat -tulpn | grep 8090 查找占用进程
Agent连接超时防火墙拦截sudo ufw allow 45876/tcp 开放端口
容器数据缺失Docker权限不足添加 --group-add docker 到Agent服务
磁盘占用过高日志未轮转配置LOG_ROTATION_SIZE=100MLOG_ROTATION_MAX=5

性能调优建议

# Hub性能优化
beszel:
  environment:
    - CACHE_SIZE=5000  # 指标缓存大小
    - DB_PRAGMAS=journal_mode=WAL  # SQLite性能优化
  resources:
    limits:
      cpus: '0.5'
      memory: 512M

# Agent轻量级配置
beszel-agent:
  environment:
    - DISABLE_METRICS='gpu,temperature'  # 禁用不需要的指标
    - COLLECT_CONTAINERS='false'  # 仅监控主机时关闭容器采集

自动化与扩展

配置自动更新

# 创建更新脚本 update-beszel.sh
#!/bin/bash
cd $(dirname $0)
docker compose pull
docker compose up -d

# 添加到crontab(每周日凌晨更新)
crontab -e
# 添加:0 3 * * 0 /path/to/update-beszel.sh > /var/log/beszel-update.log 2>&1

多服务器监控扩展

mermaid

总结与后续学习

通过Docker Compose实现Beszel的一键部署,我们完成了:

  1. 5分钟内搭建完整监控系统
  2. 配置安全通信与数据持久化
  3. 实现服务自动恢复与更新

下一步建议

  • 配置SMTP/钉钉告警通知
  • 集成Prometheus/Grafana
  • 部署Kubernetes监控(使用beszel-agent:kube版本)

收藏本文,关注后续《Beszel告警系统深度配置》和《大规模部署最佳实践》

【免费下载链接】beszel Lightweight server monitoring hub with historical data, docker stats, and alerts. 【免费下载链接】beszel 项目地址: https://gitcode.com/GitHub_Trending/be/beszel

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值