我有一个 Splunk 实例在 Docker 中作为 HEC 运行。我想在每个事件的基础上实现源类型覆盖。为此,我在目录下添加了props.conf
和transforms.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_first
或test_transform_second
转换都是完美匹配的。
为了确保正则表达式在 Splunk 上兼容,我运行了以下搜索查询并得到了预期的结果
index=testindex | regex "\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}:\d{3}\]\s\[.*"
值得注意的一点是,默认变换被指定为最后一个变换props.conf
问题的可能原因是什么?