分布式链路追踪日志框架 minbox-logging 1.0.2 发布,新增 GlobalLogging 概念
MinBoxLogging
是一款分布式、零侵入式的链路日志分析框架,支持 SpringCloud
微服务架构下配置使用,内部封装了 RestTemplate
、 OpenFeign
两种方式透传链路信息。
1.0.2.RELEASE 更新内容
- 升级使用minbox-framework版本为1.0.2.RELEASE
- 添加GlobalLogging全局业务日志的概念
- 支持将GlobalLog日志保存到数据库
- 修改LocalNotice本次日志通知的优先级
- 修改AdminNotice上报日志到Admin的优先级
- 添加支持定时上报到Admin功能支持
- 添加支持debug、info、error等类型的GlobalLog上报
- 添加GlobalLoggingMemoryStorage用于内存临时存储一次请求的GlobalLog列表
- 修改日志上报到Admin时的Content-Type
- 添加logging_global_logs表结构
- 支持采集error等级的GlobalLog堆栈错误信息
文档
使用文档请访问:https://gitee.com/minbox-projects/minbox-logging/wikis
最佳集成实践源码
minbox-logging
与 ApiBoot
都是属于 minbox-projects
开源组织开源框架, ApiBoot
来统一做基础框架的集成,也不例外集成 minbox-logging
。
集成实践源码:ApiBoot Logging AutoConfiguration
实践系列文章
ApiBoot
对 minbox-logging
基于 SpringBoot
进行了封装,针对 client、admin
分别提供了对应的 Starter
,来快速集成。
集成后的实践文章,可以访问作者博客:https://blog.yuqiyu.com/apiboot-all-articles.html 了解详情。
零侵入式
MinBoxLogging
无需使用注解配置采集链路日志,只需要添加 依赖
后简单配置 MinboxLogginAdmin
的相关 地址
或 服务名称
即可,每次在收到请求时就会把请求对应的链路日志详细信息自动上报到 MinBoxLoggingAdmin
进行后续分析、告警通知等。
链路日志分析图
日志客户端
链路日志
的采集端,也就是具体的业务服务,只需要添加 minbox-logging-client
客户端进行简单的配置就可以实现日志的采集以及日志的异步上报。
日志管理端
对外提供 安全的日志上报
功能,通过整合 SpringSecurity
来完成 BasicAuth
基础认证,管理端接收到采集端上报的日志后会自动将日志存储到数据库,考虑到扩展方便,同样也提供监听 日志上报事件(ReportLogEvent)
的方式来自定义存储日志到 消息队列
、 logstash
、 文件
等存储介质。
日志管理界面
MinBoxLoggingAdmin
提供了界面管理应用程序,通过 VUE
前端框架进行编写界面与管理端的接口通讯,实时展示 链路日志
、 日志采集服务列表
等信息,可查看每条链路日志的详细信息(包含:请求头、请求参数、响应内容、响应头、状态码、异常堆栈信息等)。
整合Spring Security后的登录界面
可以直接整合 SpringSecurity
来完成 Basic
安全认证。
上报日志的服务列表
请求日志的采集服务在第一次上报时,会自动创建一条服务记录,服务的唯一性是根据: 服务ID
+ 服务IP
+ 服务端Port
来进行定义。
在每次上报日志成功后会修改服务的最后一次上报时间。
链路日志列表
链路日志是我们访问的入口服务生成,比如: bff-user
-> user-service
,链路日志产生的位置则是 bff-user
服务,链路日志是接口 请求的入口
也是做出 响应的结束位置
,因此我们可以在页面上查看接口的请求 参数详情
、 头信息
以及 响应的内容
,至于链路日志内的 日志单元
目前界面还未做展示,可以根据 traceId
链路日志编号自行去数据库查询。
链路日志详情
每一个请求的链路日志都会包含上图中的全部字段,从请求开始 -> 响应结束一条链路闭合记录。
安全性
MinBoxLoggingAdminUI
内部提供了 login.html
登录页面,可以整合 SpringSecurity
通过配置 loginPageUrl
登录跳转地址来使用内置的登录页面,当然也可以自定义登录页面。
可与 MinBoxLoggingAdmin
共同使用 SpringSecurity
的相同配置提升安全性。
文档
当前版本的文档,请访问Wikis
快速开始
请访问快速开始的 wikis
文档来查看并快速接入 MinBoxLogging
,快速接入文档
源码方式构建
MinBoxLogging
使用 Maven
进行构建项目。
先决条件
源码拉取需使用 Git
,具体使用方式详见安装 Git
源码采用 JDK1.8
版本进行编写,请注意修改使用项目的 JDK
版本,JDK 1.8下载地址
需本地安装 Maven
环境,Maven 下载地址
因 logging-admin-ui
所需 vue-cli-service
命令支持,本地需要安装 vue-cli
。
拉取源码到本地
git clone git@gitee.com:minbox-projects/minbox-logging.git
安装到本地Maven仓库
mvn install
编译 & 打包生成jar包
mvn clean package
Maven仓库依赖构建
MinBoxLogging
内的模块都已经上传到 ApacheMavenCenter
中央仓库,添加对应的依赖到 pom.xml
会自动下载到本地。
欢迎提交贡献代码
MinBoxLogging
欢迎广大开发者创建 PullRequest
来贡献代码,代码通过审核后会被合并到 master
主分支。
开源许可
MinBoxLogging
采用 Apache2
开源许可。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Dubbo 如何成为连接异构微服务体系的最佳服务开发框架
从编程开发的角度来说,Apache Dubbo (以下简称 Dubbo )首先是一款 RPC 服务框架,它最大的优势在于提供了面向接口代理的服务编程模型,对开发者屏蔽了底层的远程通信细节。同时 Dubbo 也是一款服务治理框架,它为分布式部署的微服务提供了服务发现、流量调度等服务治理解决方案。 在这篇文章中,我们将以以上基础能力为背景,尝试突破 Dubbo 体系自身,探索如何利用 Dubbo 对多协议、多服务发现模型的支持,来实现异构微服务体系间的互联互通。在实际业务场景中,这可以用来解决异构技术体系共存场景下的通信问题,帮助公司实现在异构技术体系间作平滑迁移,解决大规模跨区域、多集群部署场景的地址发现及流量调度等问题。 面向接口代理的透明服务开发框架 我们还是从 Dubbo 是一个微服务开发框架 这个大家熟知的概念开始。就像 Spring 是开发 Java 应用的基础框架一样,我们经常会选用 Dubbo 作为开发微服务业的基础框架。 Dubbo 框架的最大优势我认为就在其面向接口的编程模型,使得开发远程服务调用就像开发本地服务一样(以 Java 语言为例): 服务定义 public ...
- 下一篇
Milvus 向量搜索引擎 0.6.0 新功能介绍
Gitee:https://gitee.com/milvus-io/milvus 发布时间:2019-12-07 版本兼容 Milvus 版本 pymilvus 版本 Java SDK 版本 0.6.0 0.2.6 0.4.0 ✨新增功能 仅需 CPU 的 Milvus 在之前的版本,我们只提供了 GPU 版本的 Milvus。为了降低用户使用门槛,从 v0.6.0 开始,Milvus 提供仅需 CPU 和支持 GPU 两个版本的 Docker 镜像。CPU 版适合百万级数据的查询,而 GPU 版在超大数据集搜索情况下性能优势更明显。 您也可以源码编译,但考虑到编译环境复杂多变,有可能会增加编译困难,我们在新版本提供了 Ubuntu 18.04 的 Docker 镜像,便于大家直接在 Docker 容器中编译 Milvus。 更多信息,请参阅 PR#192: https://github.com/milvus-io/milvus/pull/192 Milvus 安装步骤: https://www.milvus.io/docs/zh-CN/userguide/install_milvus...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境