我们的Go服务器将日志输出到JSON中的stdout,每行看起来如下所示:
{"time": "2017-06-01 14:00:00", "message": "Something happened", "level": "DEBUG"}
我们的docker-compose使用标准的json文件记录器,它将log
字段中的每一行包装为转义字符串,如下所示:
{
"log": "{\"time\": \"2017-06-01 14:00:00\", \"message\": \"Something happened\", \"level\": \"DEBUG\"}\"",
"timestamp": "<the time>",
...more fields...
}
但我们不希望将日志字段作为字符串进行转义,我们希望它在同一级别嵌入为JSON:
{
"log": {
"time": "2017-06-01 14:00:00",
"message": "Something happened",
"level": "DEBUG"
},
"timestamp": "<the time>",
...more fields...
}
这可以实现吗?
答案 0 :(得分:0)
看起来无法做到这一点。但是我可以将JSON字符串转换为Filebeat中的实际JSON,我们将其用于将日志传递给Kibana和Elastalert。为此,我使用了decode_json_fields
中processors
下的filebeat.yml
选项。