У меня есть докер-контейнеры, которые записывают все журналы в 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, или я здесь что-то делаю не так?