Как собирать логи из Java-приложения (k8s) в fluentd (k8s) - PullRequest
0 голосов
/ 09 октября 2019

У меня есть Java-приложение в k8s и fluentd (daemonset). В свободном conf:

 *`<source>
     @type forward
     port 24224
  </source>
  <match **>
  @type stdout
  </match>`*

Я немного запутался. Нужно ли использовать fluentd-logger-java lib? Я прочитал в документах, что мне нужно добавить remotehost для fluentd, но здесь я не использую сервис в целом. Как приложение будет отправлять логи на мобильные модули?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 09 октября 2019

Учитывая, что ваше Java-приложение может регистрировать в stdout и stderr, вы будете использовать fluentd для чтения этого журнала и, в большинстве случаев, отправлять эти журналы в систему, которая может агрегировать журналы.

На этом рисунке из официальных документов показана общая схема настройки ведения журнала на уровне узлов в Kubernetes с использованием, например, fluentd as Pod, развернутого с помощью DaemonSet:

enter image description here

На приведенном выше рисунке logging-agent будет плавным, а my-pod будет вашим модулем с контейнером, на котором выполняется ваше приложение Java. Logging Backend, с точки зрения быстрой конфигурации, является необязательным, но, конечно, настоятельно рекомендуется. По сути, вы можете выбрать вывод своих журналов через fluentd stdout.

. Для правильной работы fluentd потребуется доступ для чтения к журналам контейнера, это достигается путем установки каталога журнала, например, /var/lib/docker/containers в fluentd. container.

Мы успешно использовали этот беглый пример ConfigMap с некоторыми изменениями для чтения журналов с узлов и отправки их в Elasticsearch. Посмотрите containers.input.conf часть этого ConfigMap для получения дополнительной информации о журналах контейнеров и о том, как их переварить.

Обратите внимание, что вам не нужно использовать библиотеку fluentd-logger-java, чтобы начать использовать fluentd, хотя вы могли быиспользуйте его как другой тип регистратора в вашем приложении Java. Из коробки вы должны позволить Java записывать все в stdout и stderr и читать журналы с помощью fluentd.

0 голосов
/ 09 октября 2019

Если вас интересуют только живые журналы, вы можете попробовать продукт, основанный на беглом, эластичном поиске и кибане;Вы можете получить его https://logdna.com.

Просто добавьте тег и разверните набор демонов.

Вы можете попробовать его бесплатно в течение нескольких дней

...