将日志与Splunk中的模式进行关联



我有一个包装脚本调用实际脚本&具有与其对应的2个日志文件&我需要一种方法来关联它们,并在一次失败的跑步搜索中显示它们。

例如,我有一个名为wrapper___22238.log的日志,其中有Status消息和一个runID,它将是与子日志相关的关键字:worker.log

样品包装机_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*)

最新更新