好的想法是十分钱一打,真正无价的是能够实现这些想法的人。

json格式匹配问题

Logstash | 作者 qiqisa | 发布于2018年05月04日 | 阅读数:3276

你们好,
我第一次遇到在日志中含有“\x22”、“\xEc9”这类的转义后的字符串,这类日志我在file 中使用 codec => json后发现它无法处理这些消息,我该怎么做呢?
目前我使用 codec => plain 然后用 grok gsub 功能来将这些字符去掉,请问还有其他更简便的方式吗?
 
{"remote_addr":"192.168.100.50","remote_user":"-","time_local":"04/May/2018:10:23:01 +0800","request":"POST /v1/events/created HTTP/1.1","request_body":"{\x22type\x22:\x22column\x22,\x22id\x22:\x225aebb8d6f265da0b776f8b82\x22}","status":200,"body_bytes_sent":41,"http_headers":{"referer":"-","user_agent":"-","X-Jj-Src":"-","X-Forwarderd-for":"192.168.100.42"}}
 
这个是我的日志内容,请各位给我另外一个思路
已邀请:

strglee

赞同来自:

不用去掉\x,这个是因为request_body字段中 "\x" 这种格式应该是 "\\x"才能识别成json, 在filter里面处理一下就可以了
 
filter {
mutate {
gsub => ["message", "\\x", "\\\\x"]
}
json {
source => "message"
}
}

a505100745

赞同来自:

我也遇到这个问题了,楼主这个问题解决了没有?

要回复问题请先登录注册