我有 2 个使用 Fluentd 作为日志驱动程序的 docker 容器。两者都发送有效的 JSON 消息。以下是它们的示例:
{"tag":"docker/article-api","log":"{\"level\":\"debug\",\"port\":\":80\",\"time\":\"2020-02-17T17:06:46Z\",\"message\":\"starting the server\"}"}
{"log":"{\"level\":\"info\",\"ts\":1581959205.461808,\"caller\":\"apiserv/main.go:69\",\"msg\":\"Service is ready to listen\"}","tag":"docker/user-api"}
它们完全不同,但我相信两者都是有效的。当我们使用 Stackdriver 日志时,我想添加等于 level 值的“severity”字段。
这是配置文件的一部分,它造成了所有的混乱。
<filter **>
@type parser
key_name log
replace_invalid_sequence true
<parse>
@type json
</parse>
</filter>
这就是问题本身。通过过滤器后,第一个日志条目消息被完全删除,而第二个则通过了。
我试图指定 time_format,但它似乎根本不起作用。
除此之外,我尝试使用filter docker**
,但它会删除所有有用的条目。它与它无关,但如果你知道是什么原因造成的,我会很感激
先感谢您
PS 如果确实有所作为,我正在使用 google-fluentd 服务。