使用docker搭建zabbix环境

本文详细介绍了如何使用Docker部署Zabbix监控系统,包括下载MySQL、Zabbix Server、Zabbix Web和Zabbix Java Gateway镜像,创建Docker网络,以及配置和运行各组件容器。

一、下载mysql,这里下载mysql:5.7,

docker image pull mysql:5.7

 

二、下载zabbix-server镜像,zabbix-server镜像有两种,一种是支持PostgreSQL,一种是支持mysql的。这里安装的是基于mysql的。

使用如下命令看一下zabbix-server官方的镜像。

docker search zabbix-server

我们选择第一个,zabbix-server-mysql。

使用如下命令将镜像pull下来,

docker image pull zabbix/zabbix-server-mysql

三、接下来下载 zabbix web镜像。

使用如下命令查看一下zabbix web都有哪些镜像,

docker search zabbix-web

看到有nginx的,也有基于apache的,这里选择基于nginx的。

下载镜像,

docker image pull zabbix/zabbix-web-nginx-mysql

 

四、下载 zabbix-java-gateway 镜像。zabbix本身不支持直接监控java,但可以使用 zabbix-java-gateway 监控 jvm/tomcat 的性能。

先查找一下,

docker search zabbix-java

下载第一个镜像,

docker image pull zabbix/zabbix-java-gateway

五、创建docker网络,将zabbix-server,mysql,web等容器都加入到这个网络中,方便互相通信。

使用如下命令创建,

docker network create -d bridge zabbix-test-net

六、将镜像分别放入容器运行起来,

1、使用mysql镜像创建mysql容器,并运行,

docker container run -idt -p 1111:3306 --name zabbix-mysql --network zabbix_test_net --restart always -v /etc/localtime:/etc/localtime -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_ROOT_PASSWORD="123456a" mysql:5.7

参数解释,

-p 1111:3306,将容器的3306端口映射到宿主机的1111端口,

--network zabbix_test_net ,是将容器加入到zabbix_test_net 这个网络中,

-v /etc/localtime:/etc/localtime ,是将容器中的/etc/localtime文件,挂载到宿主机的/etc/localtime上。作用是为了同步时区信息。

--restart always,设置自动启动。

-e MYSQL_DATABASE="zabbix" ,创建环境变量

 

2、使用zabbix-java-gateway 镜像,创建 zabbix-java-gateway 容器。

docker container run -v /etc/localtime:/etc/localtime -idt --restart=always --name=zabbix-java-gateway --network zabbix_test_net zabbix/zabbix-java-gateway

3、使用 zabbix-server-mysql 镜像,创建 zabbix-server-mysql 容器。

首先创建挂载数据的数据卷,

docker volume create zabbix-server-volume

然后创建并运行zabbix-server-mysql 容器,

docker run -idt -p 2222:10051 -v zabbix-server-volume:/etc/zabbix -v /etc/localtime:/etc/localtime -v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts --name=zabbix-server-mysql --restart=always --network=zabbix_test_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_ROOT_PASSWORD="123456a" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" zabbix/zabbix-server-mysql

 

4、使用 zabbix-web-nginx 镜像,创建 zabbix-web-nginx 容器。

使用如下命令,

docker container run -idt -p 3333:80 -v /etc/localtime:/etc/localtime --name zabbix-web-nginx-mysql --restart=always --network=zabbix_test_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_ROOT_PASSWORD="123456a" -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql

 

至此,zabbix所需的容器已经全部启动,可以通过 docker ps 查看容器状态,如下,

5、浏览器输入 http://ip:port/zabbix,

默认用户名密码是 admin/zabbix,

 

### 使用Docker部署Zabbix监控系统的详细步骤 #### 安装必要的软件包 为了在Ubuntu 20.04 LTS系统上通过Docker来部署Zabbix 6.x服务器,需要先安装DockerDocker Compose工具[^1]。 ```bash sudo apt update && sudo apt install -y curl gnupg2 software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker ``` 对于Docker Compose的安装: ```bash sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d'"' -f4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` #### 创建Docker网络 创建一个新的自定义桥接网络以便于容器间的通信: ```bash docker network create zabbix-net ``` #### 准备环境文件 准备一个`.env`文件用于存储环境变量,这有助于简化后续操作并提高安全性。该文件应至少包含数据库密码和其他敏感设置。 #### 编写Docker Compose 文件 编写 `docker-compose.yml` 文件以描述服务栈。此文件将定义运行所需的服务及其依赖关系,包括MySQL/MariaDB作为后端数据库、Zabbix Server本身以及Web前端界面。 ```yaml version: '3' services: db: image: mysql:8.0 restart: always environment: MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: your_password_here MYSQL_ROOT_PASSWORD: root_password_here volumes: - zabbix-db-storage:/var/lib/mysql networks: - zabbix-net zabbix-server-mysql: image: zabbix/zabbix-server-mysql:latest depends_on: - db environment: DB_SERVER_HOST: "db" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "your_password_here" MYSQL_ROOT_PASSWORD: "root_password_here" ports: - "10051:10051" networks: - zabbix-net zabbix-web-nginx-mysql: image: zabbix/zabbix-web-nginx-mysql:latest depends_on: - zabbix-server-mysql environment: ZBX_SERVER_HOST: "zabbix-server-mysql" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "your_password_here" PHP_TZ: "Etc/UTC" ports: - "8080:80" networks: - zabbix-net volumes: zabbix-db-storage: networks: zabbix-net: external: true ``` #### 启动服务 完成上述准备工作之后,在包含`docker-compose.yml`文件的目录下执行启动命令: ```bash docker-compose up -d ``` 此时应该可以看到所有的组件都被拉取下来并且开始工作了。访问http://localhost:8080即可进入Zabbix Web UI进行初始化配置。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值