baszel安装

背景

对比一下 nezha dashboard

准备

hub docker install

全部根据官网配置操作即可,感觉很多时候比直接问AI 靠谱些,可以看文档,然后拿文档问题咨询ai

sh 复制代码
sudo mkdir -p /opt/beszel
sudo vim ./docker-compose.yml
# 添加hub 配置
services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    environment:
      APP_URL: http://localhost:8090
      HUB_URL: https://data.yourdomain.com # 替换自己的上报域名
    ports: 
      - 8090:8090
    volumes:
      - ./beszel_data:/beszel_data
      - ./beszel_socket:/beszel_socket
    # healthcheck:
    #   test: ['CMD', '/beszel', 'health', '--url', 'http://localhost:8090']
    #   interval: 120s
    #   start_period: 10s
    #   timeout: 5s
sudo docker compose up -d

内网创建账户

实例创建成功后,直接内网访问 http://amd:8090

我是tailscale 组件了内网,所以访问很方便

没有内网的话,直接上公网也可以

用邮箱 + 密码创建一个账户后,就不能在创建账户了,只能登录,公网开放的话,建议密码复杂些,然后套cf cdn

nginx 反代

sh 复制代码
sudo vim /etc/nginx/conf.d/baszel.conf

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    # listen [::]:443 ssl http2;
    http2 on; 
    client_max_body_size 10M;

    server_name dash.example.com; # 替换为你的域名
    access_log /var/log/nginx/dash.yourdomain.com.access.log; # 替换为你的域名

   # 统一使用刚刚申请出来的 Let's Encrypt 通配符证书路径
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m; # 如果与其他配置冲突,请注释此项
    ssl_protocols TLSv1.2 TLSv1.3;

    underscores_in_headers on;
    include /etc/nginx/conf.d/cloudflare/ips.conf; # 替换为你的 CDN 回源 IP 地  址段
    real_ip_header CF-Connecting-IP; # 替换为你的 CDN 提供的私有 header,此处为 CloudFlare 默认
    # 如果你使用nginx作为最外层,把上面两行注释掉

        location / {
                proxy_read_timeout 360s;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";

                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;

                proxy_pass http://127.0.0.1:8090;
        }
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    # listen [::]:443 ssl http2;
    http2 on; # Nginx > 1.25.1,请注释上面两行,启用此行
    client_max_body_size 10M;

    server_name data.example.com; # 替换为你的域名

    access_log /var/log/nginx/data.yourdomain.com.access.log;
    
# 1. 拦截所有根路径以及静态文件访问(直接返回 403 拒绝访问 Web 界面)
    location / {
        return 403;
    }

# 2. 精确放行 Agent 上报和 PocketBase API 必须的路径
    location ~* ^/(api|static|/_)/ {
        proxy_read_timeout 360s;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_pass http://127.0.0.1:8090;
    }
}

sudo nginx -t 
sudo nginx -s reload

这样应该就可以公网访问了

agent docker install

本地的agent 配置不太一样,参考官网配置

直接copy docker 配置即可

bash 复制代码
sudo mkdir -p /opt/beszel
sudo vim ./docker-compose.yml

# 添加 agent 配置
  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
      - ./beszel_agent_data:/var/lib/beszel-agent
      # monitor other disks / partitions by mounting a folder in /extra-filesystems
      # - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
    environment:
      LISTEN: /beszel_socket/beszel.sock
      KEY: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaet2Ay9L6uOWSBECVlg2Aub3fA5MsOLu3EAgTz2xrz'
      TOKEN: 367f1-0b572c4e6-a524-eab5d08f08
      HUB_URL: http://localhost:8090

其他vps 监控agent 安装

注意在 hub 控制台copy 的 docker 配置 HUB_URL 不知道为啥是本地的,我也配置了HUB_URL环境变量在 HUB 端,估计页面缓存吧

复制代码
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
      - ./beszel_agent_data:/var/lib/beszel-agent
      # monitor other disks / partitions by mounting a folder in /extra-filesystems
      # - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
    environment:
      LISTEN: 45876
      KEY: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaet2Ay9L6uOWSBECVlg2Aub3fA5MsOLu3EAgTz2xrz'
      TOKEN: 13ab07-488c3165-5f7460-0b1e469c
      HUB_URL: http://localhost:8090 # 注意替换 https://data.example.com
相关推荐
palmer_kyle1 天前
nezha dashboard安装
vps-monitor·nezha