• Zabbix 介绍
  zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
  Zabbix 作为企业级分布式监控系统,具有很多优点,如:分布式监控,支持 node 和 proxy 分布式模式;自动化注册,根据规则,自动注册主机到监控平台,自动添加监控模板;支持 agentd、snmp、ipmi 和 jmx 等很多通信方式。然而部署一套完整的zabbix,需要安装数据库、web服务器、zabbix-server和zabbix-agent,这几样服务,过程都比较复杂,一不留心就可能出错,所以今天我使用docker容器搭建了一套zabbix服务,不仅搭建快,而且不易出错。本文适合了解docker的朋友。
 
  • Zabbix 相关镜像下载

1. 下载载MySQL镜像mysql:5.7。在docker hub上有以下版本

8.0.11,8.0,latest
5.7.22,5.7,5
5.6.40, 5.6 
5.5.60, 5.5
这里使用5.7版本,在linux终端使用

docker pull mysql:5.7 

下载MySQL镜像。再通过

docker image ls 

查看下载的镜像。如下图:

2. 下载zabbix-server镜像,zabbix-server镜像分两种,支持MySQL数据库zabbix-server-mysql,支持支持PostgreSQL数据库zabbix/zabbix-server-pgsql。下面安装的是支持MySQL数据库的Server镜像。

打开zabbix-server-mysql的docker hub,大家会发现,zabbix-server-mysql有下面这些版本

Zabbix server 3.0 (tags: alpine-3.0-latest, ubuntu-3.0-latest, centos-3.0-latest)
Zabbix server 3.0.* (tags: alpine-3.0.*, ubuntu-3.0.*, centos-3.0.*)
Zabbix server 3.2 (tags: alpine-3.2-latest, ubuntu-3.2-latest, centos-3.2-latest)
Zabbix server 3.2.* (tags: alpine-3.2.*, ubuntu-3.2.*, centos-3.2.*)
Zabbix server 3.4 (tags: alpine-3.4-latest, ubuntu-3.4-latest, centos-3.4-latest, alpine-latest, ubuntu-latest, centos-latest, latest)
Zabbix server 3.4.* (tags: alpine-3.4.*, ubuntu-3.4.*, centos-3.4.*)
Zabbix server 4.0 (tags: alpine-trunk, ubuntu-trunk)

因为我的服务器是centos7版本,所以选择的是centos-latest版本。还有后面如果想自己重做镜像的话,选择centos版本,用着会更简单一点。在linux终端使用

docker pull zabbix/zabbix-server-mysql:centos-latest

下载zabbix-server的镜像。再通过

docker image ls

查看下载的镜像。如下图:

3. 下载Zabbix web镜像,这里使用的是基于Nginx web服务器及支持MySQL数据库的Zabbix web接口zabbix/zabbix-web-nginx-mysql。这里是用的是latest版本,在linux终端使用

docker pull zabbix/zabbix-web-nginx-mysql:latest

下载web镜像。再通过 

docker image ls

查看下载的镜像。如下图: 

4. 下载zabbix-java-gateway镜像, Zabbix本身不支持直接监控Java,而是使用zabbix-java-gateway监控jvm/tomcat性能。这里我们使用latest版本,在linux终端使用

docker pull zabbix/zabbix-java-gateway:latest

下载zabbix-java-gateway镜像。再通过 

docker image ls

查看下载的镜像。如下图:

  • 镜像运行

1.  启动zabbix等镜像之前,需要先创建一个新的 Docker 网络。需要将后面的zabbix-server、mysql、web等容器都加入到此网络中,方便互相访问。在终端使用下面命令创建。

docker network create -d bridge zabbix_net

创建后,可以查看是否创建成功。

docker network ls

2. 运行mysql 镜像,创建mysql容器。

docker run -dit -p 3306:3306 --name zabbix-mysql --network zabbix_net --restart always -v /etc/localtime:/etc/localtime -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix_pwd" -e MYSQL_ROOT_PASSWORD="root_pwd" mysql:5.7

其中-p 是将容器中的3306端口映射到服务器的3306端口,

--network zabbix_net是将容器加入到zabbix_net网络中,

-v /etc/localtime:/etc/localtime是同步服务器和容器内部的时区,

--restart always设置自启动,

-e MYSQL_DATABASE="zabbix",创建环境变量。

--name zabbix-mysql,给容器命名。

3. 运行zabbix-java-gateway镜像,创建zabbix-java-gateway容器。

docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name=zabbix-java-gateway --network zabbix_net zabbix/zabbix-java-gateway:latest

4. 运行zabbix-server-mysql镜像,创建zabbix-server-mysql容器。

首先创建数据卷zabbix-server-vol,通过命令

docker volume create zabbix-server-vol

启动zabbix-server-mysql容器。 

docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix -v /etc/localtime:/etc/localtime -v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts --name=zabbix-server-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix_pwd" -e MYSQL_ROOT_PASSWORD="root_pwd" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" zabbix/zabbix-server-mysql:centos-latest

