minbox-logging

链路日志分析框架
授权协议 Apache-2.0
开发语言 Java
所属分类 管理和监控、 日志分析和统计
软件类型 开源软件
地区 国产
投 递 者 麻鸿熙
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Minbox Logging 是一款分布式、零侵入式的链路日志分析框架,支持 SpringCloud 微服务架构下配置使用,内部封装了 RestTemplate、OpenFeign 两种方式透传链路信息。

零侵入式

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主分支。

  • I. 概念 在minbox-logging日志组件内设计了多个概念以及名词定义,我们本篇文章来讲解下每个概念的含义以及作用。 0. 源码 & 文档 源码:https://gitee.com/minbox-projects/minbox-logging 文档:https://gitee.com/minbox-projects/minbox-logging/wikis ApiBoot整合示例:ApiB

  • 一、logging模块 django使用python的内置模块logging来管理自己的日志 logging模块的四大组件 Loggers Handlers Filters Formatters Loggers Loggers(日志记录器) 系统中的每一条日志都是由该组件进行记录的,每一个记录器都应该有其自己的名称并标记其最低记录的等级 DEBUG:所有等级中最低,其信息一般用来作为调试的辅助信息

  • I. MinBox Logging 是什么? 1. 采集端 & 服务端 MinBox Logging是由minbox-projects开源组织推出的一款零侵入分布式链路日志组件,可用于微服务、RPC、单体应用使用。 MinBox Logging内存在两个概念,分别是:Client、Server。 Client Client我们可以理解为日志的采集端,也就是我们的业务服务端,你的服务需要记录日志就可

  • logging.basicConfig()的参数: level:输出日志的等级,debug<info<warning<critical<error format:输出格式 datemat:时间信息 filename:日志信息输出到的日志文件名 filemode:决定使用什么模式来打开日志文件('r'、'w'、'a'),默认为'a' import logging '''format=%(ascti

  • 前言:python自带有一个logging标准模块,不需要另外安装,可以直接import使用,主要用于输出测试过程内部执行情况、错误、异常等信息,可以设置输出日志的等级、日志保存路径等。 目录 一、初步认识 1.1 级别说明 1.2 级别设置 1.3 格式设置 二、文件输出 三、控制台输出 四、公共日志模块设置-py文件 五、公共日志模块设置-conf文件 5.1 控制台输出 5.2 文件与控制台

  • 遇到python不懂的问题,可以加Python学习交流qun 688244617一起学习交流,还有零基础入门的学习资料和大量干货哦 1.在settings配置文件中配置以下文件: 定义三种日志输出格式 开始 standard_format = ‘[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(l

  • 1获取一个日志 记录器 其实返回的是root记录器 logger = logging.getLogger("test") 2给logger 设置 日志级别 logger收集什么级别的日志 logger.setLevel(logging.DEBUG)         日志级别 从小到大         ALL、DEBUG 、INFO、WARA、ERROR 、FATAL 、OFF         AL

  • logging模块 这个模块为应用与库定义了实现灵活的事件日志系统的函数与类. 使用标准库提提供的 logging API 最主要的好处是,所有的 Python 模块都可能参与日志输出(logging),包括你的日志消息和第三方模块的日志消息。 这个模块提供许多强大而灵活的功能。如果你对 logging 不太熟悉的话, 掌握它最好的方式就是查看它对应的教程 该模块定义的基础类和函数都列在下面。 L

  • Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最为合适:   logger提供了应用程序可以直接使用的接口;   handler将(logger创建的)日志记录发送到合适的目的输出;   filter提供了细度设备来决定输出哪条日志记录;   formatter决定日志记录的最终输出格式。 import logging logging.basicConfig(le

  • 原文地址:Mina Logging Filter(Apache Mina User Guide Chapter12 Logging Filter) 1.1.1. 背景 Apache MINA使用一个允许基于MINA应用程序的开发人员使用他们自己的日志系统。 1.1.1.1. SLF4J Mina使用简单的Java日志Facade(SLF4J)。你可以在这里找到SLF4J信息。这个日志记录工具允许任

  • 1.logging.file.name和logging.file.path配置效果: 1)logging.file.name 可以指定路径和log文件的名字, 例如:配置logging.file.name=d:/other/demo/firstDemo/logs/demo.log,会在d:/other/demo/firstDemo/logs路径下生成文件demo.log 1)logging.fil

  • logging config 最新第二版: 传送门

  • import logging # args和init_args是之前获得的参数解析器 logging.basicConfig(filename=args.log_file, level=args.verbose) # 对日志的输出格式及方式做相关配置。filename日志信息输出到的日志文件名,level输出的日志等级 logging.getLogger().addHandler

  • logging用于输出运行日志,并保存成文件。 日志一共分成5个等级,从低到高分别是:DEBUG ,INFO ,WARNING ,ERROR, CRITICAL. print输出所有信息,在保存的时候无法分类,而logging有多个等级,可以按等级保存不同的运行日志。 参考: logging.basicConfig函数:https://blog.csdn.net/sinat_34166518/ar

  • import logging class Log: _isinstance = None def __new__(cls, *args, **kwargs): if cls._isinstance is None: cls._isinstance = object.__new__(cls) return cls._isi

  • import logging format_str = '%(filename)s(line %(lineno)s)\t%(levelname)s -- %(message)s' logging.basicConfig(level=logging.ERROR, format=format_str) logger = logging.getLogger(__name__) logger.setLe

 相关资料
  • translated_page: https://github.com/PX4/Devguide/blob/master/en/log/flight_log_analysis.md translated_sha: 95b39d747851dd01c1fe5d36b24e59ec865e323e Flight Log Analysis 这里有几个分析PX4飞行日志的软件,描述如下: Log Munc

  • 日志是构建工具的主要"UI"。如果日志太多,真正的警告和问题容易被隐藏。另一方面,如果出了错,你需要找出相关的信息。Gradle 定义了6个日志级别,如表 Table 18.1, “Log levels” 所示。除了那些您通过可能会平常看到的日志级别之外,有两个 Gradle 特定日志级别。这两个级别分别是 QUIET 和 LIFECYCLE。 默认使用后面的这个日志级别,用于报告构建进度。 Ta

  • 本文向大家介绍python+logging+yaml实现日志分割,包括了python+logging+yaml实现日志分割的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python+logging+yaml实现日志分割的具体代码,供大家参考,具体内容如下 1、建立log.yaml文件 2、在自己的app.py中引用log.yaml 之后就可以在需要日志的业务节点上使用logger.

  • 问题内容: 我正在使用和选项打开gc日志记录。 但是发现只有在4 0r 5后才通过命令打印我的gc日志的实际详细信息! 按照定义,将为每个gc打印应用程序停止时间。 但是我不清楚为什么它会打印如下所示的示例。 是因为 只需在每个安全点到达后打印 (要么) 该日志文件将由其他gc线程记录。我正在使用并发扫描进行完整GC,并为年轻一代使用ParNew 我的应用程序是Web应用程序。 O / p模式-我

  • translated_page: https://github.com/PX4/Devguide/blob/master/en/log/logging.md translated_sha: 95b39d747851dd01c1fe5d36b24e59ec865e323e Logging This describes the new logger, SYS_LOGGER set to 1. The

  • SOFARPC 在5.4.0 及之后的版本中,已经支持 Skywalking 的链路分析的功能,用户可以根据需要进行使用,其中Skywalking 的版本 要求6.0.0-alpha及以上。本文档,不涉及后端的部署,如有需要,可查看 Skywalking 官方文档。 安装 Java agent 1.在下载的 Skywalking 的release 包中找到 agent 目录。 2.在config/