Вход в систему Fluentd через Sidecar Link в AWS ECS Replica Service - PullRequest
0 голосов
/ 14 февраля 2020

Я устраняю неполадки, заставляя мои журналы ECS работать правильно в моей среде AWS ECS (non-fargate), используя Fluentd в моей коляске и настраивая fluentd в качестве драйвера журнала в моем основном контейнере. Я настроил свою службу ECS с известным рабочим внутренним веб-приложением и обновил определение задачи, добавив в него дополнительное определение контейнера, которое содержит ссылку на свободное изображение в моем ECR. Я соединяю эти два, чтобы построить коляску через Ссылки ECS, показанные ниже. Моя свободная конфигурация настроена для переадресации в мой спленк кластер. Я запустил службу, и я могу подключиться и войти в оба docker контейнера на моем docker хосте. Я также настроил fluent-cat на своем основном контейнере root, чтобы я мог проверить отправку журналов на коляску с помощью fluent-cat, а не просто полагаться на ожидание драйвера журнала.

Когда я смотрю журналы docker изнутри хоста docker, я вижу сотни ошибок, говорящих "can't send logs, client is reconnecting", которые затем в конечном итоге превращаются в "Buffer full, limit 1048576". Однако, когда я запускаю эту команду fluent-cat внутри моего основного контейнера, я вижу, что мои логи отображаются в отличном состоянии. echo '{"message":"am I in splunk"}' | fluent-cat debug.log --host logging-sidecar --port 24224

Прямо сейчас вся документация, которую я читаю, ссылается на запуск fluentd в качестве демона, но явно не говорит, что это должен быть демон, однако у меня такое чувство, что это так. Так как эта служба ECS работает как REPLICA, и она настроена как коляска через ссылки ECS в определении задачи, коляска также должна работать как реплика. Правда ли, что свободный адрес должен быть сервисом демона? Если нет, каковы возможные причины, по которым эта настройка позволяет обрабатывать и обрабатывать запросы fluent-cat, но даже не позволяет моему основному контейнеру подключаться к fluentd через драйвер журнала fluentd? Любые предложения действительно помогут!

Связывание определения задачи:

"links": [
   "logging-sidecar"
]

Регистрация конфигурации основного контейнера в определении задачи:

"logConfiguration": {
  "logDriver": "fluentd",
     "secretOptions": null,
     "options": {
       "mode": "non-blocking",
       "fluentd-async-connect": "true",
       "fluentd-address": "logging-sidecar:24224",
       "fluentd-buffer-limit": "500MB",
       "tag": "pub-site-sidecar2"
     }
  }
...