Назначение владельцев объектов

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

Вы можете назначить Команды владения для любого контролируемого объекта в Ключ-АСТРОМ, используя основной идентификатор команды или дополнительные идентификаторы (определяемые при настройке команды). Это упрощает мгновенный поиск ответственной команды и связь с ней в случае возникновения какой-либо проблемы с объектом, например, если объект затронут уязвимостью.

Владение можно применить с помощью нескольких методов, таких как метки и аннотации Kubernetes, метаданные хоста, переменные среды и теги (в том числе через API пользовательских тегов Ключ-АСТРОМ).

Поддерживаемые методы применения владения

Поддерживаются следующие методы применения типов собственности и объектов.

  • Метаданные развертывания или конфигурации рекомендуется
Метод Типы сущностей
Метки и аннотации Kubernetes Все объекты Kubernetes
Хост метаданных через oneagentctlилиhostcustomproperties.conf Хосты
Переменные среды Процессы
  • Теги (ручные, автоматические и через API) — все отслеживаемые объекты

Формат заполнения информации о владении

Независимо от используемого метода информация о владении применяется к объектам в парах ключ-значение . Ключи по умолчанию owner и dt.owner доступны в каждой среде мониторинга — см. Настройки > Владение > Настройка. Однако вы можете изменить или удалить ключи по умолчанию и определить свои собственные .

Значение всегда является уникальным идентификатором команды, указанным при создании команды. Вы также можете использовать дополнительные идентификаторы.

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

Пользовательские ключи для информации владения

Вы можете определить максимум пять ключей для применения информации владения.

  1. Перейдите в Настройки > Владение > Настроить.
  2. Нажмите на кнопку Добавить ключ.
  3. Введите ключ (Включено по умолчанию).
  4. Сохраните изменения.

229.png

При отключении или удалении ключа объекта, назначенные командам через такие ключи, больше не будут отображать или хранить метаданные о владении. Однако такие ключи будут отображаться как обычные теги, применяемые к объектам.

Дополнительные требования к ключам владения

  • Вы можете определить максимум пять и минимум один ключ.
  • Вы можете использовать любой из определенных вами ключей в качестве префикса в парах ключ-значение. Например, для ключей owner и dt.owner вы можете использовать owner-1 и dt.owner-test.

Метки и аннотации Kubernetes

Вы можете указать команды владения для различных объектов Kubernetes, таких как Deployments, Pods, Services или namespaces. Чтобы гарантировать, что объекты Kubernetes имеют адекватное покрытие владения, что особенно важно для недолговечных сущностей, таких как Pods, предоставьте информацию о владельце в виде меток или аннотаций Kubernetes с парами ключ-значение в файле спецификации развертывания, например, deployment.yaml.

Мы рекомендуем определить владельца для Deployment и всех других объектов, для которых вы хотите охват владения. См. также Лучшие команды для владения.

  • Установка идентификатора команды в качестве метки или аннотации для Deployment, CronJob, Job, DaemonSet или StatefulSet предоставляет информацию о владении командой для соответствующих объектов CLOUD_APPLICATION. Обратите внимание, что это владение не распространяется на CLOUD_APPLICATION_INSTANCE. В этом примере двойное владение устанавливается через две метки для Deployment. Каждая метка имеет уникальный ключ. Уникальные ключи являются обязательным требованием в метках и аннотациях Kubernetes.
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: demo
      labels:
        dt.owner-1: my-team-1 # Dual team ownership defined for the Deployment
        dt.owner-2: my-team-2
    spec:

    В примере кода ниже показана аннотация для владения на уровне развертывания.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: demo
      annotations:
        dt.owner: my-team # Ownership defined for the Deployment
  • Установите метки для Pod, чтобы указать владельца для соответствующего объекта CLOUD_APPLICATION_INSTANCE. Укажите владельца для каждого Pod.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: demo
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: demo
      template:
        metadata:
          labels:
            app: demo
            dt.owner: my-team # Ownership defined for the Pod
        spec:

    В примере кода ниже показан манифест для Pod, имеющего аннотацию dt.owner: myTeam.

    apiVersion: v1
    kind: Pod
    metadata:
      name: annotations-demo
      annotations:
        imageregistry: "https://hub.docker.com/"
        dt.owner: my-team
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
  • Для процесса укажите владельца, используя пары ключ-значение с переменной среды DT_CUSTOM_PROP , которая определена для контейнера. В переменных окружения можно указать несколько значений для одного и того же ключа. В этом примере двойное владение определяется с помощью ключа owner.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: demo
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: demo
      template:
        spec:
          containers:
            - name: demo
              image: demo:1.0.0
              env:
                - name: DT_CUSTOM_PROP ## Environment variable
                  value: "owner=team-automation owner=team-dev" # Dual ownership for the process; team IDs are team-automation and team-dev.
  • Метки Kubernetes для сервиса

    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
      labels:
        dt.owner: team-a # Ownership defined for the Service
    spec:
      selector:
      app.kubernetes.io/name: MyApp
    ports:
      - protocol: TCP
        port: 80
        targetPort: 9376
  • Метки Kubernetes для namespace

    apiVersion: v1
    kind: Namespace
    metadata:
      name: my-namespace
      labels:
        dt.owner: team-a # Ownership defined for the namespace

Метаданные хоста

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

Узнайте больше об определении тегов и метаданных для хостов и интерфейсе командной строки ЕдиногоАгента oneagentctl .

Вы также можете назначать владение хостам с помощью тегов .

С помощью oneagentctl

ЕдиныйАгент версии 1.189+ Для хостов с ЕдинымАгентом версии 1.189+ используйте oneagenctl интерфейс командной строки после установки, чтобы задать свойство метаданных для отдельного хоста. Запустите oneagentctl с правами администратора или root из этих расположений по умолчанию.

  • Windows: %PROGRAMFILES%\astromkey\oneagent\agent\tools
  • Все Unix-подобные системы: /opt/astromkey/oneagent/agent/tools

В этом примере для Unix-подобных систем используется --set-host-property установка владения с помощью пары ключ-значение owner-1=team-automation , где team-automation— основной идентификатор команды или дополнительный идентификатор.

./oneagentctl --set-host-property owner-1=team-automation

С помощью hostcustomproperties.conf

ЕдиныйАгент версии 1.187 и более ранних Для хостов на ЕдиномАгенте 1.187 и более ранних версиях создайте или отредактируйте файл hostcustomproperties.conf конфигурации ЕдиногоАгента в следующих местах.

  • Windows: %PROGRAMDATA%\astromkey\oneagent\agent\config
  • се Unix-подобные системы: /var/lib/astromkey/oneagent/agent/config

В этом примере для Unix-подобных систем устанавливается влияние на хост с помощью пары ключ-значение dt.owner-1=team-automation , где team-automation— основной идентификатор команды или дополнительный идентификатор.

cat hostcustomproperties.conf dt.owner-1=team-automation

Переменные среды процесса

Для процессов мы рекомендуем указывать владение в парах ключ-значение через переменную среды DT_CUSTOM_PROP.

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

Узнайте больше об определении тегов и метаданных для хостов, например, о настройке переменной среды DT_CUSTOM_PROP для IIS и Windows .

export DT_CUSTOM_PROP dt.owner=DemoTeam

См. Формат заполнения информации о владении (выше) ко всем существующим параметрам «ключ-значение» или для создания собственного.