You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose部署Zabbix后Web界面无法访问求助

Zabbix Web界面无法访问排查(Docker Compose部署)

我是Docker新手,尝试通过Docker Compose部署Zabbix,所有容器均已启动,但Web界面无法正常访问,日志显示一切正常。以下是我的docker-compose.yml配置文件:

version: "3.5"
 services:
    sql:
     image: mysql:latest
     environment:
       MYSQL_ROOT_PASSWORD: zabbix
       MYSQL_DB: zabbix
       MYSQL_USER: zabbix
       MYSQL_PASSWORD: zabbix
     volumes:
      - ./zabbix-mysql:/home/grey/mysql
     ports:
      - "3306:3306"
     restart: always

    zabbix:
     image: zabbix/zabbix-server-mysql
     environment:
          DB_SERVER_HOST: sql
          MYSQL_DB: zabbix
          MYSQL_USER: root
          MYSQL_PASSWORD: zabbix
          ZBX_VALUECACHESIZE: 64M
          ZBX_CACHESIZE: 128M
          ZBX_TRENDCACHESIZE: 128M
     volumes:
      - ./zabbix-serv:/home/grey/zabbix-server
     links:
       - sql
     ports:
      - "10051:10051"
     restart: always
    
     zabbix-web:
     image:  zabbix/zabbix-web-apache-mysql
     environment:
        DB_SERVER_HOST: sql
        MYSQL_USER: root
        MYSQL_PASSWORD: zabbix
        MYSQL_DB: zabbix
        ZBX_SERVER_HOST: zabbix
        ZBX_SERVER_PORT: 10051
        PHP_TZ: Europe/Paris
     links:
      - zabbix
      - sql
     ports:
      - "80:80"
      - "443:443"
     restart: always

    zabbix-agenr:
     image:  zabbix/zabbix-agent
     environment:
        DB_SERVER_HOST: sql
        MYSQL_USER: root
        MYSQL_PASSWORD: zabbix
        MYSQL_DB: zabbix
        ZBX_SERVER_PORT: 10051
        ZBX_SERVER_HOST: zabbix
     links:
      - zabbix
     restart: always

排查要点

1. YAML缩进错误

YAML对缩进要求严格,配置中存在多处不符合规范的缩进:

  • services: 前多了一个空格,需与version:对齐
  • zabbix-web: 缩进层级错误,需和sql、zabbix等服务同级
  • 所有服务内部字段(image、environment等)需保持统一缩进(建议用2或4个空格)

2. 服务名称拼写错误

zabbix-agenr: 拼写错误,应为zabbix-agent:,虽然不直接影响Web服务,但会导致agent配置无效,需修正。

3. 时区配置不匹配

配置中PHP_TZ: Europe/Paris,若宿主机时区与该值不一致,可能引发Web界面加载异常。可改为宿主机对应时区(如Asia/Shanghai),或同步容器与宿主机时区。

4. 数据库权限与初始化问题

  • zabbix-server和zabbix-web使用root用户连接数据库,建议改用已创建的专用zabbix用户,避免权限冲突
  • 执行docker logs <sql容器名>检查mysql初始化日志,确认数据库完全初始化后,Zabbix服务才能正常连接

5. 端口占用问题

检查宿主机80/443端口是否被其他服务占用:

netstat -tulpn | grep :80
netstat -tulpn | grep :443

若端口被占用,修改zabbix-web的端口映射(如"8080:80"),再访问http://localhost:8080测试。

6. 卷挂载路径错误

  • mysql容器默认数据目录为/var/lib/mysql,当前挂载到/home/grey/mysql会导致数据初始化失败,需修正为:
    volumes:
      - ./zabbix-mysql:/var/lib/mysql
    
  • zabbix-server容器默认数据目录为/var/lib/zabbix,当前挂载路径不符合预期,可调整为:
    volumes:
      - ./zabbix-serv:/var/lib/zabbix
    

7. 服务启动顺序问题

当前配置未设置服务依赖,zabbix-server和zabbix-web可能在mysql初始化完成前启动,导致连接失败。添加depends_on控制启动顺序:

zabbix:
  # 其他配置不变
  depends_on:
    - sql

zabbix-web:
  # 其他配置不变
  depends_on:
    - sql
    - zabbix

内容的提问来源于stack exchange,提问作者Docker newbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:01:17