编辑:
检查搜索并面对失败搜索与成功搜索的日志,似乎失败的搜索作业没有解析搜索字符串。我有一个日志,上面写着:
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上的join,它就可以工作。
有什么想法吗?
发布于 2015-02-17 23:08:47
在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_Bdedup子句将需要一些工作,因为我不能做更多的工作,除了想象您的下划线数据
阅读这篇文章对你将来会有很大的帮助,http://docs.splunk.com/Documentation/Splunk/latest/SearchReference/SQLtoSplunk
发布于 2015-03-25 05:18:46
首先,我同意Joao的观点--这里没有足够的信息来真正回答这个问题。
然而,在我自己的应用程序开发中,我已经见过很多次了。不可避免地,它是由权限引起的。第一个是应用程序的上下文(这是最常见的)。如果你有一个props.conf和/或transforms.conf在你的搜索应用程序中定义了一些字段提取,但是这些字段提取还没有导出到你正在使用的应用程序中,那么它们将不可用。在您的例子中,可能由于某些原因而没有定义ID_*。你可以通过向你的应用添加一个搜索仪表板引用并在那里运行搜索来检查这一点。
第二个原因是仪表板可能使用快速模式,而不是智能模式或详细模式。如果您在搜索页面中,则在右侧有一个指示模式的下拉列表。当你第一次在搜索中打开的时候--它显示了什么?点击搜索后,它会显示什么?
最后,Search Inspector是你的朋友。当您在面板上看不到结果时-打开面板并查看日志和分解。了解搜索检查器可能是你在这里最好的朋友。
您需要重新运行的原因是,当您在搜索页面中打开搜索时(可能使用面板底部的"Open in search“链接),它将使用分派目录中缓存的信息。当你点击搜索时,它会生成一个新的搜索。
发布于 2019-08-24 01:18:03
splunk的免费版本有最大搜索限制。另外,请与您的组织确认您是否拥有正确的权限。
https://stackoverflow.com/questions/28558425
复制相似问题