You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Splunk Query关联异常与端点并整合多日志生成表格

问题描述

有两组关联的应用日志:
请求日志:

timestamp=2023-06-29 00:58:56,830 thread=http-nio-8080-exec-1 loglevel=ERROR traceid=8ae88647f7d41729 spanid=8ae88647f7d41729 message="httpUser=123456, httpClientId=osfgs9fgsd, httpStatusCode=400, httpUrl=/path/to/resource, httpMethod=PUT, httpRequestDuration=70"

对应的异常日志:

timestamp=2023-06-29 00:58:56,829 thread=http-nio-8080-exec-1 loglevel=ERROR traceid=8ae88647f7d41729 spanid=8ae88647f7d41729 message="triggerSplunkAlert, exceptionId=23ghe2eg-cvs-dfs-9bfa-4knkjl, errorCode=IllegalStateException,... (shortened out for brevity)"

需要将两组日志中的信息整合为如下格式的表格:

timehttpMethodhttpUrlerrorCode
2023-06-29 00:58PUT/path/to/resourceIllegalStateException
2023-06-29 10:23POST/path/to/whateverNullPointerException

咨询如何实现不同日志的信息整合。

解决方案

核心思路:通过关联键匹配日志,提取字段后整合

  1. 确定关联标识
    两组日志的traceid和spanid完全一致(均为8ae88647f7d41729),这是关联请求日志与对应异常日志的唯一标识。

  2. 提取目标字段

    • 从请求日志中提取:timestamp(截断到分钟格式)、httpMethod、httpUrl
    • 从异常日志中提取:errorCode
  3. 手动整合(单条日志)
    直接根据关联标识匹配两条日志,将提取的字段填入表格对应列即可,得到第一条表格数据。

  4. 批量自动化整合(多日志场景)
    如果需要处理大量日志,可借助日志分析工具实现,以Splunk为例,使用join命令关联日志并提取字段:

    index=your_app_index loglevel=ERROR
    | rex field=message "httpMethod=(?<httpMethod>\w+), httpUrl=(?<httpUrl>[^\s,]+)"
    | rex field=timestamp "(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2})"
    | join traceid spanid
        [ search index=your_app_index loglevel=ERROR message="triggerSplunkAlert"
        | rex field=message "errorCode=(?<errorCode>[^\s,]+)" ]
    | table time httpMethod httpUrl errorCode
    

    该查询会自动关联同traceid+spanid的请求与异常日志,提取目标字段并生成表格。

内容的提问来源于stack exchange,提问作者Leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 12:52:42