业务日志溯源

在微服务的场景下,应用调用链极其复杂,同时也产生了包含详细业务数据的海量应用日志。一次请求调用往往会跨越很多个应用,请求的日志都分散在各个应用下,查找单次请求的所有日志较为困难。基调听云应用与微服务的日志溯源功能可以通过一个唯一的追踪 ID把请求的整个完整调用链的日志关联起来,在完整的调用链追踪中展示所有相关的业务日志。

前提条件

如果应用初次使用该功能,需要在探针配置文件tingyun.properties中开启以下设置:

# 日志追溯相关Plugin,开启后可以在应用的日志中,打印应用与微服务相关数据,如应用ID、追踪ID等。
class_transformer.tingyun-log4j-plugin-2.0.0.enabled=true
class_transformer.tingyun-log4j-plugin-2.3.enabled=true
class_transformer.tingyun-log4j-plugin-1.2.enabled=true
class_transformer.tingyun-logback-plugin-1.2.enabled=true

背景信息

基调听云应用与微服务日志溯源功能支持主流的Log4j和Logback日志框架。

操作步骤

配置日志仓库

  1. 登录logkit系统

  2. 添加机器。

    具体步骤请参见:https://developer.qiniu.com/insight/manual/4682/logkit-pro-install。

  3. 选择数据收集,添加日志收集器。

    具体步骤请参见:https://developer.qiniu.com/insight/manual/4683/logkit-pro-quick-experience。

    log1

  4. 给创建的日志收集器分发机器或标签。

    log2

  5. 分发成功后,即可在智能日志管理平台日志仓库-仓库管理中看到创建的仓库。

    log3

配置应用与微服务

  1. 登录应用与微服务控制台

  2. 在左侧导航栏中单击全局配置,进入常规选项页面。

  3. 打开日志溯源开关,集成日志平台类型选择基调听云日志平台,然后填写日志仓库API URL、Custom Headers、AccessKey、SecretKey。其中AccessKey、SecretKey请到智能日志管理平台秘钥管理页面中获取。

    log4

    log5

  4. 在左侧导航栏中选择配置,然后在系统设置页面左上角的业务系统下拉菜单中选择应用所属的业务系统,单击日志溯源页签,选择与当前业务系统对应的日志仓库,然后单击保存配置。也可在日志溯源区域,选择单独配置

    log6

  5. 配置被监控应用的日志配置文件。

    • Log4j配置
    log4j.appender.order-file-appender.layout.ConversionPattern=[%d] [%-5p] [%t]
    [%c] [%R][%A]%m%n
    
    • Log4j2配置
    <Console name="Console" target="SYSTEM_OUT"\>
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [log4j2] %-5level %logger{36} -
     %msg%n[%A][%R]"/\>
    </Console\>
    
    • Logback配置
    <encoder\>
         <pattern\>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
      %msg%n[%A][%R]\</pattern\>
    </encoder\>
    

    例如,Log4j日志输出格式如下:

    2020-10-29T16:30:27,730-07:00][DEBUG][com.tingyun.Log-0][com.tingyun.Test][NBS.REQUEST_GUID:167d328d-b82a-4b8c-8049-7a3a13af158f][NBS.APPID:0017]
    
    Test Log Message
    

    其中,[%R]负责输出请求的NBS.REQUEST_GUID,配置后日志会增加NBS.REQUEST_GUID信息。在整个请求链路中,入口事务生成的NBS.REQUEST_GUID将作为整个请求链路的唯一标识,此值将在链路中不断传递直到链路的最后请求(如果遇到无法实现跨应用追踪的组件的情况除外),以实现全链路追踪。调用链所涉及的各个应用的日志都显示同一个NBS.REQUEST_GUID。[%A]负责输出应用的NBS.APPID,是应用与微服务为每一个监控的应用生成的唯一id,配置后日志会增加NBS.APPID信息。如果日志溯源功能是关闭的,即使用户配置了[%R],NBS.REQUEST_GUID也不会被嵌入。

  6. 重启应用,然后查看应用业务日志。

    在应用的业务日志中成功打印出追踪ID信息,则说明业务日志跟调用链的追踪ID关联成功。

    20210124183211

调用链日志分析

接下来,您可以在基调听云应用与微服务的事务追踪详情的日志页签中看到日志详情,在智能日志管理平台的日志仓库-搜索分析中查看日志数据。

应用与微服务事务追踪详情-日志:

通过输入追踪ID,可以搜索出该事务的所有日志。

log8

智能日志管理平台-日志仓库-搜索分析页面:

log9

log10

通过追踪ID定位具体事务

在左侧导航栏中单击事务追踪,进入事务追踪页面。在页面上方的追踪ID搜索框中输入追踪ID,可以查找出具体的事务,然后进行事务详情分析,具体请参见事务追踪详情

log11

results matching ""

    No results matching ""