在具有多值字段的查找表中搜索Splunk

时间:2020-05-06 12:45:09

标签: splunk

我有一个如下所示的查找表:

enter image description here

因此,我有一个Splunk查询,该查询生成一个具有IP地址的表,并且我想自动填充相关的DNS名称。

我使用以下内容,但不起作用:

Index=servers signature_id=4624
| stats count by IpAddress
**| lookup lookup.csv "ip" AS IpAddress OUTPUT "dns" AS server_name**
| stats count by server_name IpAddress 

有什么办法解决吗?

也许我需要在查找之前做类似的事情

| makemv delim="|" ip | mvexpand ip  | fields ip dns ?

1 个答案:

答案 0 :(得分:0)

Splunk查找使用精确,通配符或CIDR匹配,但不能选择多个值之一。默认值为精确,这意味着数据必须与指定的查找列中的值精确匹配。在您的示例中,“ ip”字段必须为“ ip1 | ip2 | ip3”才能返回“ server1”。

通配符匹配是指在查找文件中具有“ ”。例如,它将允许“ ip”匹配“ subnet1 ”。

CIDR匹配允许在查找文件中使用CIDR字符串,例如,使“ ip”匹配“ ip1 / 24”。

通配符和CIDR匹配都必须在查找定义中进行配置。请参阅设置->查找->查找定义。

考虑将您的查找文件重构为每行具有一个IP地址。

dns        ip
server1    ip1
server1    ip2
server1    ip3
server2    ip4
server2    ip5

这将与您现有的查询一起使用。但是,查找dns字段只会返回该服务器的第一个IP地址。

相关问题