Docker部署Zabbix教程

1. 整体流程

下面是Docker部署Zabbix的整体流程:

gantt
    title Docker部署Zabbix流程

    section 准备工作
    安装Docker: done, 2022-01-01, 2d
    拉取Zabbix镜像: done, 2022-01-03, 1d
    创建网络: done, 2022-01-04, 1d

    section 配置Zabbix Server
    创建Zabbix Server容器: done, 2022-01-05, 2d
    配置Zabbix Server: done, 2022-01-07, 1d

    section 配置Zabbix Agent
    创建Zabbix Agent容器: done, 2022-01-08, 2d
    配置Zabbix Agent: done, 2022-01-10, 1d

    section 配置Zabbix Web
    创建Zabbix Web容器: done, 2022-01-11, 2d
    配置Zabbix Web: done, 2022-01-13, 1d

    section 验证和监控
    访问Zabbix Web界面: done, 2022-01-14, 1d
    配置监控主机: done, 2022-01-15, 1d
    监控主机状态: done, 2022-01-16, 1d

2. 步骤说明

2.1 准备工作

首先,你需要安装Docker来运行Zabbix所需的容器。请按照官方文档安装Docker。

然后,你需要拉取Zabbix镜像并创建一个新的网络来连接各个容器。在命令行中执行以下命令:

docker pull zabbix/zabbix-server-mysql:latest
docker pull zabbix/zabbix-web-nginx-mysql:latest
docker pull zabbix/zabbix-agent:latest

docker network create zabbix_network
  • docker pull命令用于拉取Zabbix相关镜像,由于我们使用的是最新版,所以使用:latest标签。
  • docker network create命令用于创建一个名为zabbix_network的网络,这将在后面的步骤中使用。

2.2 配置Zabbix Server

接下来,你需要创建一个Zabbix Server容器,并配置它。执行以下命令:

docker run --name zabbix-server \
    --restart unless-stopped \
    --detach \
    --network zabbix_network \
    --env DB_SERVER_HOST="zabbix-db" \
    --env MYSQL_USER="zabbix" \
    --env MYSQL_PASSWORD="password" \
    --env MYSQL_DATABASE="zabbix" \
    --env ZBX_SERVER_HOST="zabbix-server" \
    --env ZBX_SERVER_PORT="10051" \
    --env PHP_TZ="Asia/Shanghai" \
    zabbix/zabbix-server-mysql:latest
  • --name选项用于指定容器的名称。
  • --restart选项用于指定容器在异常退出后的重启策略。
  • --detach选项用于在后台运行容器。
  • --network选项用于指定容器所连接的网络。
  • --env选项用于设置环境变量,这些变量将用于配置Zabbix Server的连接和时区。

2.3 配置Zabbix Agent

然后,你需要创建一个Zabbix Agent容器,并配置它。执行以下命令:

docker run --name zabbix-agent \
    --restart unless-stopped \
    --detach \
    --network zabbix_network \
    --env ZBX_HOSTNAME="zabbix-agent" \
    --env ZBX_SERVER_HOST="zabbix-server" \
    --env ZBX_SERVER_PORT="10051" \
    zabbix/zabbix-agent:latest
  • --name选项用于指定容器的名称。
  • --restart选项用于指定容器在异常退出后的重启策略。
  • --detach选项用于在后台运行容器。
  • --network选项用于指定容器所连接的网络。
  • --env选项用于设置环境变量,这些变量将用于配置Zabbix Agent与Zabbix Server的连接。

2.4 配置Zabbix Web

最后,你需要创建一个Zabbix Web容器,并配置