Я устраняю неполадки, заставляя мои журналы 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"
}
}