一、匿名化数据方式
针对数据进入索引前匿名化数据Splunk Enterprise提供了二种方式:
- 使用正则表达式(regex)转换。此方法需要花费较长的时间配置,但是在初始配置后更易于修改,并且可以更轻松地分配给多个数据输入。
- 使用SEDCMDsed脚本之类的脚本进行替换。sed脚本方法更易于执行,花费的时间更少,并且比转换要快。但是,您可以调用多少次SEDCMD以及它可以执行的操作受到限制。
二、匿名数据的要点
匿名化数据之前,必须选择一组事件来匿名化。
1.在props.conf选择要匿名化的事件;然后在props.conf中使用sed脚本对事件进行匿名处理;
2.使用props.conf和transforms.conf通过正则表达式转换对事件进行匿名处理;
三、选择要匿名的事件
可以根据事件数据是来自特定来源还是主机来匿名化,还是使用特定来源类型标记事件数据。
必须指定在中使用哪种方法props.conf。在中指定的节名称props.conf决定了Splunk Enterprise如何选择和处理事件以进行匿名化。
Splunk的最佳做法
必须在inputs.conf其中指定源类型:
[host::<host>] 匹配包含指定主机的事件
source::<source> 将事件与指定来源匹配
<sourcetype>匹配具有指定源类型的事件。
四、用SEDCMD替换事件中的字符串
使用SEDCMD方法替换字符串或替换字符。
SEDCMD-<class> = s/<regex>/<replacement>/flags
SEDCMD命令具有以下组件:
regex 是Perl语言的正则表达式。
replacement 是用于替换正则表达式匹配项的字符串。
flags可以是g替换所有匹配项的字母,
也可以是替换指定匹配项的数字。
使用SEDCMD替换事件中的字符
sed字符替换的语法为:
SEDCMD-<class> = y/<string1>/<string2>/
这则替换字符的每一次出现string1在字符string2。
将正则表达式转换与transforms.conf一起使用以使事件匿名化
中的每个节都transforms.conf定义了一个转换类,您可以从该转换类中props.conf为给定的源类型,源或主机进行引用。
转换具有多个设置和变量,可让您指定要进行的更改以及在何处进行更改,但是以下是最重要的:
该REGEX设置指定要匿名化时指向字符串的正则表达式 该FORMAT设置指定屏蔽值 该$1变量代表正则表达式之前的事件文本,正则表达式代表您要屏蔽的事件中的字符串 该$2变量表示正则表达式之后事件的文本 DEST_KEY =
_raw表示将值from写入FORMAT日志的原始值。这使事件匿名化。
正则表达式处理器不处理多行事件。如果事件跨越多行,
请(?m)在中将正则表达式放在前面,
以指定事件为多行transforms.conf。