Доступно в редакциях:  CE, BE, SE, SE+, EE

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

Как явно включить или отключить модуль…

Явно включить или выключить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse. В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль observability, включите (или выключите) переключатель «Модуль включен». Сохраните изменения.

    Пример:

    Интерфейс включения и выключения модуля
  • С помощью Deckhouse CLI (d8).

    Используйте команду d8 system module enable для включения модуля, или d8 system module disable для выключения модуля (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Пример включения модуля observability:

    d8 system module enable observability
  • С помощью ModuleConfig observability.

    Установите spec.enabled в true или false в ModuleConfig observability (создайте его, при необходимости).

    Пример манифеста для включения модуля observability:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: observability
    spec:
      enabled: true

Как настроить модуль…

Настроить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse.

    В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль observability, включите переключатель «Дополнительные настройки». Заполните необходимые поля формы на вкладке «Конфигурация», или укажите настройки модуля в формате YAML на вкладке «YAML», не включая секцию settings. Сохраните изменения.

    Пример:

    Интерфейс настройки модуля

    Вы также можете отредактировать объект ModuleConfig observability на вкладке «YAML» в окне настроек модуля («Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль observability), указав версию схемы в параметре spec.version и необходимые параметры модуля в секции spec.settings.

  • С помощью Deckhouse CLI (d8) (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Отредактируйте существующий ModuleConfig observability (подробнее о настройке Deckhouse читайте в документации), выполнив следующую команду:

    d8 k edit mc observability

    Внесите необходимые изменения в секцию spec.settings. При необходимости укажите версию схемы в параметре spec.version. Сохраните изменения.

    Вы также можете создать файл манифеста ModuleConfig observability, используя пример ниже. Заполните секцию spec.settings необходимыми параметрами модуля. При необходимости укажите версию схемы в параметре spec.version.

    Примените манифест с помощью следующей команды (укажите имя файла манифеста):

    d8 k apply -f <FILENAME>

    Пример файла манифеста ModuleConfig observability:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: observability
    spec:
      version: 1
      enabled: true
      settings: # Параметры модуля из раздела "Параметры" ниже.

Как сменить канал обновлений модуля…

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

Требования

К версии Deckhouse: 1.71 и выше.

К версиям других модулей:

  • console: 1.41.1 и выше.
  • operator-prometheus: любая версия.
  • prometheus: любая версия.

Параметры

Версия схемы: 1

  • settings
    объект
    • settings.deadMansSwitch
      объект
      Настройки алерта DeadMansSwitch.

      По умолчанию: {}

      • settings.deadMansSwitch.enabled
        булевый

        Включить обработку алерта DeadMansSwitch.

        Если включено (по умолчанию), ожидается heartbeat-алерт DeadMansSwitch от Prometheus, и при его отсутствии генерируется алерт PrometheusUnavailable. Если выключено, ни DeadMansSwitch, ни PrometheusUnavailable не создаются.

        По умолчанию: true

    • settings.dop
      объект
      Настройки интеграции с DOP (Deckhouse Observability Platform).

      По умолчанию: {}

      • settings.dop.destinations
        массив объектов
        Список назначений DOP для доставки метрик. Необходимо указать хотя бы одно назначение.

        Пример:


        destinations:
        - host: dop.flant.com
          token: your-api-token-here
        
        • settings.dop.destinations.host
          строка
          Адрес хоста платформы DOP (должен быть валидным FQDN, например, dop.flant.com).

          Длина: 1..253

          Шаблон: ^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$

        • settings.dop.destinations.token
          строка
          API-токен для платформы DOP (формат UUID).

          Шаблон: ^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$

      • settings.dop.hostMetrics
        булевый
        Включить сбор метрик узлов с помощью okagent.

        По умолчанию: true

      • settings.dop.nodeAffinity
        объект

        Настройки node affinity для okagent.

        Позволяет ограничить набор узлов, на которых может быть запланирован pod.

        По умолчанию: {}

        • settings.dop.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
          объект
          Если требования affinity, указанные в этом поле, не выполняются во время планирования, pod не будет запланирован на узел.
          • settings.dop.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
            массив объектов
            Список условий выбора узлов. Условия объединяются по ИЛИ (OR).
            • settings.dop.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
              массив объектов
              Список требований к узлу по меткам узла. Требования объединяются по И (AND).
              • settings.dop.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key
                строка
                Ключ метки, к которому применяется селектор.
              • settings.dop.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
                строка
                Представляет отношение ключа к набору значений. Допустимые операторы: In, NotIn, Exists, DoesNotExist, Gt, Lt.

                Допустимые значения: In, NotIn, Exists, DoesNotExist, Gt, Lt

              • settings.dop.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
                массив строк
                Массив строковых значений для оценки оператором. Если оператор — In или NotIn, массив значений не должен быть пустым. Если оператор — Exists или DoesNotExist, массив значений должен быть пустым. Если оператор — Gt или Lt, массив значений должен содержать одно значение, которое будет интерпретироваться как целое число.
            • settings.dop.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
              массив объектов
              Список требований к узлу по полям узла. Требования объединяются по И (AND).
              • settings.dop.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key
                строка
                Ключ поля узла, к которому применяется селектор.
              • settings.dop.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
                строка
                Представляет отношение ключа к набору значений. Допустимые операторы: In, NotIn, Exists, DoesNotExist, Gt, Lt.

                Допустимые значения: In, NotIn, Exists, DoesNotExist, Gt, Lt

              • settings.dop.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
                массив строк
                Массив строковых значений для оценки оператором.
    • settings.externalMetricsAccess
      объект
      Настройки доступа к метрикам извне кластера.

      По умолчанию: {}

      • settings.externalMetricsAccess.enabled
        булевый

        Разрешить доступ к метрикам извне кластера.

        Если параметр включен, модуль observability будет предоставлять метрики через Ingress для чтения. Метрики можно читать с помощью Prometheus-совместимого API. Обязательно предоставление действительного токена ServiceAccount через заголовок Authorization: Bearer. Подробнее см. в документации.

        По умолчанию: false

      • settings.externalMetricsAccess.whitelistSourceRanges
        массив строк
        Список адресов в формате CIDR, которым разрешено проходить аутентификацию. Если параметр не указан, аутентификацию разрешено проходить без ограничения по IP-адресу.

        По умолчанию: []

        Пример:


        whitelistSourceRanges:
        - 1.1.1.1/32
        
    • settings.grafana
      объект
      Настройки для Grafana.

      По умолчанию: {}

      • settings.grafana.customPlugins
        массив строк

        Список дополнительных plug-in’ов для Grafana.

        Необходимо указать в качестве значения список имен плагинов из официального репозитория.

        Пример добавления plug-in’ов для возможности указания clickhouse в качестве datasource и панели flow-chart:

        grafana:
          customPlugins:
          - agenty-flowcharting-panel
          - vertamedia-clickhouse-datasource

        Вы также можете устанавливать плагины из других источников передав ссылку на zip-архив плагина в формате <url to plugin zip>;<plugin name>:

        grafana:
          customPlugins:
          - http://10.241.32.16:3000/netsage-bumpchart-panel-1.1.1.zip;netsage-bumpchart-panel

        Пример:


        customPlugins:
        - agenty-flowcharting-panel
        - vertamedia-clickhouse-datasource
        
    • settings.https
      объект

      Тип сертификата, используемого для модуля observability.

      При использовании этого параметра полностью переопределяются глобальные настройки global.modules.https.

      Примеры:


      customCertificate:
        secretName: foobar
      mode: CustomCertificate
      
      certManager:
        clusterIssuerName: letsencrypt
      mode: CertManager
      
      • settings.https.certManager
        объект
        • settings.https.certManager.clusterIssuerName
          строка

          ClusterIssuer, используемый для модуля observability.

          Доступны letsencrypt, letsencrypt-staging, selfsigned, но вы можете определить свои.

          По умолчанию: letsencrypt

      • settings.https.customCertificate
        объект

        По умолчанию: {}

        • settings.https.customCertificate.secretName
          строка

          Имя Secret’а в пространстве имен d8-system, который будет использоваться для модуля observability.

          Secret должен быть в формате TLS.

          По умолчанию: false

      • settings.https.mode
        строка

        Режим работы HTTPS:

        • Disabled — Модуль observability будет работать только по HTTP;
        • CertManager — Модуль observability будет работать по HTTPS и заказывать сертификат с помощью ClusterIssuer, заданного в параметре certManager.clusterIssuerName;
        • CustomCertificate — Модуль observability будет работать по HTTPS, используя сертификат из namespace d8-system;
        • OnlyInURI — Модуль observability будет работать по HTTP (подразумевая, что перед ними стоит внешний балансировщик, который терминирует HTTPS) и все ссылки в user-authn будут генерироваться с HTTPS-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.

        По умолчанию: Disabled

        Допустимые значения: Disabled, CertManager, CustomCertificate, OnlyInURI

    • settings.ingressClass
      строка

      The ingress class to use for all ingress resources created by the observability module.

      This parameter completely overrides the global.modules.ingressClass settings. If not specified, the global ingress class configuration will be used.

      The value must be a valid Kubernetes resource name (lowercase alphanumeric characters or hyphens, must start and end with alphanumeric character).

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

      Примеры:


      ingressClass: nginx
      
      ingressClass: nginx-external