4

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

4

3 回答 3

6

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 文档可以在这里找到

使用 FORMAT 可以完成的更复杂的示例

于 2013-04-17T19:11:31.017 回答
0

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

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

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

于 2013-03-07T16:01:38.247 回答
0

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

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

假设您在索引中有数据foo并提取名称、地址等字段。

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

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

index="foo" | table name, address | where name="John"
于 2020-05-22T07:52:18.557 回答