目录

1 准备外网环境设备

1.1 安装 Docker

1.2 下载 Zabbix 所需镜像

1.3 保存镜像为本地文件

2 内网环境部署(10.1.14.193)

2.1 传输文件并且加载镜像

2.2  创建持久化目录

2.3 编写 docker-compose.yml

2.4 启动 Zabbix 服务

3 Agent 节点部署(10.1.14.123)

3.1 加载 Agent 镜像

3.2 启动容器

4 初始化配置


1 准备外网环境设备

1.1 安装 Docker

参考文章:https://blog.csdn.net/m0_75254642/article/details/156724003?spm

1.2 下载 Zabbix 所需镜像

# 核心镜像
docker pull mysql:8.0
docker pull zabbix/zabbix-server-mysql:6.0-ubuntu-latest
docker pull zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest
docker pull zabbix/zabbix-agent:6.0-ubuntu-latest

# 可选管理工具
docker pull portainer/portainer-ce:latest
docker pull adminer:latest

1.3 保存镜像为本地文件

# 创建存放目录
mkdir zabbix-docker-offline
# 进入创建的目录
cd zabbix-docker-offline

# 导出 MySQL 8.0
docker save -o mysql-8.0.tar mysql:8.0

# 导出 Zabbix Server
docker save -o zabbix-server-mysql-6.0.tar zabbix/zabbix-server-mysql:6.0-ubuntu-latest

# 导出 Zabbix Web
docker save -o zabbix-web-nginx-mysql-6.0.tar zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest

# 导出 Zabbix Agent
docker save -o zabbix-agent-6.0.tar zabbix/zabbix-agent:6.0-ubuntu-latest

# 导出 Portainer
docker save -o portainer-ce.tar portainer/portainer-ce:latest

# 导出 Adminer
docker save -o adminer.tar adminer:latest

# 验证导出是否成功
ls -lh

# 打包本地文件
# 打包传输 zabbix-docker-offline 目录里的文件
tar zcvf zabbix-docker-offline.tar.gz zabbix-docker-offline/

2 内网环境部署(10.1.14.193)

2.1 传输文件并且加载镜像

# 将打包好的 zabbix-docker-offline.tar.gz 文件上传至内网服务器 /opt 目录
mkdir -p /opt/zabbix-docker
tar zxvf zabbix-docker-offline.tar.gz -C /opt/zabbix-docker

# 加载所有镜像
docker load -i /opt/zabbix-docker/zabbix-docker-offline/mysql-8.0.tar
docker load -i /opt/zabbix-docker/zabbix-docker-offline/zabbix-server-mysql-6.0.tar
docker load -i /opt/zabbix-docker/zabbix-docker-offline/zabbix-web-nginx-mysql-6.0.tar
docker load -i /opt/zabbix-docker/zabbix-docker-offline/zabbix-agent-6.0.tar
docker load -i /opt/zabbix-docker/zabbix-docker-offline/portainer-ce.tar
docker load -i /opt/zabbix-docker/zabbix-docker-offline/adminer.tar

2.2  创建持久化目录

mkdir -p /data/zabbix/{mysql,server}
chmod -R 777 /data/zabbix

2.3 编写 docker-compose.yml

version: '3.8'

services:
  mysql-server:
    image: mysql:8.0
    container_name: zabbix-mysql
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: Fit2cloud...  # 替换为你的真实密码
      MYSQL_ROOT_PASSWORD: Fit2cloud...  # 替换为你的真实密码
    volumes:
      - /data/zabbix/mysql:/var/lib/mysql
    networks:
      - zabbix-net
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci
      --default-authentication-plugin=mysql_native_password
      --log_bin_trust_function_creators=1  # 新增:解决函数创建权限问题(关键)
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-pFit2cloud..."]  # 替换为你的root密码
      interval: 10s
      timeout: 5s
      retries: 5

  zabbix-server:
    image: zabbix/zabbix-server-mysql:6.0-ubuntu-latest
    container_name: zabbix-server
    restart: unless-stopped
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: Fit2cloud...  # 替换为你的真实密码
      ZBX_ENABLE_SNMP_TRAPS: "true"
      DB_SERVER_PORT: 3306
    volumes:
      - /data/zabbix/server:/var/lib/zabbix
    networks:
      - zabbix-net
    ports:
      - "10051:10051"
    depends_on:
      mysql-server:
        condition: service_healthy

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest
    container_name: zabbix-web
    restart: unless-stopped
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: Fit2cloud...  # 替换为你的真实密码
      ZBX_SERVER_HOST: zabbix-server
      PHP_TZ: Asia/Shanghai
    networks:
      - zabbix-net
    ports:
      - "80:8080"
      - "443:8443"
    depends_on:
      - zabbix-server

  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /data/zabbix/portainer:/data
    networks:
      - zabbix-net

networks:
  zabbix-net:
    driver: bridge

2.4 启动 Zabbix 服务

cd /opt/zabbix-docker
docker compose up -d

容器状态

3 Agent 节点部署(10.1.14.123)

3.1 加载 Agent 镜像

# 提前创建 /opt/zabbix-docker 目录并将 zabbix-agent.tar 文件上传至 /opt/zabbix-docker 目录
docker load -i /opt/zabbix-docker/zabbix-agent.tar

3.2 启动容器

docker run -d \
  --name zabbix-agent \
  --privileged \
  -e ZBX_SERVER_HOST=10.1.14.193 \    # zabbix 服务端 IP
  -e ZBX_HOSTNAME=ubuntu-14-123 \     # 被监控服务器名称
  -p 10050:10050 \
  -v /:/rootfs \
  -v /var/run:/var/run \
  zabbix/zabbix-agent:6.0-ubuntu-latest

4 初始化配置

1. 访问 Web 界面

  • 浏览器访问 http://10.1.14.193
  • 默认凭证:Admin/zabbix

2. 添加监控主机
登录后进入 Configuration → Hosts → Create host
配置项:Host name: ubuntu-14-123

关联模板:Linux by Zabbix agent
Groups: Linux servers
Agent interfaces: 10.1.14.123:10050

添加完成后重启被监控端的 zabbix-agent 容器

docker restart zabbix-agent

详细的 Zabbix 操作请参考:https://blog.csdn.net/m0_75254642/article/details/150774030?spm

本文部署参考:https://blog.csdn.net/weixin_61933730/article/details/147045138?ops_request_misc

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