Logstash 使用 mutate 使用位置对字段进行子字符串化

Logstash substring a field using position using mutate

我想知道在 mutate 过滤器中使用 add_field 时是否有使用子字符串的方法,可能使用 %{field} 语法。
例如:

filter {
    mutate {
        add_field => { "shorter_field" => "%{field[0:4]}" }
    }
}

我看到了使用 ruby 过滤器的解决方案,但我更喜欢只使用 mutate,因为我有一个使用过滤器进行的操作序列,我更喜欢保持简单

试试这个:

(假设您需要字段的前 4 个字符。)

代码:

filter {
    mutate {
        gsub => ["shorter_field", "(?<=^....)(.*)", ""]
    }
}

此处除前 4 个字符外的所有字符将从 shorter_field 中删除。

示例:

输入:

shorter_field = example_value

输出:

shorter_field = exam