我有一个登录到stdout / stderr的docker容器。 Docker将其输出保存到/var/lib/docker/containers//-logs.json
该日志具有以下结构的行
{"log":"This is a message","stream":"stderr","time":"2015-03-12T19:27:27.310818102Z"}
我应该使用哪个输入/编解码器/过滤器仅将
log
字段作为message
?谢谢!
最佳答案
使用json codec解析JSON字符串(可以改用json filter),然后使用mutate filter将“log”字段重命名为“message”,最后使用date filter解析“time”字段。
filter {
mutate {
rename => ["log", "message"]
}
date {
match => ["time", "ISO8601"]
remove_field => ["time"]
}
}
关于docker - 用logstash解析docker日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29165968/