0

我有一个 Splunk 实例在 Docker 中作为 HEC 运行。我想在每个事件的基础上实现源类型覆盖。为此,我在目录下添加了props.conftransforms.conf文件$SPLUNK_HOME/etc/system/local

文件定义如下

props.conf如下图所示

[source::*testing-token*]
ANNOTATE_PUNCT=false
TRANSFORMS-test_transform=test_transform_first,test_transform_second,test_transform_default

transforms.conf如下图所示

[test_transform_first]
REGEX=\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}:\d{3}\]\s\[.*
DEST_KEY=MetaData:Sourcetype
FORMAT=sourcetype::mytestcustom:myservicelogs

[test_transform_second]
REGEX=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s.*
DEST_KEY=MetaData:Sourcetype
FORMAT=sourcetype::mytestcustom:accesscombined

[test_transform_default]
REGEX=.
DEST_KEY=MetaData:Sourcetype
FORMAT=sourcetype::mytestcustom:defaultevent

当我发送一个原始事件时,HEC 将它映射到源类型,test_transform_default即使该事件与任何一个test_transform_firsttest_transform_second转换都是完美匹配的。

以下是相同的屏幕截图 在此处输入图像描述

为了确保正则表达式在 Splunk 上兼容,我运行了以下搜索查询并得到了预期的结果

index=testindex | regex "\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}:\d{3}\]\s\[.*"

结果如下 在此处输入图像描述

值得注意的一点是,默认变换被指定为最后一个变换props.conf

问题的可能原因是什么?

4

1 回答 1

0

事件第一次匹配 asourcetype时,将落入其中

如果您在实际的 HEC 提交中使用给定的事件标记sourcetype事件,它将始终使用该事件sourcetype

如果您想以不同的方式出现,请在您的 HEC 提交中以不同的方式标记它

于 2022-01-25T14:28:05.340 回答