使用另一个splunk查询的结果过滤splunk结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用另一个splunk查询的结果过滤splunk结果相关的知识,希望对你有一定的参考价值。

我想在splunk中使用查询,提取字段列表,然后使用这些结果字段进一步过滤后续的splunk查询。我该怎么做?

答案

FORMAT命令对此特别有用。这是一个过于简单的示例,但应该使您了解如何使用它:

首先,精心设计子搜索,以提供您关心的字段。这是一个有效的示例:

|metadata type=hosts index=_internal | table host | format

尝试单独运行此搜索以查看输出是什么样。

然后我们将其添加为您的实际搜索的子搜索:

index=foo sourcetype=bar [|metadata type=hosts index=_internal | table host | format]

这将为您提供来自索引foo,源类型栏以及子搜索中的每个主机的事件。

这实际上是一个功能非常强大的命令,因为您可以使用它来动态设置时间范围以及复杂的布尔值过滤器。

More FORMAT documentation can be found here

More complex example of what can be done with FORMAT

另一答案

一个选项是将数据从第一个搜索到下一个搜索,然后您可以进一步过滤结果。希望以下简化的搜索字符串将为您提供有关如何执行此操作的想法...

index=_internal  | head 100  | fields host, sourcetype, source | search sourcetype="splunkd_access"

有关更多信息,建议您通读Splunk Search Reference

另一答案

在Splunk中,可以过滤/处理第一个splunk查询的结果,然后进一步过滤/处理结果以获得所需的输出。这是Splunk最强大的功能,是Kibana,Tableau等其他可视化工具所缺少的。

假设您在索引“ foo”中有数据,并提取诸如名称,地址之类的字段。现在,名称/地址可以v =是直接键值对,或者您需要使用正则表达式或Splunk内置功能“提取字段”从事件中提取。然后使用名称=“ John”的值进一步过滤,然后Splunk搜索将是:

index =“ foo” |表格名称,地址|其中name =“ John”

以上是关于使用另一个splunk查询的结果过滤splunk结果的主要内容,如果未能解决你的问题,请参考以下文章

splunk一些查询例子

Splunk_常用关键字函数(施工中。。。)

如何为我的查询中出现的每颗星触发 splunk 警报

Splunk 错误指定至少一个命名组

splunk安装介绍

Splunk_SPL运算符