docker 部署zabbix

多吃一点点 发布于 2025-01-23 1522 字


一、安装docker

在阿里云镜像站查看安装docker命令,链接:https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.57e31b11D68dpY

CentOS (使用 yum 进行安装

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils

# Step 2: 添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# Step 3: 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Step 4: 开启Docker服务
sudo service docker start

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1

Ubuntu(使用 apt-get 进行安装)

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

# step 2: 信任 Docker 的 GPG 公钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Step 3: 写入软件源信息
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
# Step 4: 安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

二、组件信息

组件名称描述docer网络容器IP地址
mysql8.0数据库zabbix-net172.20.240.1
Zabbix Java Gateway Java 网关接受来自 Zabbix server 或 Zabbix proxy 的传入连接,并且只能用作“被动代理”。zabbix-net172.20.240.2
zabbix-server-mysql支持 MySQL 数据库的 Zabbix 服务器zabbix-net172.20.240.3
zabbix-web-serviceZabbix Web 服务zabbix-net172.20.240.4
zabbix-agent采集数据插件host宿主机

三、拉取zabbix、mysql镜像

latest 基于 Alpine Linux 镜像的最新稳定版 Zabbix 组件。

1.拉取镜像

docker pull mysql:8.0.30
docker pull zabbix/zabbix-server-mysql:latest
docker pull zabbix/zabbix-java-gateway:latest
docker pull zabbix/zabbix-web-service:latest
docker pull zabbix/zabbix-agent:latest

2.创建docker卷

docker volume create -d local mysql_data
docker volume create -d local mysql_logs
docker volume create -d local mysql_conf
docker volume create -d local zabbix_server
docker volume create -d local zabbix_agent

注释:Docker 将在本地主机上创建这些卷 作为本地存储

3.创建docker网络

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

注释: Docker 网络中(如 zabbix-net),并将相关容器都连接到这个网络,这些容器就能基于容器名直接进行通信,而无需知道彼此的 IP 地址

四、创建zabbix、mysql容器

1.创建mysql8.0容器

docker run --name mysql-server -t \                            //指定容器名称      
  -v mysql_data:/var/lib/mysql \                               //挂载数据卷
  -v mysql_logs:/var/log/mysql \                               //挂载数据卷
  -v mysql_conf:/etc/mysql \                                   //挂载数据卷
  -e MYSQL_DATABASE="zabbix" \                                 //环境变量_创建名为 zabbix 数据库
  -e MYSQL_USER="zabbix" \                                     //环境变量_创建一个名为 zabbix 的 MySQL 用户
  -e MYSQL_PASSWORD="password" \                               //环境变量_将 zabbix 用户密码设置 指定值 password
  -e MYSQL_ROOT_PASSWORD="password" \                          //环境变量_将 root 用户密码设置 指定值 password
  --network=zabbix-net \                                       //将容器网络连接到zabbix-net网络中
  --ip 172.20.240.1  \                                         //设置静态IP地址
  --restart=unless-stopped \                                   //设置重启策略-自动重启
  -d -p 3306:3306 \                                            //宿主机端口 3306 映射到容器端口 3306
  mysql:8.0.30 \                                               //使用的docker镜像
  --character-set-server=utf8 --collation-server=utf8_bin \    
  --default-authentication-plugin=caching_sha2_password

2. 创建 zabbix java 网关容器

docker run --name zabbix-java-gateway -t \                     //指定容器名称
  --network=zabbix-net \                                       //将容器网络连接到zabbix-net网络中
  --ip 172.20.240.2  \                                         //设置静态IP地址
  --restart=unless-stopped \                                   //设置重启策略-自动重启
  -d zabbix/zabbix-java-gateway:latest                         //使用的docker镜像

3.创建 zabbix server容器

docker run --name zabbix-server-mysql -t \                     //指定容器名称
  -v zabbix_server:/etc/zabbix \                               //挂载数据卷
  -e DB_SERVER_HOST="mysql-server" \                           //环境变量_数据库服务器地址
  -e MYSQL_DATABASE="zabbix" \                                 //环境变量_数据库名称
  -e MYSQL_USER="zabbix" \                                     //环境变量_数据库用户名
  -e MYSQL_PASSWORD="password" \                               //环境变量_数据库密码
  -e MYSQL_ROOT_PASSWORD="password" \                          //环境变量_数据库root密码
  -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \                   //环境变量_指定 zabbix java网关主机名
  -p 10051:10051 \                                             //端口映射
  --network=zabbix-net \                                       //将容器网络连接到zabbix-net网络中
  --ip 172.20.240.3  \                                         //设置静态IP地址
  --restart=unless-stopped \                                   //设置重启策略-自动重启
  -d zabbix/zabbix-server-mysql:latest                         //使用的docker镜像

4.创建 Zabbix Web 容器(Nginx + PHP + MySQL)

docker run --name zabbix-web-nginx-mysql -t \                  //指定容器名称
  -e PHP_TZ="Asia/Shanghai" \                                  //环境变量_设置php时区
  -e ZBX_SERVER_HOST="zabbix-server-mysql" \                   //环境变量_zabbix服务器地址
  -e DB_SERVER_HOST="mysql-server" \                           //环境变量_数据库服务器地址
  -e MYSQL_DATABASE="zabbix" \                                 //环境变量_数据库名称
  -e MYSQL_USER="zabbix" \                                     //环境变量_数据库用户名
  -e MYSQL_PASSWORD="password" \                               //环境变量_数据库密码
  -e MYSQL_ROOT_PASSWORD="password" \                          //环境变量_数据库root密码
  -p 80:8080 \                                                 //端口映射
  --network=zabbix-net \                                       //将容器网络连接到zabbix-net网络中
  --ip 172.20.240.4  \                                         //设置静态IP地址
  --restart=unless-stopped \                                   //设置重启策略-自动重启
  -d zabbix/zabbix-web-nginx-mysql:latest                      //使用的docker镜像

5.创建 zabbix agent容器(根据自己需求来)

docker run --name zabbix-agent -t \                             //指定容器名称                             
  -v zabbix_agent:/etc/zabbix \                                 //挂载数据卷
  -e ZBX_HOSTNAME="master" \                                    //环境变量_zabbix代理主机名
  -e ZBX_SERVER_HOST="172.20.240.3" \                           //环境变量_Zabbix 服务器的 IP 地址
  -e ZBX_SERVER_PORT=10051 \                                    //环境变量_Zabbix 服务器监听的端口
  -p 10050:10050 \                                              //端口映射
  --network host \                                              //使用宿主机网络
  --restart=unless-stopped \                                    //重启策略-自动重启
  --privileged \                                                //让容器以守护进程模式在后台运行
  -d zabbix/zabbix-agent:latest                                 //使用的docker镜像

访问zabbix:宿主机IP地址:80

账号:Admin #注意A是大写

密码:zabbix

  • alipay_img
此作者没有提供个人介绍
最后更新于 2025-01-23