基于 Docker 的 Zabbix 微服务系统
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 微服务系统的更多相关文章
- Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务
本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker ...
- 基于docker部署的微服务架构(四): 配置中心
原文:http://www.jianshu.com/p/b17d65934b58%20 前言 在微服务架构中,由于服务数量众多,如果使用传统的配置文件管理方式,配置文件分散在各个项目中,不易于集中管理 ...
- 画了一张基于Spring Cloud的微服务系统架构图
- 基于Spring Boot、Spring Cloud、Docker的微服务系统架构实践
由于最近公司业务需要,需要搭建基于Spring Cloud的微服务系统.遍访各大搜索引擎,发现国内资料少之又少,也难怪,国内Dubbo正统治着天下.但是,一个技术总有它的瓶颈,Dubbo也有它捉襟见肘 ...
- 基于Openshift的SpringBoot微服务
基于Openshift的SpringBoot微服务 OpenShift是红帽的云开发平台即服务(PaaS).自由和开放源码的云计算平台使开发人员能够创建.测试和运行他们的应用程序,并且可以把它们部署到 ...
- 干货|基于 Spring Cloud 的微服务落地
转自 微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务.但如果要将微服务架构运用到生产项目上,并且能够发挥该架构模式的重要作用,则需要微服务框架的支持. 在Java生态圈,目前使用较多的 ...
- 基于Spring Cloud的微服务落地
微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务.但如果要将微服务架构运用到生产项目上,并且能够发挥该架构模式的重要作用,则需要微服务框架的支持. 在Java生态圈,目前使用较多的微服务 ...
- SpringCloud(9)使用Spring Cloud OAuth2保护微服务系统
一.简介 OAth2是一个标准的授权协议. 在认证与授权的过程中,主要包含以下3种角色. 服务提供方 Authorization Server. 资源持有者 Resource Server. 客户端 ...
- 基于Spring Cloud的微服务入门教程
(本教程的原地址发布在本人的简书上:http://www.jianshu.com/p/947d57d042e7,若各位看官有什么问题或不同看法请在这里或简书留言,谢谢!) 本人也是前段时间才开始接触S ...
随机推荐
- TCP系列20—重传—10、早期重传(ER)
一.介绍 在前面介绍thin stream时候我们介绍过有两种场景下可能不会产生足够的dup ACK来触发快速重传,一种是游戏类响应交互式tcp传输,另外一种是传输受到拥塞控制的限制,只能发送少量TC ...
- 腾讯云 activeMQ Illegal character in hostname at index 7
查找问题步骤: 1. /usr/local/apache-activemq-5.9.1/data/activemq.log 看一下这个.log后缀的启动日志,可以将它下载下来再看. 先尝试修改配置文 ...
- PHP实现大文件分割上传与分片上传
转载:http://www.zixuephp.com/phpstudy/phpshilie/20170829_43029.html 服务端为什么不能直接传大文件?跟php.ini里面的几个配置有关 u ...
- SQL Server的全局变量
SQL Service中的全部变量不需要用户参与定义,在任何程序均可随时调用.并且全部变量是以@@开头 全局变量名称 描述 @@CONNECTIONS 返回 SQL Server 自上次启动以来尝试的 ...
- 【Python】面向对象--类的特殊成员方法
类的特殊成员方法 1. __doc__ 表示类的描述信息 class Func(object): '''__doc__方法是用来打印类的描述信息''' def tell(self): pass def ...
- Nginx + Keepalived使用文档
第一步: 下载keepalived地址:http://www.keepalived.org/download.html 解压安装: tar -zxvf keepalived-1.2.18.tar.gz ...
- 当要将其他类型转成String类型时候 看String的方法
当要将其他类型转成String类型时候 看String的方法进行转换
- Python数据定义
数据类型: 什么是数据? 在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字字母.符号和模拟量等的统称.现在计算机存储和处 ...
- nginx日志切割总结
Nginx日志切割 方法1(脚本+定时执行): #step1:加脚本 cut_nginx_log.sh,主进程把USR1信号发给worker,worker接到这个信号后,会重新打开日志文件 #!/ ...
- P3074 [USACO13FEB]牛奶调度Milk Scheduling
题目描述 Farmer John's N cows (1 <= N <= 10,000) are conveniently numbered 1..N. Each cow i takes ...