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

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

我有需要同时监视主传感器和备用传感器的情况。但是在此之前,我需要找出主要传感器和备用传感器。

我有这样的东西:

**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的备份?

pattern-matching conditional-statements splunk multiple-monitors
1个回答
0
投票

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

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

... | rex field=sensor "(?<primary_sensor>[^_]+)_(?<backup_sensor>backup>.*)"
© www.soinside.com 2019 - 2024. All rights reserved.