Получение журналов Docker в Fluentd через SYSLOG_IDENTIFIER
У меня есть докерные контейнеры, которые записывают все журналы в Journald. Я добавил эти два флага в команду 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 и записать их в Google Cloud logging с помощью Fluentd. Но проблема в том, что когда я пытаюсь фильтровать журналы с помощью SYSLOG_IDENTIFIER во Fluentd, я ничего не получаю. Как я читал в документации докера (если я правильно прочитал), установка --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>
Мой главный вопрос здесь - как я могу фильтровать журналы из fluentd с помощью SYSLOG_IDENTIFIER, или я здесь что-то делаю не так?
1 ответ
Я нашел это руководство сообщества о том, как настроить драйвер Google Cloud Logging, кажется, оно может быть вам полезно.