docker版的zabbix部署
环境准备:一台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部署的更多相关文章
- Docker 版 3分钟部署 .net core 开源在线客服系统,他来了
我在博客园发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 前些天又应朋友的要求,发了一篇 CentOS 版本的安装部署教程:https://www.cnblogs.com ...
- docker版redmine安装部署
数据库准备 docker run -d --name some-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=redmine postgr ...
- .Net Core 自动化部署:使用docker版jenkins部署dotnetcore应用
安装docker版jenkins 因为jenkins的docker版本本身没有 dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins Docker Contai ...
- Docker 版rocketmq部署
rocketmq 部署启动指南-Docker 版 最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑. 准备工作# ...
- 美图DPOS以太坊教程(Docker版)
一.前言 最近,需要接触区块链项目的主链开发,在EOS.BTC.ethereum.超级账本这几种区块链技术当中,相互对比后,最终还是以go-ethereum为解决方案. 以ethereum为基准去找解 ...
- Docker swarm结合Openresty部署rabbitmq集群
Docker swarm结合Openresty部署rabbitmq集群 大家好,年底了,年味儿越来越浓了.2019年的寒冬被定义为未来10年中最好的一年,对于这一说法悲观的人和乐观的人的理解是不一样的 ...
- Docker下实战zabbix三部曲之二:监控其他机器
在上一章<Docker下实战zabbix三部曲之一:极速体验>中,我们快速安装了zabbix server,并登录管理页面查看了zabbix server所在机器的监控信息,但是在实际场景 ...
- Docker下实战zabbix三部曲之三:自定义监控项
通过上一章<Docker下实战zabbix三部曲之二:监控其他机器>的实战,我们了解了对机器的监控是通过在机器上安装zabbix agent来完成的,zabbix agent连接上zabb ...
- 服务发现之consul理论整理_结合Docker+nginx+Tomcat简单部署案例
目录 一.理论概述 服务发现的概念简述 consul简述 二.部署docker+consul+Nginx案例 环境 部署 三.测试 四.总结 一.理论概述 服务发现的概念简述 在以前使用的是,N台机器 ...
随机推荐
- java_八大数据类型
一.整型 1.byte 1个字节(8位--一个字节占8位)-128~127 2.short 2个字节 -32768~32767 3.int 4个字节(常用) 4.long 8个字节 ...
- 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 ...
- idea中iml文件的问题
idea中iml文件的问题 iml文件是idea组织工程的文件, 里面记录了各种记录模块, 文件夹以及依赖的信息, 显示如下: <?xml version="1.0" enc ...
- WinForm DevExpress使用之ChartControl控件绘制图表二——进阶
1. 多坐标折线图 在这个项目中,我需要做不同采集地方和不同数据类型的数据对比,自然而然就用到了多重坐标轴,多重坐标轴可以是多个X轴,也可以是Y轴,它们的处理方式类似.本文通过项目中的实际例子介绍多重 ...
- cookie和Session是啥?
HTTP是无状态(stateless)协议 http协议是无状态协议即不保存状态. 无状态协议的优点: 由于不需要保存记录,所以减少服务器的CPU和内存的资源的消耗.毕竟客户端一多起来保存记录的话对于 ...
- 以组件的方式,添加redis_cache
settings.py中文件内设置如下: CACHES = { 'default':{ 'BACKEND':'django_redis.cache.RedisCache', 'LOCATION':'r ...
- Unity 截图选择框,中间全透明,边缘半透明
效果:点击白色框可拖拽选择区域 代码: using System.Collections; using System.Collections.Generic; using UnityEngine; u ...
- [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 ...
- python类的多态、多态性
多态:多态指的是一类事物有多种形态 多态性: class Animal: def run(self): raise AtrributeError("子类必须实现这种方法") cla ...
- react-native-pg-utils(对react-native全局进行配置,对内置对象原型链增加方法,增加常用全局方法.)
react-native-pg-utils 对react-native全局进行配置,对内置对象原型链增加方法,增加常用全局方法. 每次新建react-native项目之后都会发现有一些很常用的方法在这 ...