Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки

Модуль observability предоставляет механизмы разграничения доступа к логам уровня кластера и проектов.

Для хранения логов и последующего доступа к ним должны быть включены модули loki и log-shipper.

В зависимости от области видимости различаются два типа логов:

Область видимости Описание
Уровень кластера Логи, относящиеся к компонентам кластера и системным неймспейсам, имена которых соответствуют шаблону d8-* и kube-*.
Уровень проекта Логи, относящиеся к ресурсам конкретного проекта namespace. Доступ к логам ограничен рамками соответствующего проекта.

Варианты обзора данных логов:

  • Системный обзор данных — доступен администраторам DKP в веб-интерфейсе Deckhouse в разделе «Система» → «Управление системой» → меню «Мониторинг» → «Обзор данных». Необходимо выбрать источник данных default-logs. В этом разделе запросы ограниченны логами, относящимися к системным неймспейсам.

  • Проектный обзор данных — доступен пользователям проектов DKP в веб-интерфейсе Deckhouse в соответствующем проекте → меню «Мониторинг» → «Обзор данных». Необходимо выбрать источник данных default-logs. В этом разделе запросы ограничены логами, относящимися к данному проекту (в рамках неймспейса).

Сбор и доставка логов проекта

Ниже приведён вариант базовой конфигурации DKP, при котором логи подов в рамках проекта отправляются в хранилище на базе Loki.

Подробнее о системе сбора и доставки логов в DKP можно почитать в разделе «Сбор и доставка логов».

Для настройки выполните следующие шаги:

  1. Включите модули log-shipper и loki с помощью следующей команды:

    d8 system module enable log-shipper
    d8 system module enable loki
  2. Создайте ресурс PodLoggingConfig, который задаёт правила сбора логов в проекте.

    Этот ресурс позволяет настроить сбор логов подов в указанном неймспейсе и при необходимости определить дополнительные правила обработки логов перед отправкой.

    В этом примере указывается, что нужно собирать логи всех подов в проекте и отправлять их в Loki:

    apiVersion: deckhouse.io/v1alpha1
    kind: PodLoggingConfig
    metadata:
      name: namespace-logs
      namespace: project-namespace
    spec:
      clusterDestinationRefs:
        - d8-loki
  3. Создайте ресурс ClusterLogDestination, который описывает параметры отправки логов в Loki.

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

    В этом примере в качестве принимающего хранилища указан Loki:

    apiVersion: deckhouse.io/v1alpha1
    kind: ClusterLogDestination
    metadata:
      name: loki-storage
    spec:
      type: Loki
      loki:
        endpoint: http://192.168.1.1:3100