Splunk 搜索没有子搜索

Splunk search no subsearch

我有类似的事件:

{
    taskId:5a6d
    category:created
    when:1517131461
    ...
}

{
    taskId:5a6d
    category:started
    when:1517131609
    ...
}

{
    taskId:5a6d
    category:ended
    when:1517134657
    ...
}

对于每个任务(任务 ID 相同),我们在创建/开始/结束时都有事件。

我想搜索是否有任何任务从未被处理(任务已创建但未启动)。这是我的搜索语句:

index=XXX sourcetype=XXX category=created | search NOT [search index=XXX sourcetype=XXX category=started | fields taskId]

如果时间范围小于 48 小时,此语句将正常工作。 如果将时间范围设置为例如最近 7 天,则上述搜索语句将无法正常工作。它 return 有很多任务(类别=已创建),这意味着这些任务永远不会被处理。实际上,它们已被处理,我可以通过 taskId 搜索事件 (category=started)。

我不知道它有什么问题。子搜索似乎 return 在主搜索范围内没有正确的结果。

如果没有看到您的确切数据,这将很难调试。

为了更简单,您可以尝试这样的操作,一次搜索即可完成所有操作:

index=XXX sourcetype=XXX category=created 
| eventstats values(category) as categories by taskId
| search categories = created NOT categories = started