【发布时间】: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_TAG 和 SYSLOG_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