Лучшие практики: управление журналами для микросервисов на основе Java, работающих на K8S - PullRequest
0 голосов
/ 29 сентября 2018

У нас есть наши приложения на основе Java [мы используем SpringBoot и Dropwizard], следуя архитектуре микросервисов, работающей на кластерах K8s.

Мы используем log4j для распечатки сообщений журнала.Мы настроили log4j для записи логов в файл.Нам очень трудно получить доступ к этим журналам [В настоящее время мы выполняем в контейнер докера и просматриваем журналы].Я проводил некоторые исследования, и многие люди предлагали установить log4j для записи логов в стандартный поток вывода или консоль, а не в файлы.Но мы хотим, чтобы журналы сохранялись в течение более длительного периода времени [больше похоже на долгосрочное архивирование].

Итак, для этого похоже, что стандартом является EFK или ELK [опции с открытым исходным кодом].Я просто хотел понять, каковы лучшие практики / конфигурации, которым нужно следовать, чтобы иметь надежную регистрацию для приложений, использующих log4j.Развертывание и настройка EFK или ELK - хороший вариант?Если да, может кто-нибудь сообщить мне, как мне следует изменить свойства log4j для отправки журналов в стек?

1 Ответ

0 голосов
/ 29 сентября 2018

Это вопрос мнения, поэтому я отвечу самоуверенно.У нас была эта проблема.Проблема в том, что журналы log4j (или log4j2) очень болтливы, и каждый раз, когда вы получаете исключение Java, например, оно печатается во многих строках.Это в сочетании с обычными журналами стандартного вывода контейнера выглядит запутанным и было бы трудно отделить все от стандартного вывода для отправки на Fluentd или что-то вроде logspout

Youможет выделить дисковое пространство в контейнере и отправить журналы log4j2 в файл внутри контейнера.Затем вы можете сократить существующие контейнеры или обрезать свои журналы на регулярной основе.С помощью [Kubernetes] (Вы также можете прочитать о Kubernetes logging , вы можете настроить Fluentd или Filebeat sidecar для отправки ваших журналов тоже.

Но лучшим решением IMO в этом случае было бы просто отправить журналы log4j непосредственно в кластер Elasticsearch и, возможно, сохранить данные в своем собственном индексе. Это что-то , что вы могли быиспользуйте для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...