环境准备:一台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. Django drf:cbv源码、resful规范及接口、drf使用、response源码、序列化

    一.cbv源码分析 二.resful规范 三.django中写resful的借口 四.drf写resful的借口 五.APIVIew源码分析 六.drf之序列化 一.cbv源码分析 -CBV和FBV ...

  2. EasyUI中取的DataGrid中选中行数据

    dataGrid中显示列:ItemID,ItemCode,ItemName,Note 一.选中一行 var selRow = $('#dataGrid').datagrid('getSelected' ...

  3. linux——命令2—删除—查看—搜索

    多种查看命令: 多种搜索命令: ll命令 -rw-rw-rw  - 表示文件 drw-rw-rw  d 表示目录文件夹 ========================== 使用rm删除文件 例如:r ...

  4. Load store and memoryless

    metal https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/MTLBestPractice ...

  5. <script language= "javascript " for= "window " event= "onload ">

    狼-志 EVENT   event   设置或获取脚本编写用于的事件   FOR   htmlFor   设置或获取绑定到事件脚本的对象. 可以这样理解. <script   language= ...

  6. np中的温故知新

    1.一维数组中寻找与某个数最近的数 # 一维数组中寻找与某个数最近的数 Z=np.random.uniform(0,1,20) print("随机数组:\n",Z) z=0.5 m ...

  7. mysql自增主键清零方法

    MySQL数据库自增主键归零的几种方法 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数: truncate table table_name; 1 当用户没有trunc ...

  8. 【Android-数据库Sqlite】Sqlite数据库 增、删、改、查

    1.先创建一个Product类 Product.java 变量如下: int id; String code; String name; int qty; 2.创建一个DBHelper类 DBHelp ...

  9. 分布式hadoop 架构图

    zk:zookeeper NN:namenode DN:datanode ZF Failover Controller:简称zkfc ,是zk的客户端,只运行在主备的namenode上,主要作用是判断 ...

  10. PHP大文件分片上传

    前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...