如何将关键字与值匹配,然后将值相应地分配给 Splunk 中的变量?



我有一个需要同时监控主传感器和备用传感器的情况。但在此之前,我需要弄清楚主传感器和备用传感器。

我有这样的东西:

**sensor**
sensor1
sensor1_backup
sensor2
sensor2_backup
sensor3
sensor3_backup

我想检查传感器以查看它是否是备份传感器,然后需要知道它是谁的备份。

我尝试了这样的事情:

... | eval backup_sensor=if(match(sensor,*backup*,1,0),sensor) 

但是,如果匹配为真,我可以将传感器分配给备份。但是,如果传感器失败,如何将传感器分配给新字段"primary_sensor"。

另外,我该如何确定它是谁的备份。

例如,我找到一个备份传感器"sensor2_backup",我是否应该再次使用 match 语句来查看它是否是 sensor2 的备份?

match

函数将起作用,但就像你提到的,你可能需要其中两个。 此外,match使用正则表达式而不是模式。

更好的方法是rex. 它还使用正则表达式,但可以轻松提取多个字段。 试试这个:

... | rex field=sensor "(?<primary_sensor>[^_]+)_(?<backup_sensor>backup>.*)"

最新更新