1

我有 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 服务。

4

0 回答 0