zabbix 官网提供一个镜像 [ zabbix-appliance ], 可以直接拉起一个 zabbix-server. 但是数据库无法分离出来.

本实践使用 zabbix 官方提供的 Docker 镜像 [ zabbix-server-mysql ], [ zabbix-web-nginx-mysql ], 以及 [ mariadb ] 搭建一个 zabbix-server.

镜像说明

  • zabbix-server-mysql : 运行zabbix-server
  • mariadb: zabbix 数据库
  • zabbix-web-nginx-mysql : zabbix UI

Zabbix 微服务系统

Mariadb

docker volume create zbx_mariadb

docker run -d --name zbx_mariadb --restart=always \
-v zbx_mariadb:/var/lib/mysql \
-e "MYSQL_ROOT_PASSWORD=testpw" mariadb

登录 mysql, 授权:

docker exec -it zbx_mariadb mysql -p

MariaDB > CREATE USER zabbix@"172.17.%" IDENTIFIED BY "zabbix";
MariaDB > CREATE DATABASE zabbix CHARACTER SET utf8mb4;
MariaDB > GRANT ALL ON zabbix.* TO zabbix@"172.17.%" IDENTIFIED BY "zabbix";
MariaDB > FLUSH PRIVILEGES;

zabbix-server

docker run -d --name zabbix-server --link zbx_mariadb:mariadb --restart=always -p 10051:10051 \
-e "DB_SERVER_HOST=zbx_mariadb" \
-e "MYSQL_USER=zabbix" \
-e "MYSQL_PASSWORD=zabbix" \
-e "MYSQL_DATABASE=zabbix" \
-v /tmp:/tmp \
-v /etc/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
zabbix/zabbix-server-mysql

镜像 zabbix-server-mysql 基于 alpine, 如果需要在容器内安装 python, 可以进入容器执行:

apk add --no-cache python && \
python -m ensurepip && \
rm -r /usr/lib/python*/ensurepip && \
pip install --upgrade pip setuptools && \
rm -r /root/.cache

ps: 也可以直接拉取: `docker pull zhegao/zabbix-server-mysql`

zabbix-web

docker run -d  --name zabbix-web-nginx-mysql --link zbx_mariadb:mariadb --restart=always -p 8080:80 \
-e DB_SERVER_HOST="zbx_mariadb" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e ZBX_SERVER_HOST="172.17.0.1" \
-e PHP_TZ="Asia/Shanghai" zabbix/zabbix-web-nginx-mysql

nginx 配置

server {
listen 80;
server_name monitor.xx; location / {
proxy_pass http://172.17.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto "http";
}
}

这里的 172.17.0.1 地址是 docker 默认的桥接地址. 当然, 这些地址都可以替换为宿主机网卡的地址.

登录验证: Admin / zabbix.

基于 Docker 的 Zabbix 微服务系统的更多相关文章

  1. Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务

    本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker ...

  2. 基于docker部署的微服务架构(四): 配置中心

    原文:http://www.jianshu.com/p/b17d65934b58%20 前言 在微服务架构中,由于服务数量众多,如果使用传统的配置文件管理方式,配置文件分散在各个项目中,不易于集中管理 ...

  3. 画了一张基于Spring Cloud的微服务系统架构图

  4. 基于Spring Boot、Spring Cloud、Docker的微服务系统架构实践

    由于最近公司业务需要,需要搭建基于Spring Cloud的微服务系统.遍访各大搜索引擎,发现国内资料少之又少,也难怪,国内Dubbo正统治着天下.但是,一个技术总有它的瓶颈,Dubbo也有它捉襟见肘 ...

  5. 基于Openshift的SpringBoot微服务

    基于Openshift的SpringBoot微服务 OpenShift是红帽的云开发平台即服务(PaaS).自由和开放源码的云计算平台使开发人员能够创建.测试和运行他们的应用程序,并且可以把它们部署到 ...

  6. 干货|基于 Spring Cloud 的微服务落地

    转自 微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务.但如果要将微服务架构运用到生产项目上,并且能够发挥该架构模式的重要作用,则需要微服务框架的支持. 在Java生态圈,目前使用较多的 ...

  7. 基于Spring Cloud的微服务落地

    微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务.但如果要将微服务架构运用到生产项目上,并且能够发挥该架构模式的重要作用,则需要微服务框架的支持. 在Java生态圈,目前使用较多的微服务 ...

  8. SpringCloud(9)使用Spring Cloud OAuth2保护微服务系统

    一.简介 OAth2是一个标准的授权协议. 在认证与授权的过程中,主要包含以下3种角色. 服务提供方 Authorization Server. 资源持有者 Resource Server. 客户端 ...

  9. 基于Spring Cloud的微服务入门教程

    (本教程的原地址发布在本人的简书上:http://www.jianshu.com/p/947d57d042e7,若各位看官有什么问题或不同看法请在这里或简书留言,谢谢!) 本人也是前段时间才开始接触S ...

随机推荐

  1. C#及时释放代码

    using语句,定义一个范围,在范围结束时释放对象. 场景: 当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose. 要达到这样的目的,用t ...

  2. .net 简体转换繁体实例,繁体转换简体 Encode.dll、下载

    在项目中先引用Encode.dll  下面是下载地址: Encode.dll ChineseConverter.dll 1.html页面代码 <%@ Page Language="C# ...

  3. 【转】关于增量链接(incremental linking)

    增量链接(Incremental Linking)这个词语在使用Visual C++时经常会遇到(其实不只是VS系列,其它链接器也有这个特性), 就比如经常遇到的:上一个增量链接没有生成它, 正在执行 ...

  4. VC学习笔记:对话框

    VC学习笔记:对话框 SkySeraph NOV.11st 2009 HQU Email-zgzhaobo@gmail.com  QQ-452728574 Latest Modified Date:O ...

  5. WPF比较两个随机数大小写,利用MVVM思想实现

    MVVM模式是把表现层和业务层完全分离,所以这里就使用MVVM制作一个极其简单的WPF的例子: 先看看最终图:

  6. Activiti5工作流笔记三

    组任务 直接指定办理人 流程图如下: import java.util.HashMap; import java.util.List; import java.util.Map; import org ...

  7. Swift学习与复习

    swift中文网 http://www.swiftv.cn http://swifter.tips/ http://objccn.io/ http://www.swiftmi.com/code4swi ...

  8. Go语言【第一篇】:Go初识

    Go语言特色 简洁.快速.安全 并行.有趣.开源 内存管理.数据安全.编译迅速 Go语言用途 Go语言被设计成一门应用于搭载Web服务器,存储集群或类似用途的巨型中央服务器的系统编程语言.对于高性能分 ...

  9. (转)Ubuntu 12.04 LTS安装VMware Tools实现linux和window 互相复制:无法找到kernel header path的问题

    Ubuntu 12.04 LTS安装VMware Tools无法找到kernel header path的问题   ubuntuvmware Ubuntu 12.04 安装 VMware Tools, ...

  10. 【SPOJ】Highways(矩阵树定理)

    [SPOJ]Highways(矩阵树定理) 题面 Vjudge 洛谷 题解 矩阵树定理模板题 无向图的矩阵树定理: 对于一条边\((u,v)\),给邻接矩阵上\(G[u][v],G[v][u]\)加一 ...