我正在使用logstash从sql数据库中获取数据。内容中有一个称为“代码”的字段 这个结构:
PO0000001209
ST0000000909
我想要做的是删除字母后面的6个零以获得以下结果:
PO1209
ST0909
我会将结果放在另一个名为“code_short”的字段中,并将其用于我在elasticsearch中的查询。我已经配置了输入 和logstash中的输出,但我不知道如何使用grok或mutate过滤器
我已经阅读了一些例子,但我对此很新,而且我有点卡住了。
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
您可以使用mutate/gsub
过滤器,但这会替换code
字段的值:
filter {
mutate {
gsub => [
"code", "000000", "",
]
}
}
另一种选择是使用grok
过滤器,如下所示:
filter {
grok {
match => { "code" => "(?<prefix>[a-zA-Z]+)000000%{INT:suffix}" }
add_field => { "code_short" => "%{prefix}%{suffix}"}
}
}