我有一个登陆到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
?
谢谢!
答案 0 :(得分:2)
使用json codec解析JSON字符串(您可以改为使用json filter),然后重命名" log"字段到"消息"使用mutate filter并最终使用date filter来解析"时间"字段。
filter {
mutate {
rename => ["log", "message"]
}
date {
match => ["time", "ISO8601"]
remove_field => ["time"]
}
}