多值字段只存储最后一个值
Multi-value fields only store last value
我对 ELK 和 grok 比较陌生。我正在尝试解析一个日志文件,该文件可能包含相同值的 1 次或多次重复。例如,日志文件可能包含:
值 1;值 2;值 3;
值 1;
值 1;值 2;值 3;值 4;.......值 900;
对于这个例子,我使用了以下 grok 模式:
((?[a-z0-9]*)[;])+
这似乎工作正常,并解析了每个值。问题是 "tag" 字段只包含最后一个值(即 value900)。所有以前的值似乎都被覆盖了。
有没有办法收集所有的值并将它们存储到一个数组中,而不是只获取最后一个值?
只需使用 mutate:
mutate {
split => ["tag",";"]
}
这会将标记字段中的值拆分为一个数组。因此,只需匹配您的 grok 中的整个字符串((?<tag>[a-z0-9;]+)
,然后从那里拆分它。
我对 ELK 和 grok 比较陌生。我正在尝试解析一个日志文件,该文件可能包含相同值的 1 次或多次重复。例如,日志文件可能包含:
值 1;值 2;值 3;
值 1;
值 1;值 2;值 3;值 4;.......值 900;
对于这个例子,我使用了以下 grok 模式:
((?[a-z0-9]*)[;])+
这似乎工作正常,并解析了每个值。问题是 "tag" 字段只包含最后一个值(即 value900)。所有以前的值似乎都被覆盖了。
有没有办法收集所有的值并将它们存储到一个数组中,而不是只获取最后一个值?
只需使用 mutate:
mutate {
split => ["tag",";"]
}
这会将标记字段中的值拆分为一个数组。因此,只需匹配您的 grok 中的整个字符串((?<tag>[a-z0-9;]+)
,然后从那里拆分它。