环境准备:一台server端,两台agent端

server端部署zabbix-server和mariadb服务

agent端部署zabbix-agent服务

一、docker容器里下载zabbix和mariadb

docker pull mariadb

docker pull zabbix

[root@localhost cmp_mariadb]# docker pull mariadb
Using default tag: latest
latest: Pulling from library/mariadb
。。。
Digest: sha256:31cf9574e8e4043022e7f6260d77a08ab33bba1ab04a074ccaa077f3cf50b9e3
Status: Downloaded newer image for mariadb:latest

二、cd到/opt目录下,上传cmp_mariadb.zip  和  cmp_zabbix_server.zip压缩包,并分别解压

[root@localhost opt]# ls
cmp_mariadb cmp_mariadb.zip cmp_zabbix_server cmp_zabbix_server.zip

三、进入cmp_mariadb的目录

[root@localhost cmp_mariadb]# ls
docker-compose.yml mysqlconf mysqllib mysqllog

编辑一个docker-compose.yml的文件,并写入必要的信息

注意此文件名是不可变动的。

四、编辑此文件

[root@localhost cmp_mariadb]# cat docker-compose.yml
mysql:
image: mariadb:latest
ports:
- "3306:3306"            #端口映射
volumes:                  #编辑宿主机与容器的数据卷映射
- ./mysqllib:/var/lib/mysql
- ./mysqlconf:/etc/mysql
- ./mysqllog:/var/log/mysql
environment:              #数据库的密码,库名等
- MYSQL_USER=zabbix
- MYSQL_DATABASE=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=123321
- LANG=en_US.utf8
- TZ=Asia/Shanghai
restart: always

五、同理进入cmp_zabbix_server目录

[root@localhost cmp_zabbix_server]# ls
docker-compose.yml zabbixconfig zabbix-scripts

六、编辑一个名为docker-compose.yml的文件,写入必要的脚本命令

[root@localhost cmp_zabbix_server]# cat docker-compose.yml
version: '3'
services:
zabbix-server:
container_name: zabbix-server        #容器名
image: zabbix/zabbix-server-mysql:latest    #建立容器的镜像
restart: always
network_mode: host              #建立容器的网络模式
# ports:
# - "10051:10051"
environment:
- DB_SERVER_HOST=192.168.253.9      #数据库地址
- MYSQL_USER=zabbix
- MYSQL_DATABASE=zabbix
- MYSQL_PASSWORD=zabbix
- DB_SERVER_ROOT_USER=root
- DB_SERVER_ROOT_PASS=123321
- TZ='Asia/Shanghai'
volumes:
- /etc/localtime:/etc/localtime:ro
- ./zabbix-scripts:/usr/lib/zabbix
- ./zabbixconfig:/etc/zabbix
zabbix-web-nginx:
image: zabbix/zabbix-web-nginx-mysql:latest
restart: always
network_mode: bridge
ports:              
- "8081:80"                #端口映射
- "8444:443"
environment:
- DB_SERVER_HOST=192.168.253.9
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=123321
- ZBX_SERVER_HOST=192.168.253.9
- PHP_TZ="Asia/Shanghai"
- TZ='Asia/Shanghai'
zabbix-agent:
image: zabbix/zabbix-agent:latest
environment:
- ZBX_HOSTNAME=Zabbix server
- ZBX_SERVER_HOST=127.0.0.1
- ZBX_SERVER_PORT=10051
- TZ='Asia/Shanghai'
network_mode: host
# ports:
# - "10050:10050"
restart: always
privileged: true
# links:
# - zabbix-server:zabbixhost

七、编辑完后,在各自目录下执行以下命令启动容器。

docker-compose up -d

  执行以下命令查看容器状态。

docker-compose ps

[root@localhost cmp_zabbix_server]# docker-compose up -d
[root@localhost cmp_zabbix_server]# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------------------------------
cmpzabbixserver_zabbix-agent_1 /sbin/tini -- /usr/bin/doc ... up
cmpzabbixserver_zabbix-web-nginx_1 docker-entrypoint.sh Up 0.0.0.0:8444->443/tcp, 0.0.0.0:8081->80/tcp
zabbix-server /sbin/tini -- /usr/bin/doc ... Up

八、再另外的节点部署zabbix-agent.

[root@compute opt]# ls
docker-compose.yml
[root@compute opt]# cat docker-compose.yml
version: '3'
services:
zabbix-agent:
image: zabbix/zabbix-agent:latest
container_name: zabbix-agent        #容器名
environment:
- ZBX_HOSTNAME=node2
- ZBX_SERVER_HOST=192.168.253.9        #server服务端ip
- ZBX_SERVER_PORT=10051            #server服务的端口

- TZ='Asia/Shanghai'
network_mode: bridge
ports:
- "10050:10050"          #端口映射
restart: always
privileged: true

九、在此目录下执行以下命令启动容器。

docker-compose up -d

  执行以下命令查看容器状态。

docker-compose ps

[root@compute opt]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------
zabbix-agent
/sbin/tini -- /usr/bin/doc ... Up 0.0.0.0:10050->10050/tcp

