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


person Sine C    schedule 23.03.2020    source источник


Ответы (1)


Я нашел это Руководство сообщества о том, как настроить драйвер Google Cloud Logging , кажется, это может быть вам полезно.

person Ruben M    schedule 24.03.2020