MinBoxLogging
是一款分布式、零侵入式的链路日志分析框架,支持 SpringCloud
微服务架构下配置使用,内部封装了 RestTemplate
、 OpenFeign
两种方式透传链路信息。
使用文档请访问: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
前端框架进行编写界面与管理端的接口通讯,实时展示 链路日志
、 日志采集服务列表
等信息,可查看每条链路日志的详细信息(包含:请求头、请求参数、响应内容、响应头、状态码、异常堆栈信息等)。
可以直接整合 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
mvn install
mvn clean package
MinBoxLogging
内的模块都已经上传到 ApacheMavenCenter
中央仓库,添加对应的依赖到 pom.xml
会自动下载到本地。
MinBoxLogging
欢迎广大开发者创建 PullRequest
来贡献代码,代码通过审核后会被合并到 master
主分支。
MinBoxLogging
采用 Apache2
开源许可。