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. android仿美团客户端购买框悬浮特效

        实现步骤如下: 1,新建一个项目,新建一个MyScrollView继承自ScrollView   public class MyScrollView extends ScrollView { ...

  2. PokeCats开发者日志(十一)

      现在是PokeCats游戏开发的第六十天的上午,易版权的状态变为了待收证,但愿不久就能送到了吧.

  3. table与div互相嵌套注意

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  4. cmake & make

    大家都知道,写程序大体步骤为: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器连接目标代码生成可执行文件,如.exe. 但如果源文件太多,一个一个编译时 ...

  5. 使用gdb查看栈帧的情况, 没有ebp

    0x7fffffffdb58: 0x004005ba  0x00000000  0x00000000  0x00000000 <-----funcb的栈帧 [0x7fffffffdb60, 0x ...

  6. Windows7系统目录迁移:Users,Progr…

    微软设计了比如:我的文档.我的OOXX,之类的东西,在WIN7下面更连游戏.下载等等目录都设计好了,我也很乖巧的把各种文件都分门别类的放进去了. 同时也很厉害的设计在了“%HOMEDRIVE%”里面, ...

  7. SpringBoot2.0(四) 远程调试

    和tomcat远程调试近似的配置,主要的配置如下所示: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10009 在 ...

  8. 【Python】关于Python里面小数点精度控制的问题

    基础 浮点数是用机器上浮点数的本机双精度(64 bit)表示的.提供大约17位的精度和范围从-308到308的指数.和C语言里面的double类型相同.Python不支持32bit的单精度浮点数.如果 ...

  9. 【Python】python之set

    阅读目录 一.set集合介绍 二.集合的方法 1.s.add()添加元素 3.s.copy()浅拷贝 4.s.difference(b) 5.s.difference_update(b) 6.s.di ...

  10. 当重写了 httpservlet重写了GenericServlet的init方法时候 必须显示调用GenericServlet的init方法时候 才能在别的方法(父类创建config实例) 例如 doget里面使用servletContext对象 不重写init 则可以直接使用