docker 搭建zabbix,利用network方式互访容器,针对官网link方式稍作修改

今天实战docker环境部署zabbix4.4,学习心法的过程

首先需要理解几个概念,有助于下面的配置理解

1、环境变量
环境:确保系统能正常运行的环境
变量:一个可以被赋值的字符串
环境变量:指定操作系统正常运行环境的一些必要变量参数
docker 中用 -e 来指定环境变量

2、docker容器之间是怎么互通的
很重要的概念,因为容器服务之间少不了要互相访问,不推荐使用官网的link方式
看我前面写的文章:点击访问

3、docker数据持久化
针对重要的数据需要本地存储,避免容器删除数据丢失
看我前面写的文章:点击访问

4、zabbix的最基本的架构
在这里插入图片描述
最基本的需要,web+mysql+zabbix-server


docker部署zabbix

  • zabbix-server
  • zabbix-web
  • zabbix-agent
  • mysql

下载docker镜像,对应上面的服务下载

  • docker pull zabbix/zabbix-server-mysql
  • docker pull zabbix/zabbix-web-nginx-mysql
  • docker pull zabbix/zabbix-agent
  • docker pull mysql:5.7

启动容器

1、数据持久化

docker volume create zabbix-mysql-data
docker volume create zabbix-mysql-conf

2、network 网络配置

docker network create \
--driver=bridge \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
zabbix

3、启动mysql

密码自定义

docker run --name mysql-server -t \
--network zabbix \
--ip 192.168.1.100 \
-p 3306:3306 \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="yshxxxxx" \
-e MYSQL_ROOT_PASSWORD="yshxxxxx" \
-v zabbix-mysql-data:/var/lib/mysql \
-v zabbix-mysql-conf:/etc/mysql \
-d mysql:5.7 \
--character-set-server=utf8 \
--collation-server=utf8_unicode_ci

-v 这边主要把数据库和配置文件做了数据持久化,看个人需求可以自定义,最后2个是配置mysql数据库的字符集,不然中文就会出现乱码。

4、启动zabbix服务

docker run --name zabbix-server-mysql -t \
--network zabbix \
--ip 192.168.1.101 \
--network-alias zabbix-server \
-e DB_SERVER_HOST="192.168.1.100" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="yshxxxxx" \
-e MYSQL_ROOT_PASSWORD="yshxxxxx" \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

不要看名称是写的带mysql,就以为带mysql数据了,msyql是上面单独容器,这里只是支持mysql数据库

第四行很重要,查看官网没有环境变量可以带入,因为nginx有个参数是固定设置成了zabbix-server,我只能添加别名方式访问不然nginx无法连接到数据库
在这里插入图片描述

5、启动nginx

docker run --name zabbix-web-nginx-mysql -t \
--network zabbix \
--ip 192.168.1.102 \
-e DB_SERVER_HOST="192.168.1.100" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="yshxxxxx" \
-e MYSQL_ROOT_PASSWORD="yshxxxxx" \
-p 8080:80 \
-d zabbix/zabbix-web-nginx-mysql:latest

6、启动zabbix-agent

docker run --name some-zabbix-agent \
--network zabbix \
--ip 192.168.1.103 \
-e ZBX_HOSTNAME=zabbix-server-mysql \
-e ZBX_SERVER_HOST=192.168.1.101 \
-d zabbix/zabbix-agent:latest

总结:映射到宿主机的端口号不能跟宿主机重复,部分配置都是根据需求可以改的,不是固定的

测试

账号密码
admin
zabbix
在这里插入图片描述
注意这里的IP不是127.0.0.1了,是我单独配置的zabbix-agent这个容器,这个就是为什么前面需要看懂基本框架,跟自己直接主机上搭建是存在区别的。

发布了37 篇原创文章 · 获赞 14 · 访问量 1373

猜你喜欢

转载自blog.csdn.net/yangshihuz/article/details/104026198
今日推荐