将日志与 Splunk 中的模式相关联

Correlating logs with a pattern in Splunk

我有一个调用实际脚本的包装器脚本,并且有 2 个日志文件与之对应,我需要一种方法来关联它们并在单个 splunk 搜索失败时显示它们 运行。

例如,我有一个名为 wrapper__22238.log 的日志,其中有状态消息以及一个 运行ID,它将是与子日志关联的关键字:worker.log

样本wrapper_JOB1_22238.log:

2021-05-25 05:19:59.817 INFO : Got response: Job: JOB1, runID: 1001-751b81bf-9d79-4283-b700-74e0c10c472a, Timeout: 7199, Request Time: 2021-05-25 04:19:03.333, Start Time: 2021-05-25 04:19:04.726, Status: RUNTIME_ERROR, Total Time: 3645869 ms

worker.log :

[Date=25/May/2021 04:19:06] [THREAD=61] [runID=1001-751b81bf-9d79-4283-b700-74e0c10c472a] [STEP=Write to Target] [status=ERROR] [Error copying the file to the destination /app/logis/internal/: /app/logis/internal/carrier_1456.out.gz (No such file or directory)]

有没有办法通过仅根据作业名称(上面的 JOB1)搜索来检索这两个日志? 假设我将在包装器状态调用中​​始终有 runID:,并且工作日志将在每个事务中标记它。

感谢您的帮助。

是的,有办法做到这一点。可能不止一个,但这里有一个。

(index=foo source=wrapper_JOB1_22238.log Job=bar) OR (index=baz source=worker.log)
| stats values(*) as * by runID

它从两个日志中读取事件,按作业过滤包装器事件。然后它根据共享的 runID 值组合事件。

以下 SubQuery 方法对我的情况有所帮助:

(index=foo source=*worker* [search index=foo source=wrapper_JOB1*  | stats max(runID) as runID] status=ERROR)
OR 
(index=foo source=wrapper_JOB1*)