WedX - журнал о программировании и компьютерных науках

Мониторинг модулей в пространстве имен без создания нового пространства имен

В моей компании есть кластер, за которым уже следит агент datadog. Но моей команде нужен мониторинг только для нас. Я уже просмотрел fluentd, prometheus и т. д., но не нашел возможности использовать инструмент, который мне не нужно устанавливать в моем пространстве имен.

Кто-нибудь знает вариант, когда я могу собирать журналы своих модулей только в своем пространстве имен? Например, создать модуль для графаны и еще один для сбора логов и отправки в графану или что-то в этом роде?


  • Итак, вы хотите собирать метрики или журналы? Также: "but I cound't find an option for use a tool that I don't need to install in my namespace" - значит ли это, что вы не хотите ничего развертывать в своем пространстве имен? Как это должно работать? Кроме того, возможно, вам нужен loki. 13.11.2020
  • Я хочу собрать логи. Я имею в виду, что я хочу развернуть его в своем пространстве имен только для сбора журналов. Это должно работать так: мне нужно развернуть что-то в моем пространстве имен для сбора журналов моих модулей. 17.11.2020

Ответы:


1

Вы можете использовать Fluentd как daemonset в своем кластере.

см. этот репозиторий и образы докеров -› fluent/fluentd-docker-image

и используйте этот фильтр, чтобы добавить метаданные Kubernetes в каждый журнал, собранный Fluentd, а затем используйте фильтр grep, чтобы исключить журналы, которые не находятся в ваших пространствах имен.

что-то вроде этого:

# Collect pod logs
<source>
  @type tail
  @id in_tail_container_logs
  path /var/log/containers/*.log
  pos_file /var/log/fluentd-containers.log.pos
  tag kubernetes.*
  exclude_path ["/var/log/containers/*fluent*.log"]
  read_from_head true
  <parse>
    @type json
    time_key time
    time_format %Y-%m-%dT%H:%M:%S.%NZ
  </parse>
</source>

# add Kubernetes metadata
<filter kubernetes.**>
  @type kubernetes_metadata
  @id filter_kube_metadata
  kubernetes_url 'https://' + ENV.fetch('KUBERNETES_SERVICE_HOST') + ':' + ENV.fetch('KUBERNETES_SERVICE_PORT') + '/api'
  verify_ssl true
</filter>

# filter and exclude logs that are not in the namespaces `ns1` and `ns2`
<filter kubernetes.**>
  @type grep
  <exclude>
    key $.kubernetes.namespace_
    pattern /^(?!(ns1|ns2))/
  </exclude>
</filter>
15.11.2020
  • Но возможно ли развернуть его только в моем пространстве имен, ничего не используя в моем кластере? У меня нет доступа к кластеру и информации, которую можно добавить в метаданные Kubernetes. Или я могу получить эту информацию только в своем пространстве имен? 17.11.2020
  • По сути, с помощью этого решения вам необходимо иметь доступ к пути хоста /var/log для чтения файлов журнала и возможности вызывать API-интерфейсы Kubernetes. Вы можете настроить Fluentd так, чтобы он принимал журналы от HTTP-вызовов и отправлял ему все журналы с помощью HTTP-вызова, что, я думаю, вам не подходит, поскольку вы используете много сетей. 18.11.2020
  • Кроме того, не могли бы вы проверить, можете ли вы использовать Fluentd в качестве вспомогательного регистратора рядом с вашими модулями? 18.11.2020
  • Что ж, если бы я мог использовать его в качестве коляски рядом с моими модулями только в моем пространстве имен, было бы здорово. Потому что, как я уже говорил, у меня нет доступа к API Kubernetes. 18.11.2020
  • Новые материалы

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

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

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


    Для любых предложений по сайту: [email protected]