如何替换Logstash中字段中的字符串

如何替换Logstash中字段中的字符串,logstash,elastic-stack,Logstash,Elastic Stack,我在Windows事件日志中有一个IP地址字段,该字段在IP地址前面包含“::fffff:”等字符。我不能在这里更改源代码,所以我必须在Logstash中修复它 我一定很擅长谷歌搜索,但我真的找不到一个简单的方法从logstash的ip地址字段中删除这些字符 例如,我试过 if ("" in [event_data][IpAddress]) { mutate { add_field => { "client-host" => "%{[ev

我在Windows事件日志中有一个IP地址字段,该字段在IP地址前面包含“::fffff:”等字符。我不能在这里更改源代码,所以我必须在Logstash中修复它

我一定很擅长谷歌搜索,但我真的找不到一个简单的方法从logstash的ip地址字段中删除这些字符

例如,我试过

 if ("" in [event_data][IpAddress]) {
        mutate {
              add_field => { "client-host" => "%{[event_data][IpAddress]}"}
              gsub => ["client-host", ":", ""]
        }
        dns {
             action => "replace"
             reverse => [ "client-host" ]
        }
 }

但运气不好,冒号还在那里。如何替换“::ffff:”在字符串中“::ffff:10.0.36.39”在Logstash中?

直到
gsub
之后,
add\u字段才会执行,因此需要将其分解为两个
mutate

mutate {
  add_field => { "client-host" => "%{[event_data][IpAddress]}"}
}
mutate {
  gsub => ["client-host", "::ffff:", ""]
}
mutate
工作的特定顺序:

rename(event) if @rename
update(event) if @update
replace(event) if @replace
convert(event) if @convert
gsub(event) if @gsub
uppercase(event) if @uppercase
lowercase(event) if @lowercase
strip(event) if @strip
remove(event) if @remove
split(event) if @split
join(event) if @join
merge(event) if @merge

filter_matched(event)
其中filter\u matched具有所有标准操作,如
add\u字段