У меня есть docker контейнеры, которые записывают все журналы в 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, используя Fluentd. Но проблема в том, что когда я пытаюсь отфильтровать журналы, используя SYSLOG_IDENTIFIER в Fluentd, я ничего не получаю. Как я прочитал в 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>
Мой главный вопрос здесь - как я могу отфильтровать журналы от fluentd, используя SYSLOG_IDENTIFIER или я здесь что-то не так делаю?