使用gsub对事件中指定字段的内容进行替换,官方手册:https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-gsub
gsub语法例子
filter {
mutate {
gsub => [
# 将fieldname字段内容中的"/"替换为"_"
"fieldname", "/", "_",
# 将fieldname2字段内容中的反斜杠、问号、井号和减号替换为点
"fieldname2", "[\\?#-]", "." # 支持正则匹配待替换的内容
]
}
}
实例1:将message中的双引号替换成单引号
logstash.conf
input {
stdin{}
}
filter {
mutate {
gsub => [ "message",'"',"'" ]
}
}
output {
stdout{}
}
启动logstash后,输入: curl “127.0.0.1” ,结果如下:
未进行替换之前的结果如下:
实例2:将message中的"{"前面的部分替换为空
原始事件为: <134>wszwsc_usm {“logType”: 5, “date”: “2023-04-17 10:32:42”, “userName”: “G_wszw_138”, “sourceIP”: “159.223.23.42”, “accountName”: “root”, “hostIP”: “192.168.104.22”, “ruleID”: 38003056, “cmd”: “ll;”}
将事件中的 <134>wszwsc_usm 去掉
filter {
mutate {
gsub => [ "message","^[^\{]+","" ]
}
}