插件窝 干货文章 如何将Zabbix部署到Docker中

如何将Zabbix部署到Docker中

Zabbix mysql server Docker 201    来源:    2025-04-27

在Docker中部署Zabbix监控系统

Zabbix是一款流行的开源监控解决方案,使用Docker部署可以简化安装和管理过程。以下是完整的部署指南:

1. 准备工作

确保已安装: - Docker (版本17.05或更高) - Docker Compose (推荐)

2. 使用Docker Compose部署(推荐方法)

创建docker-compose.yml文件:

version: '3'
services:
  zabbix-server:
    image: zabbix/zabbix-server-mysql:latest
    container_name: zabbix-server
    restart: unless-stopped
    ports:
      - "10051:10051"
    environment:
      DB_SERVER_HOST: zabbix-mysql
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_DATABASE: zabbix
    depends_on:
      - zabbix-mysql

  zabbix-mysql:
    image: mysql:8.0
    container_name: zabbix-mysql
    restart: unless-stopped
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_ROOT_PASSWORD: root_pwd
    volumes:
      - zabbix-mysql-data:/var/lib/mysql

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:latest
    container_name: zabbix-web
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      DB_SERVER_HOST: zabbix-mysql
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_DATABASE: zabbix
      ZBX_SERVER_HOST: zabbix-server
      PHP_TZ: "Asia/Shanghai"
    depends_on:
      - zabbix-server
      - zabbix-mysql

volumes:
  zabbix-mysql-data:

3. 启动Zabbix服务

docker-compose up -d

4. 访问Zabbix Web界面

等待所有容器启动后(约2-3分钟),访问:

http://服务器IP:8080

初始登录凭据: - 用户名: Admin - 密码: zabbix

5. 可选配置

使用自定义数据库密码

修改docker-compose.yml中的以下环境变量: - MYSQL_PASSWORD - MYSQL_ROOT_PASSWORD

修改时区

调整PHP_TZ环境变量为您所在的时区,例如:

PHP_TZ: "America/New_York"

持久化数据

Docker Compose文件已经配置了MySQL数据的持久化存储。如需备份,可以备份zabbix-mysql-data卷。

6. 单独容器部署方法

如果不使用Docker Compose,可以分别运行以下命令:

# MySQL数据库
docker run --name zabbix-mysql -t \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e MYSQL_ROOT_PASSWORD="root_pwd" \
  -v zabbix-mysql-data:/var/lib/mysql \
  -d mysql:8.0

# Zabbix Server
docker run --name zabbix-server -t \
  -e DB_SERVER_HOST="zabbix-mysql" \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  --link zabbix-mysql \
  -p 10051:10051 \
  -d zabbix/zabbix-server-mysql:latest

# Zabbix Web界面
docker run --name zabbix-web -t \
  -e DB_SERVER_HOST="zabbix-mysql" \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e ZBX_SERVER_HOST="zabbix-server" \
  -e PHP_TZ="Asia/Shanghai" \
  --link zabbix-server \
  --link zabbix-mysql \
  -p 8080:8080 \
  -d zabbix/zabbix-web-nginx-mysql:latest

7. 升级Zabbix

要升级Zabbix,只需拉取新镜像并重新创建容器:

docker-compose pull
docker-compose up -d

注意事项

  1. 首次启动可能需要几分钟时间初始化数据库
  2. 生产环境中应考虑使用更安全的密码
  3. 对于高可用性需求,应考虑数据库集群和Zabbix Server的HA配置
  4. 监控大量主机时,可能需要调整容器资源限制

通过以上步骤,您已经成功在Docker环境中部署了Zabbix监控系统。