【问题标题】:Getting Docker logs to Fluentd via SYSLOG_IDENTIFIER通过 SYSLOG_IDENTIFIER 获取 Docker 日志到 Fluentd
【发布时间】:2026-01-27 12:15:01
【问题描述】:

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

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

当我使用 journalctl CONTAINER_NAME=test-docker 查看日志时,我清楚地看到了我在 --log-opt tag= 中定义的标签“码头工人。{{.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 的日志,或者我在这里做错了什么?

【问题讨论】:

    标签: logging fluentd google-cloud-logging systemd-journald docker-logs


    【解决方案1】:

    我发现了这个Community Tutorial关于如何配置谷歌云日志驱动程序,似乎对你有用。

    【讨论】: