创建 Splunk 警报 使用正则表达式从字段中提取重要信息

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

当任何内容发生移动时,我正在为 Active Directory 事件创建 Splunk 警报。 我在搜索中实现正则表达式时遇到麻烦。

所以我创建了一个像这样的正则表达式:

=(\b\w+.\w?.?.?\w+\s?\w+),(?:.?.?.?)(\w+\s?\w+),(?:.?.?.?)(\w+\s?\w+),(?:.?.?.?)(\w+\s?\w+) 

它并没有像我想要的那样工作。我正在使用的示例数据如下所示:

CN=User Test,OU=Admins,OU=Users,OU=Test,OU=12Test Test,DC=test,DC=test12,DC=test,DC=test
CN=User T. Test ADM,OU=Users,OU=Test,OU=Test,DC=test12,DC=test,DC=abc,DC=test

问题是我需要忽略

CN=
OU=
,然后只获取字符串,忽略
DC=
之后的任何内容,并将这些值提取为变量或可访问的字符串。

例如,我希望我的输出在警报中看起来像这样

User Account <CN= String> moved from <12Test> <Test> <Users>
regex splunk splunk-query pcre2
1个回答
0
投票

当使用正则表达式 (regex) 从 Splunk 中的示例数据中提取所需信息时,您可以使用 Splunk 的 rex 命令。这是一个 Splunk 搜索查询,可帮助您实现所需的输出:

index=your_index 源类型=your_sourcetype | rex field=_raw "CN=(?[^,]+),OU=(?[^,]+),OU=(?[^,]+),OU=(?[^,]+),DC =(?[^,]+),DC=(?[^,]+),DC=(?[^,]+),DC=(?[^,]+)" | eval message="用户帐户 移自 <$ou$>" |表消息 这是解释的原因 index=your_index sourcetype=your_sourcetype:将 your_index 和 your_sourcetype 替换为适当的值以指定 Active Directory 事件的索引和源类型。

rex field=_raw ...:该命令使用rex命令对_raw字段进行正则表达式提取,该字段通常包含原始日志数据。

正则表达式模式“CN=(?[^,]+),OU=(?[^,]+),OU=(?[^,]+),OU=(?[^,]+),DC =(?[^,]+),DC=(?[^,]+),DC=(?[^,]+),DC=(?[^,]+)" 捕获 CN= 之后的值,日志数据中的 OU= 和 DC=。它为每个值创建命名捕获组(cn、ou 和 dc)。

eval message="User Account moving from <$ou$>":此 eval 命令创建一个名为 message 的新字段,您可以在其中根据需要格式化输出消息。它包括从命名捕获组中提取的值。

table message:此命令仅选择要在搜索结果中显示的消息字段。

运行此 Splunk 搜索查询后,输出应为您提供所需的格式,其中“用户帐户”后跟 CN 值,“移自”后跟 OU 值。

我希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.