Настройка мониторинга пространства имен и модулей

Материал из Документация Ключ-АСТРОМ

cloudNativeFullStack

applicationMonitoring

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

По умолчанию Ключ-АСТРОМ Operator внедряет ЕдиныйАгент во все пространства имен, за исключением:
  • Пространства имен с префиксом kube- или openshift-.
  • Пространство имен, в котором был установлен Ключ-АСТРОМ Operator.

Мониторинг определенных пространств имен

Чтобы настроить Ключ-АСТРОМ Operator для внедрения ЕддиногоАгента только в определенные пространства имен или применения обогащения метаданных, задайте параметр namespaceSelector в пользовательском ресурсе AstroKube.

Для получения дополнительной информации см. Параметры AstroKube для Ключ-АСТРОМ Operator (поля .spec.metadataEnrichment, .spec.oneAgent.cloudNativeFullStack и .spec.oneAgent.applicationMonitoring).

  1. Обозначьте свои пространства имен.
    1. Kubernetes - kubectl label namespace <my_namespace> astromkey.com/inject=true
    2. OpenShift - oc label namespace <my_namespace> astromkey.com/inject=true
  2. Измените AstroKube, добавив namespaceSelector, чтобы указать метку для мониторинга.
...

namespaceSelector:

  matchLabels:

    astromkey.com/inject: "true"

Более подробную информацию о настройке меток для выборочного мониторинга см. в разделе Метки и селекторы.

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

Исключение определенных пространств имен

Чтобы исключить определенные пространства имен из мониторинга, измените пользовательский ресурс AstroKube следующим образом.

  • key определяет ключ метки. Начиная с Kubernetes версии 1.22, к пространствам имен kubernetes.io/metadata.name добавляется метка по умолчанию .
  • values определяет значение метки.
...

namespaceSelector:

  matchExpressions:

  - key: LabelKey

    operator: NotIn

    values:

    - LabelValue

Пример с меткой Kubernetes по умолчанию

Если вы запустите kubectl describe namespace astromkey, вы увидите:

metadata:

  name: astromkey

  labels:

    kubernetes.io/metadata.name=astromkey

Допустимым примером селектора для исключения astromkey будет:

...

namespaceSelector:

  matchExpressions:

  - key: kubernetes.io/metadata.name

    operator: NotIn

    values:

    - astromkey

Веб-перехватчик внедрит каждое пространство имен, которое соответствует всем namespaceselector.

Более подробную информацию см. в разделе Ресурсы, поддерживающие требования на основе наборов.

Исключить определенные модули в отслеживаемых пространствах имен

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

...

metadata:

  annotations:

    ...

    oneagent.astromkey.com/inject: "false"


В число доступных аннотаций для детального управления входят:

  • astromkey.com/inject: Отключает все внедрения, если установлено значение false.
  • metadata-enrichment.astromkey.com/inject: Предотвращает добавление файла обогащения метрики, когда false.
  • oneagent.astromkey.com/inject: Отключает модификации ЕдиногоАгента, если установлено значение false.

Исключить определенные контейнеры из контролируемых контейнеров

Ключ-АСТРОМ Operator версии 1.0.0+

Чтобы исключить определенные образы контейнеров в отслеживаемых пространствах имен, соответствующим образом аннотируйте модули или AstroKube (это может быть полезно, например, для исключения контейнеров side car).

...

metadata:

  annotations:

    ...

    container.inject.astromkey.com/<container-name>: "false"

Эту аннотацию можно применять на уровне AstroKube (влияя на все модули) или на уровне отдельного модуля (влияя только на указанный модуль).

Мониторинг только определенных модулей

Ключ-АСТРОМ Operator версии 0.8.0+

Ключ-АСТРОМ Operator можно настроить на мониторинг пространств имен без внедрения в какие-либо модули, поэтому вы можете выбирать, какие модули следует отслеживать.

1. Отключите функцию автоматического внедрения для развертывания AstroKube в вашем кластере.

apiVersion: astromkey.com/v1beta2

kind: DynaKube

metadata:

  name: dynakube

  namespace: astromkey

  annotations:

    feature.astromkey.com/automatic-injection: "false"

spec:

  oneAgent:

    cloudNativeFullStack:

      namespaceSelector:

        matchLabels:

          astromkey.com/inject: "true"

...

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

kubectl label namespace <my_namespace> astromkey.com/inject=true

3. Отметьте модули, которые вы собираетесь отслеживать.

...

metadata:

  annotations:

    ...

    oneagent.astromkey.com/inject: "true"