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这个容器,这个就是为什么前面需要看懂基本框架,跟自己直接主机上搭建是存在区别的。

修改时区

进入web容器

docker exec -it d624d5d986eb /bin/bash

修改配置文件

vi /etc/php7/conf.d/99-zabbix.ini
date.timezone=Asia/Shanghai
去掉注释,改成自己要的时区

ps -ef | grep php-fpm7
kill 查看的进程号

由于容器中有supervisord管理php-fpm kill掉fpm主进程很快也会被重启此时发现zabbix的页面时间已经和系统时间一致

修改时区参考:https://www.jianshu.com/p/cbdc59472fbe

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值