环境准备:一台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. java_八大数据类型

    一.整型 1.byte  1个字节(8位--一个字节占8位)-128~127 2.short  2个字节  -32768~32767 3.int      4个字节(常用) 4.long   8个字节 ...

  2. The fastest MySQL Sandbox setup ever!

    MySQL-Sandbox 3.1.10 introduces a new utility, different from anything I have put before in the MySQ ...

  3. idea中iml文件的问题

    idea中iml文件的问题 iml文件是idea组织工程的文件, 里面记录了各种记录模块, 文件夹以及依赖的信息, 显示如下: <?xml version="1.0" enc ...

  4. WinForm DevExpress使用之ChartControl控件绘制图表二——进阶

    1. 多坐标折线图 在这个项目中,我需要做不同采集地方和不同数据类型的数据对比,自然而然就用到了多重坐标轴,多重坐标轴可以是多个X轴,也可以是Y轴,它们的处理方式类似.本文通过项目中的实际例子介绍多重 ...

  5. cookie和Session是啥?

    HTTP是无状态(stateless)协议 http协议是无状态协议即不保存状态. 无状态协议的优点: 由于不需要保存记录,所以减少服务器的CPU和内存的资源的消耗.毕竟客户端一多起来保存记录的话对于 ...

  6. 以组件的方式,添加redis_cache

    settings.py中文件内设置如下: CACHES = { 'default':{ 'BACKEND':'django_redis.cache.RedisCache', 'LOCATION':'r ...

  7. Unity 截图选择框,中间全透明,边缘半透明

    效果:点击白色框可拖拽选择区域 代码: using System.Collections; using System.Collections.Generic; using UnityEngine; u ...

  8. [Web Component] Allow External Styling of a Web Component's Shadow DOM

    The Shadow DOM protects your components from style conflicts. The same protection also makes it hard ...

  9. python类的多态、多态性

    多态:多态指的是一类事物有多种形态 多态性: class Animal: def run(self): raise AtrributeError("子类必须实现这种方法") cla ...

  10. react-native-pg-utils(对react-native全局进行配置,对内置对象原型链增加方法,增加常用全局方法.)

    react-native-pg-utils 对react-native全局进行配置,对内置对象原型链增加方法,增加常用全局方法. 每次新建react-native项目之后都会发现有一些很常用的方法在这 ...