0

我有将所有日志写入 Journald 的 docker 容器。我已将这两个标志添加到 docker run 命令

--log-driver=journald --log-opt tag="docker.test"

当我使用journalctl CONTAINER_NAME=test-docker查看日志时,我清楚地看到了我在--log-opt tag="docker.{{.Name}}"中定义的标签

Mar 23 06:33:57 sethnpl025 "docker.test"[1534]: {"thread":"localhost-startStop-1","level":"INFO","loggerName":.......

我的主要目标是从 journald 中获取这些日志,并使用 Fluentd 将它们写入 Google Cloud 日志记录。但问题是,当我尝试使用Fluentd中的 SYSLOG_IDENTIFIER 过滤日志时,我什么也没得到。正如我在 docker 文档中阅读的(如果我阅读正确),设置--log-opt tag="xxxx"将设置CONTAINER_TAGSYSLOG_IDENTIFIER

我的 Fluentd 配置是

  @type systemd
  tag test
  path /var/log/journal
  <storage>
    @type local
    persistent true
    path /var/log/fluent/journal.pos
  </storage>
  matches [{ "SYSLOG_IDENTIFIER": "docker.test" }]
  read_from_head true
</source>

我的主要问题是如何使用SYSLOG_IDENTIFIER过滤来自 fluentd 的日志,或者我在这里做错了什么?

4

1 回答 1

0

我找到了这个关于如何配置 Google Cloud Logging Driver 的社区教程,似乎对你有用。

于 2020-03-24T11:43:04.810 回答