如何替换 Logstash 中字段中的字符串
How do I replace a string in a field in Logstash
我有一个来自 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" ]
}
}
但运气不好,冒号还在。如何在 Logstash 中替换字符串“::ffff:10.0.36.39”中的“::ffff:”?
add_field
直到 gsub
之后才执行,因此您需要将其分成两个 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_matched 具有所有标准操作,例如 add_field
我有一个来自 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" ]
}
}
但运气不好,冒号还在。如何在 Logstash 中替换字符串“::ffff:10.0.36.39”中的“::ffff:”?
add_field
直到 gsub
之后才执行,因此您需要将其分成两个 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_matched 具有所有标准操作,例如 add_field