Получение журналов 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, кажется, оно может быть вам полезно.

Другие вопросы по тегам