Filebeat против Java-приложений ведения журнала

Мы начнем развертывать наши Java-приложения с помощью докера на AWS elasticbeanstalk, нам нужна централизованная регистрация и мы будем использовать стек ELK.

Я хотел бы сохранить один процесс для каждого контейнера, поэтому избегайте использования файловых битов, но для этого нам пришлось бы использовать другое приложение, такое как системный журнал или даже приложение tcp.

Мы не можем позволить себе потерять журналы.

Filebeat предоставляет логику повторного запуска из коробки, но добавление ее в микс увеличит сложность развертывания, потребуется убедиться, что filebeat получает сигнал SIGTERM, когда контейнеры завершаются, убедитесь, что он предварительно запечён в образ контейнера или в Dockerfile и т. д. .

Если мы пойдем по пути, используя приложение tcp или syslog, повторная попытка зависит от нас, и мы также хотим избежать сложности в нашем коде.

Каковы плюсы и минусы каждого подхода, помимо того, что я указал?

Наша библиотека журналов logback.


person Tiago Lopo    schedule 19.02.2016    source источник


Ответы (1)


У меня те же опасения, что и у вас. Самый безопасный способ ведения журнала — локальный файл (при условии, что у вас достаточно места). Потому что намного сложнее гарантировать доступность другого процесса или конечной точки сети.

Просмотрите обсуждение в списке рассылки Logback: origin / зеркало MarkLogic / Nabble зеркало и, в частности, для воспроизведения:

Если вы абсолютно хотите быть уверены, что журналы записываются до такой степени, что сбой в журнале должен означать, что транзакцию следует повторить, тогда журнал обратно не является правильным выбором API.

Проект https://github.com/internetitem/logback-elasticsearch-appender предоставляет приложение в высокодоступный кластер ElasticSearch напрямую с буферизацией событий журнала в памяти, если все узлы не работают.

Альтернативный способ — написать высокодоступное промежуточное ПО для кэширования и гарантии доставки. Как Кафка, Редис и т.д.

person gavenkoa    schedule 28.08.2017