igozhang

——

    容器部署 Zabbix 5

    用 Docker 容器拉起 Zabbix 5.0(MySQL + Server + Web + Java Gateway)。

    官方容器说明(版本页可能较旧,方法与 Compose 思路仍可参考):
    https://www.zabbix.com/documentation/3.4/zh/manual/installation/containers

    环境

    项目 说明
    操作系统 CentOS Linux release 7.6.1810 (Core)
    Docker 1.13.1
    Zabbix 镜像 5.0.26-centos
    数据库 mysql:5.7
    默认登录 Admin / zabbix(界面显示可能为 Admin)

    相关概念

    概念 一句话
    zabbix-server-mysql 接 MySQL 的 Zabbix Server 容器。
    zabbix-web-nginx-mysql Nginx + PHP 前端,连同一套库与 Server。
    zabbix-java-gateway Java Gateway,用于 JVM / JMX 类监控。
    --link 旧版容器互联方式;有启动顺序依赖,现多改用自定义网络。
    10051 / 8080 Server 与 Web 容器内常用端口(映射按需调整)。

    1. 拉取镜像

    docker pull mysql:5.7
    docker pull zabbix/zabbix-java-gateway:5.0.26-centos
    docker pull zabbix/zabbix-server-mysql:5.0.26-centos
    docker pull zabbix/zabbix-web-nginx-mysql:5.0.26-centos
    

    2. 按顺序启动容器

    使用 --link 时:必须先启动被 link 的容器,再启动依赖方,否则会报错。
    下文密码仅为笔记示例,生产请更换。

    2.1 启动 MySQL

    docker run --name mysql-server -t \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="igozhang.cn" \
      -e MYSQL_ROOT_PASSWORD="igozhang.cn" \
      -v /etc/localtime:/etc/localtime \
      -d mysql:5.7 \
      --character-set-server=utf8 \
      --collation-server=utf8_bin
    

    2.2 启动 Zabbix Java Gateway(JVM 监控)

    docker run --name zabbix-java-gateway -t \
      -v /etc/localtime:/etc/localtime \
      -d zabbix/zabbix-java-gateway:5.0.26-centos
    
    docker run --name zabbix-server-mysql -t \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="igozhang.cn" \
      -e MYSQL_ROOT_PASSWORD="igozhang.cn" \
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
      --link mysql-server:mysql \
      --link zabbix-java-gateway:zabbix-java-gateway \
      -p 10051:10051 \
      -v /etc/localtime:/etc/localtime \
      -d zabbix/zabbix-server-mysql:5.0.26-centos
    
    docker run --name zabbix-web-nginx-mysql -t \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="igozhang.cn" \
      -e MYSQL_ROOT_PASSWORD="igozhang.cn" \
      --link mysql-server:mysql \
      --link zabbix-server-mysql:zabbix-server \
      -p 80:8080 \
      -v /etc/localtime:/etc/localtime \
      -d zabbix/zabbix-web-nginx-mysql:5.0.26-centos
    

    3. 访问

    浏览器打开(按宿主机 IP):

    http://<宿主机IP>/
    

    端口映射:80 → 8080(容器内 Web 监听 8080)。

    项 值
    用户名 Admin(或界面显示的 admin)
    密码 zabbix

    登录后请立即修改默认密码。


    4. 启动顺序与端口

    mysql-server
        → zabbix-java-gateway
            → zabbix-server-mysql(link 上两者,映射 10051)
                → zabbix-web-nginx-mysql(link DB + Server,映射 80:8080)
    
    容器 宿主机端口
    zabbix-server-mysql 10051
    zabbix-web-nginx-mysql 80

    常用查看命令:

    docker ps
    docker logs -f zabbix-server-mysql
    docker logs -f zabbix-web-nginx-mysql
    

    自定义网络可避免 link 的强顺序别名问题(名称解析靠 DNS):

    docker network create zabbix-net
    
    docker run --name mysql-server --network zabbix-net ...(同上环境变量)
    docker run --name zabbix-java-gateway --network zabbix-net ...
    docker run --name zabbix-server-mysql --network zabbix-net \
      -e DB_SERVER_HOST=mysql-server \
      -e ZBX_JAVAGATEWAY=zabbix-java-gateway \
      -p 10051:10051 ...
    docker run --name zabbix-web-nginx-mysql --network zabbix-net \
      -e DB_SERVER_HOST=mysql-server \
      -e ZBX_SERVER_HOST=zabbix-server-mysql \
      -p 80:8080 ...
    

    更省事可用官方/自建 docker-compose(参见《zabbix4部署》中的 Compose 思路,镜像改为 5.0.26-centos)。


    注意

    1. 首次启动 Server 会对库做初始化,需等 MySQL 就绪;失败时看 docker logs。
    2. --link 已不推荐,新环境优先 network 或 compose。
    3. 文档链接指向 3.4 中文容器页,原理通用;镜像请继续使用本文的 5.0.26 标签。
    4. 不需要 JMX 时可省略 Java Gateway,并去掉 Server 的 ZBX_JAVAGATEWAY 与对应 link。

    MP3