Как проксировать уровень журнала приложения, не используя тот, который был передан с помощью fluentd?

Итак, у меня установлена ​​следующая архитектура Openshift/Origin, следуя официальной документации Openshift/Origin. Мы также хотим использовать настройку агрегированного ведения журнала, которая поставляется из коробки, поэтому она была установлена ​​с использованием строго документации агрегированного ведения журнала Openshift.

Пока отзывы были отличными, но у меня есть еще одна проблема, для которой мне понадобится помощь. Разработчики хотят сами указать уровень журнала, который будет перенаправлен в Elasticsearch. Текущий уровень журнала устанавливается только через FluentD.

Есть ли способ установить уровень журнала с помощью переменной Deployment и заставить его передать Fluentd без изменений в Elasticsearch?

Цель состоит в том, чтобы предоставить людям возможность самостоятельно устанавливать уровень журнала, который будет перенаправлен в Elasticsearch.

1 ответ

Боюсь, что нет способа сделать это стандартными инструментами без добавления пользовательского FluentD.

Прежде всего, ваш FluentD в кластере читает журналы контейнеров, предоставляемые Docker через драйвер ведения журнала json-файла:

По умолчанию Fluentd читает из /var/log/messages и /var/log/containers/.log системные журналы и журналы контейнеров соответственно.

Даже используя журналирование SystemD, вы получите тот же результат - уровень протоколирования устанавливается Docker. Kubernetes также использует этот драйвер.

Для драйвера json-файла Docker вы можете установить log-tags, который, теоретически, может помочь вам отфильтровать журналы. Но невозможно установить эти параметры для контейнера во время выполнения по Kubernetes, так что теперь есть способ.

Единственный способ увидеть, как вы можете это сделать, - использовать контейнер с коляской с настраиваемым агентом регистрации. Это будет выглядеть так:

коляской агент

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

Другие вопросы по тегам