【问题标题】:Splunk - No results, but search is correctSplunk - 没有结果,但搜索是正确的
【发布时间】:2019-08-24 01:18:03
【问题描述】:

编辑:

检查搜索并面对失败搜索与成功搜索的日志,似乎失败的搜索作业没有解析搜索字符串。我有一个日志说:

Generating search operator is null, short-circuiting data generation

相反,搜索成功我有搜索解析过程的日志。我想在这里重复一下,搜索具有相同的代码。

问题:

仪表板突然不返回任何内容。我打开了搜索工具,它不再返回任何内容。但是,如果我按下按钮再次运行搜索,它确实会返回预期的数据。

这只发生在我的远程虚拟 Windows 主机上。在我的 Linux 私人计算机上,相同的 splunk 版本相同的索引,一切正常。

我尝试重新安装 splunk 并清除 var\run\splunk\dispatch 文件夹,但没有成功。

似乎问题出在我在许多仪表板上进行的子搜索。这是一个包含许多连接的搜索。如果我删除其中一个,它会起作用。但我当然需要这一切。

索引没问题,因为我也使用它们来填充同一页面中的输入。

子搜索是这个:

  [search index=A ID_A="$id_a$" ID_B="$id_b$" | 
  dedup ID_A | 
  join ID_B 
    [search index=B AND ID_C="$id_c$" | 
    dedup ID_B | 
    join ID_C 
      [search index=C AND ID_D="$id_d$" | 
      dedup ID_C | 
      table ID_C] | 
    table ID_B] | 
  table ID_A]

如您所见,它是来自数据库的数据,而不是日志数据。如果我删除 ID_C 上的连接,它会起作用。

有什么想法吗?

【问题讨论】:

  • 卢卡斯,需要更多数据,您的“多连接搜索”是什么?您是否使用后处理等最佳实践来避免达到最大事件数上限?
  • 将搜索添加到答案中。我暂时没有使用 PostProcessing,但是在其他仪表板中直接使用搜索工具运行它的搜索没有问题。

标签: splunk


【解决方案1】:

似乎您的子搜索之一在limits.conf 中定义的秒数之后悄悄地执行harikiri。
对于来自 SQL 世界的任何人来说,使用 JOIN 很诱人,但在 splunk 中,这个函数很少是答案,因为它的方式,方式慢得多。 我建议你以此为起点

(index=A "$id_a$" OR $id_b$ ID_A="$id_a$" ID_B="$id_b$") OR (index=B $id_c$ ID_C="$id_c$") OR (index=C "$id_d$" ID_D="$id_d$")
| dedup ID_A by ID_C, ID_B

dedup 子句需要一些工作,因为我只能想象你的下划线数据

阅读本文将对您将来有很大帮助, http://docs.splunk.com/Documentation/Splunk/latest/SearchReference/SQLtoSplunk

【讨论】:

  • 嗯,我不明白你的搜索。特别是,我不明白"$id_a$" OR $id_b$(index=A) OR (index=B) 做了什么。在哪里可以找到参考资料?
  • 无论如何,我需要加入数据,因为它是来自数据库的数据。而且,我再说一遍,同样的搜索在仪表板之外也能工作,所以 limits.conf 不是问题。
【解决方案2】:

首先,我同意 Joao 的观点——这里没有足够的信息来真正回答这个问题。

但是,我在自己的应用开发中多次看到过这种情况。它不可避免地是由权限引起的。第一个是应用程序的上下文(这是最常见的)。如果您有一个 props.conf 和/或 transforms.conf 在您的搜索应用程序中定义了一些字段提取,但这些字段提取尚未导出到您正在使用的应用程序,那么它们将不可用。在您的情况下,可能 ID_* 出于某种原因未定义。您可以通过将搜索仪表板引用添加到您的应用并在那里运行搜索来检查这一点。

第二个原因是仪表板可能使用的是快速模式而不是智能模式或详细模式。如果您在“搜索”页面中;右侧是指示模式的下拉菜单。当您第一次在搜索中打开时 - 它说什么?点击搜索后,它会说什么?

最后,Search Inspector 是您的朋友。当您在面板上看不到结果时 - 打开面板并查看日志和故障。了解搜索检查器可能是您最好的朋友。

您需要重新运行的原因是,当您在搜索页面中打开搜索时(可能使用面板底部的“在搜索中打开”链接),它使用了调度目录中的缓存信息。当你点击搜索时,它会生成一个新的搜索。

【讨论】:

  • 不可能是权限问题。所有 props.conf 设置都在应用程序内。此外,我在同一页面中的这些索引正确填充了输入。 只有这个搜索不起作用。关于 Search Inspector,请阅读问题的开头,在 EDIT 部分。
  • 错误信息表示生成命令。很高兴看到您的实际搜索是什么。显示的版本中没有生成命令。
【解决方案3】:

免费版的 splunk 有最大搜索限制。还要与您的组织核实,看看您是否拥有正确的权利。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 2010-10-28
    • 2020-07-07
    相关资源
    最近更新 更多