Вход в Fluentd через Sidecar Link в AWS ECS Replica Service
Я устраняю неполадки, чтобы мои журналы ECS работали правильно в моей среде AWS ECS (non-fargate), используя Fluentd в моем сопроводительном файле и настраивая fluentd в качестве драйвера журнала в моем основном контейнере. Я установил свою службу ECS с известным работающим внутренним веб-приложением и обновил определение задачи, включив в него дополнительное определение контейнера, в котором есть ссылка на образ fluentd в моем ECR. Я связываю эти два, чтобы создать коляску через ссылки ECS, показанные ниже. Моя конфигурация fluentd настроена для пересылки в мой splunk-кластер. Я развернул службу, и я могу подключиться и войти в оба контейнера докеров на моем хосте докеров. Я также установил fluent-cat в моем основном корневом контейнере, так что я могу протестировать отправку журналов на него с помощью fluent-cat, а не просто ждать драйвер журнала.
Когда я смотрю на журналы докеров на хосте докеров, я вижу сотни ошибок, в которых говорится "can't send logs, client is reconnecting"
, которые затем в конечном итоге превращаются в "Buffer full, limit 1048576"
. Однако, когда я запускаю эту команду fluent-cat внутри своего основного контейнера, я вижу, что мои журналы отображаются в splunk.echo '{"message":"am I in splunk"}' | fluent-cat debug.log --host logging-sidecar --port 24224
Прямо сейчас вся документация, которую я читаю, ссылается на запуск fluentd в качестве демона, но явно не говорит, что это должен быть демон, однако у меня такое ощущение. Поскольку эта служба ECS запускается как REPLICA и настраивается как дополнительный компонент через ссылки ECS в определении задачи, дополнительный компонент также должен работать как Replica. Это правда, что свободный адрес должен быть службой демона? Если нет, то каковы возможные причины, по которым эта настройка позволяет работать и обрабатывать запросы 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"
}
}