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

问题描述 投票:0回答:4

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

splunk
4个回答
7
投票

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

首先,设计您的子搜索,为您提供您关心的领域。这是一个功能示例:

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

尝试自己运行此搜索以查看输出结果。

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

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

这将为您提供来自索引 foo、sourcetype bar 和子搜索中每个主机的事件。

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

可以在此处找到更多格式文档

使用 FORMAT 可以做什么的更复杂的例子


0
投票

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

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

有关更多信息,我建议阅读Splunk 搜索参考


0
投票

在 Splunk 中,可以过滤/处理第一个 splunk 查询的结果,然后进一步过滤/处理结果以获得所需的输出。

这是Splunk最强大的功能,是Kibana、Tableau等其他可视化工具所缺乏的。

假设您在索引

foo
中有数据并提取姓名、地址等字段。

现在名称/地址可以是直接键值对,或者您需要使用正则表达式或 Splunk 内置功能从事件中提取提取字段.

然后使用 name = "John" 等值进一步过滤,然后 Splunk 搜索将是:

index="foo" | table name, address | where name="John"

0
投票

子搜索是嵌套在另一个搜索查询中的搜索查询,子搜索的结果用于过滤主搜索,所以:

1- 首先,运行查询以提取要用于过滤后续 Splunk 查询的字段列表:

index=my_index sourcetype=my_sourcetype | table my_field

2-接下来,使用此查询的结果作为输入,使用子搜索过滤后续查询:

index=my_index sourcetype=my_sourcetype [ | 
    search index=my_index sourcetype=my_sourcetype | table my_field
] | your_search_operations

这里,子搜索用方括号 [|搜索 ...]。子搜索的结果用于过滤主搜索查询。
管道 |从管道之前的命令或操作获取输出(结果),并将其作为输入传递给管道之后的命令或操作。

© www.soinside.com 2019 - 2024. All rights reserved.