Как проксировать уровень журнала приложения, не используя тот, который был передан с помощью 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 с пользовательской конфигурацией внутри него и анализировать журнал вашего приложения с любыми изменениями, включая использование переменных среды в качестве уровня журнала.