如果需要停止容易或者删除容器,执行以下命令

  docker-compose stop 容器名

  docker-comopse rm 容器名

十、到web页面输入ip地址:端口访问zabbix。

然后把node1和node2节点主机添加进入。

如果报错:

这是因为数据库版本导致,进入容器数据库更新版本到所需的3040000。

mysql> show databases;
mysql> use zabbix;
mysql> update dbversion set mandatory=3040000;
mysql> flush privileges;

然后输入登陆用户与密码。

docker版的zabbix部署的更多相关文章

  1. Docker 版 3分钟部署 .net core 开源在线客服系统,他来了

    我在博客园发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 前些天又应朋友的要求,发了一篇 CentOS 版本的安装部署教程:https://www.cnblogs.com ...

  2. docker版redmine安装部署

    数据库准备 docker run -d --name some-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=redmine postgr ...

  3. .Net Core 自动化部署:使用docker版jenkins部署dotnetcore应用

    安装docker版jenkins 因为jenkins的docker版本本身没有 dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins Docker Contai ...

  4. Docker 版rocketmq部署

    rocketmq 部署启动指南-Docker 版   最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑. 准备工作# ...

  5. 美图DPOS以太坊教程(Docker版)

    一.前言 最近,需要接触区块链项目的主链开发,在EOS.BTC.ethereum.超级账本这几种区块链技术当中,相互对比后,最终还是以go-ethereum为解决方案. 以ethereum为基准去找解 ...

  6. Docker swarm结合Openresty部署rabbitmq集群

    Docker swarm结合Openresty部署rabbitmq集群 大家好,年底了,年味儿越来越浓了.2019年的寒冬被定义为未来10年中最好的一年,对于这一说法悲观的人和乐观的人的理解是不一样的 ...

  7. Docker下实战zabbix三部曲之二:监控其他机器

    在上一章<Docker下实战zabbix三部曲之一:极速体验>中,我们快速安装了zabbix server,并登录管理页面查看了zabbix server所在机器的监控信息,但是在实际场景 ...

  8. Docker下实战zabbix三部曲之三:自定义监控项

    通过上一章<Docker下实战zabbix三部曲之二:监控其他机器>的实战,我们了解了对机器的监控是通过在机器上安装zabbix agent来完成的,zabbix agent连接上zabb ...

  9. 服务发现之consul理论整理_结合Docker+nginx+Tomcat简单部署案例

    目录 一.理论概述 服务发现的概念简述 consul简述 二.部署docker+consul+Nginx案例 环境 部署 三.测试 四.总结 一.理论概述 服务发现的概念简述 在以前使用的是,N台机器 ...

随机推荐

  1. u-boot从nand 启动时的问题解决记录

    u-boot从nand 启动时的问题解决记录 问题描述: 使用u-boot-1.1.6版本u-boot移植到JZ2440开发板上,当前已经能够从Nor启动,但是不能从Nand正常启动(u-boot大小 ...

  2. Istio技术与实践04:最佳实践之教你写一个完整的Mixer Adapter

    Istio内置的部分适配器以及相应功能举例如下: circonus:微服务监控分析平台. cloudwatch:针对AWS云资源监控的工具. fluentd:开源的日志采集工具. prometheus ...

  3. Eclipse创建Servers没有Apache选项

    help->install new software加入网址是http://download.eclipse.org/releases/Neon,最后一个是你eclipse的版本.得到一系列的插 ...

  4. Linux文件系统之复制文件cp(文件复制)

    cp 命令(文件复制)   cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件, ...

  5. VMware虚拟机CentOS与宿主机共享目录

    正常情况下,在虚拟机CentOS中安装了vmware-tools后,配置完成共享目录,会自动在/mnt/hgfs下面出现共享目录. 如果该目录为空,并且通过命令:vmware-hgfsclient 的 ...

  6. JavaScript的7大基本类型

  7. BZOJ 1036 [ZJOI2008]树的统计Count 动态维护树上求和与求最大值 LCT板题

    模板,也可以用树链剖分+线段树做O(nlog2)O(nlog^2)O(nlog2) 用LCT做O(nlog)O(nlog)O(nlog)在乘上一个大于30的常数-然后LCT比树剖慢一倍- CODE # ...

  8. scrapy+selenium 爬取淘宝商城商品数据存入到mongo中

    1.配置信息 # 设置mongo参数 MONGO_URI = 'localhost' MONGO_DB = 'taobao' # 设置搜索关键字 KEYWORDS=['小米手机','华为手机'] # ...

  9. children([expr]) 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。

    children([expr]) 概述 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合. 可以通过可选的表达式来过滤所匹配的子元素.注意:parents()将查找所有祖辈元素,而chil ...

  10. CSRF(跨站请求伪造)

    跨站请求伪造(Cross-site request forgery)是一种冒充受信任用户,向服务器发送非预期请求的攻击方式. 攻击的前提是: 用户已经登录过某网站. 攻击者通过一些诱惑性的标题,诱惑用 ...