5. 运行zabbix-web-nginx-mysql镜像,创建zabbix-web-nginx-mysql容器。

docker run -dit -p 80:80 -v /etc/localtime:/etc/localtime --name zabbix-web-nginx-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix_pwd" -e MYSQL_ROOT_PASSWORD="root_pwd" -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:latest

zabbix所需容器已经全部启动,可以通docker ps 查看容器状态,如下图:

6. 在浏览器中输入http://IP/zabbix,打开zabbix首页,其中用户名密码分别是admin/zabbix。

出现下面页面,zabbix搭建成功。是不是比自己创建数据库,搭建zabbix-server简单很多。

版权所有,欢迎转载,转载请注明出处:http://www.cnblogs.com/hustar0102/

 

  
 
 
 
 
  
 

docker+zabbix,使用docker搭建zabbix服务的更多相关文章

  1. zabbix环境安装搭建

    一.Zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix由zabbix server与可选组件zabbix agent两部分组成. ...

  2. Docker搭建zabbix+grafana监控系统

    一.准备工作 1.mysql数据库:192.168.1.5 2.nginx服务:192.168.1.10 3.docker服务器:192.168.1.20 4.zabbix客户端若干 二.docker ...

  3. docker搭建zabbix

    本次使用docker搭建zabbix的组合是mysql+docker+zabix-server 1 先安装数据库mysql docker run --name zabbix-mysql-server ...

  4. docker搭建zabbix收集windows计数器性能数据

    1 docker服务的安装 1)在线安装docker服务 在线安装可以参考下面的安装步骤 a 安装相关依赖组件 yum install -y yum-utils device-mapper-persi ...

  5. zabbix基于docker安装

    centos的版本 # cat /etc/redhat-release CentOS Linux release (Core) docker的安装 配置yum源 # vim /etc/yum.repo ...

  6. Zabbix在Docker中的应用和监控

    目录 Zabbix在Docker中的应用和监控 一.如何使Zabbix跑在Docker里 1.Docker基础环境配置 2.Docker-compose安装配置 3.启动zabbix server 4 ...

  7. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

  8. zabbix监控docker

    [toc] 1.下载模版 然后把模版放到/usr/local/lib/zabbix/agent下 github地址内含监控模版 2.修改 zabbix-agentd 配置文件 vim /usr/loc ...

  9. docker swarm 搭建与服务更新

    一,docker swarm 是什么 Docker Swarm.Docker Machine与Docker Compose号称Docker三剑客Docker Swarm 和 Docker Compos ...

随机推荐

  1. 6-Java-C(打印大X)

    题目描述: 小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度. 为了便于比对空格,所有的空白位置都以句点符来代替. 要求输入两个整数m n,表示笔的宽度,X的高度.用空格分开 ...

  2. ArrayList集合的特点和几种遍历方法

    public class temp { public static void main(String[] args)throws Exception { ArrayList 在定义时长度为空 ,在新增 ...

  3. python在linux下的使用

    1.查看python(解释器)的版本(什么版本的解释器支持哪一版版的语言标准) 一般在linux上已经预装了python,只要在Bash Shell中输入python,即可看到如下版本信息: 按Ctr ...

  4. VM虚拟机中CentOS6.4操作系统安装一

    在 VMware中鼠标单击“编辑虚拟机设置”,在弹出的“虚拟机设置”对话框中的“硬件”标签中选择“CD/DVD(IDE)”,然后在右侧的“CD /DVD(IDE)”连接选项中选择“使用ISO映像文件” ...

  5. wamp下mysql错误提示乱码的解法

    出处:http://blog.csdn.net/jsship/article/details/42914217 运行mysql命令时,出现的错误提示是乱码 :    [Err] 1064 - Erre ...

  6. c语言基础--数据类型

    一.整型数据: 1.表格: 类型名称 可简写 占用字节 数值范围 signed int int -2147483648(-2^31)~2147483647(2^31-1) unsigned int u ...

  7. Java AOP

    AOP 今天我要和大家分享的是 AOP(Aspect-Oriented Programming)这个东西,名字与 OOP 仅差一个字母,其实它是对 OOP 编程方式的一种补充,并非是取而代之.翻译过来 ...

  8. 关于OPENSSL的EVP函数的使用

    4月份没什么做,就是做了OPENSSL的 加密和解密的应用,现在公开一下如何调用OPENSSL对字符串进行加密和解密,当中也学会了对加密数据进行BASE64编码,现在公开一下代码,在这感谢GITHUB ...

  9. noip模拟赛 轮换

    分析:模拟题,关键就是要理解题目意思.m≥3的轮换可以拆成m=2的小轮换,小轮换的话只需要交换一下就可以了. #include <cstdio> #include <cstring& ...

  10. JDK源码解析(一)ArrayList源码解析

    这里为了方便写注释,我是把ArrayList的源码复制下来放到自己创建的类里面的 这个变量则指向具体存放数据的数组 看下构造函数吧 点进去看下LinkedList是怎么数组化的 很弱智吧,就是创建一个 ...