问题描述
我已经用完了 GoogleFu,所以如果有人可以向我指出正确的方向或更好的一两个术语到 Google...我正在尝试找出 Splunk SPL 语法来搜索 4 个不同的字段值,四个字段中的任何匹配都将获胜,无需在每个字段中搜索 TERM(<IP>)
。
index="main" packets_out>0 action="allowed" TERM(192.168.2.1)
| fields src_ip,dest_ip,dest_translated_ip,src_translated_ip,packets_out
| head 10
这些将始终保持不变:index="main" packets_out>0 action="allowed"
IP 将是唯一会改变的变量,我试图让其他人尽可能简单地“打开搜索,更改 1 个 IP,点击开始”。
这可以正常工作,但是一旦我尝试使用 2000 台设备搜索 prod.. 我希望我的查询时间不再是 1 秒,即使使用“快速模式”搜索也是如此。我已将 4 秒的查询时间缩短为 1。连同已在我的家庭实验室中使用此查询的数据大小,但我认为这不会很好地扩展。
除了像这样在查询中插入 10-20 个设备名称之外,还有更好的方法吗?我宁愿没有静态设备名称,所以如果有人“忘记”更新查询;我会因为外部 IP 重叠问题而受到指责。
index="main" packets_out>0 action="allowed" TERM(192.168.2.1) dvc_name="firewall1" OR dvc_name="firewall2" <*18>
| fields src_ip,packets_out
| head 10
如果需要,原始日志:
Apr 7 23:59:55 192.168.2.1 Apr 7 23:59:55 wall 1,2021/04/07 23:59:54,012801092758,TRAFFIC,end,2560,192.168.2.189,173.194.219.94,10.10.10.2,web_access_out-1,quic,vsys1,trust,untrust,ethernet1/8,ethernet1/2,splunk,2004,1,53384,443,59427,0x400050,udp,allow,5528,2350,3178,15,2021/04/07 23:57:53,any,5261883,0x0,192.168.0.0-192.168.255.255,United States,6,9,aged-out,wall,from-policy,N/A,f863e426-7e87-4999-b5cb-bc6dc38d788f,0.0.0.0,2021-04-07T23:59:55.282-04:00,
谢谢,
解决方法
使用OR
:
index=ndx sourcetype=srctp (fieldA="myval" OR fieldB="myval" OR fieldC="myval")
为了清晰/可读性添加了括号