Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Обнаружение группы процессов

Материал из Документация АппОптима

Применение АппОптима / Группы процессов / Конфигурация / Обнаружение группы процессов

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

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

  • Раздел « Настройки » > « Процессы и контейнеры » > « Обнаружение группы процессов» , который имеет следующие страницы:
    • На странице Встроенные правила обнаружения вы можете включить или отключить переключатели обнаружения определенных групп процессов. Наведите указатель мыши на значок информации справа от каждого переключателя, чтобы узнать подробности.
    • На страницах Простые правила обнаружения и Расширенные правила обнаружения вы можете добавить свои собственные правила обнаружения групп процессов, которые переопределяют правила по умолчанию.
    • На странице « Декларативное группирование процессов» вы можете отслеживать определенные процессы технологии, неизвестной АппОптима.
  • Настройки > Процессы и контейнеры > Контейнеры > Обнаружение облачных приложений и рабочих нагрузок , где вы можете определить правила для объединения похожих рабочих нагрузок Kubernetes в группы процессов.
  • Параметры и правила обнаружения групп процессов требуют перезапуска ваших процессов, чтобы повлиять на то, как процессы идентифицируются и группируются.
  • Параметры и правила обнаружения групп процессов влияют только на состав групп процессов. Если вы хотите изменить способ именования группы процессов, вы должны вместо этого использовать правила именования групп процессов .
  • Также можно использовать группы хостов для разделения кластеров на разные группы процессов.

Простые правила обнаружения

Простые правила обнаружения групп процессов позволяют адаптировать логику обнаружения групп процессов по умолчанию для глубоко отслеживаемых процессов с помощью системных свойств Java или переменных среды . Вы можете создать простое правило обнаружения с помощью веб-интерфейса АппОптима или API настроек — простое правило обнаружения см. в разделе Пример полезной нагрузки JSON .

Простые правила обнаружения групп процессов эффективны только в том случае, если ЕдиныйАгент установлен на ваших хостах или образах для процессов, которые можно тщательно отслеживать.

Примечание. Эта функция может разделить группу процессов только на несколько частей. Используйте его, если у вас есть разные развертывания в одной и той же группе процессов.

Чтобы создать простое правило обнаружения в веб-интерфейсе АппОптима

  1. В меню АппОптима перейдите в « Настройки » .
  2. Выберите Процессы и контейнеры > Простые правила обнаружения .
  3. Выберите Добавить элемент .
  4. В качестве источника свойства укажите системное свойство Java или переменную среды .
  5. Установите Идентификатор группы на значение, которое АппОптима будет использовать для идентификации групп процессов.
  6. по желаниюУстановите идентификатор экземпляра на значение, которое АппОптима будет использовать для идентификации конкретных узлов кластера в группе процессов. Примечание. Этот параметр полезен, если в настройке группы процессов есть определенные имена для каждого узла. Если вы не уверены, оставьте поле пустым. Значение по умолчанию — один узел на хост.
  7. по желаниюЗадайте для параметра Ограничить это правило определенными типами процессов тип процесса, к которому вы хотите применить правило.
  8. Выберите Сохранить изменения .

Системные свойства Java

С помощью этой опции вы можете создавать более мелкие группы процессов Java. Системное свойство Java должно быть частью командной строки Java, чтобы ЕдиныйАгент мог его обнаружить. Это может быть либо существующее системное свойство, которое уже используется вашим приложением (например, три разных jetty.homeзначения для трех разных кластеров Solr), либо вы можете добавить новое системное свойство. Пока системное свойство доступно в командной строке, АппОптима может его использовать.

Переменные среды

Этот параметр охватывает процессы как Java, так и не-Java, такие как NGINX, HTTP-сервер Apache, FPM/PHP, Node.js, IIS и .NET.

Переменные среды, которые вы выбираете в качестве идентификаторов группы процессов, должны существовать в пределах обнаруженных процессов. Идентификаторы также служат именами по умолчанию для обнаруженных групп процессов. Дополнительные сведения о том, как определить переменную среды для IIS или служб Windows, см. в разделе Определение собственных метаданных группы процессов .

Пример:

Предположим, у вас есть два почти идентичных развертывания HTTP-сервера Apache, которые находятся в одном каталоге развертывания, но на разных хостах. По умолчанию АппОптима не может различить два развертывания, поскольку у них нет уникальных характеристик, которые можно было бы использовать для идентификации. Теперь рассмотрим следующее правило: Apache process identified by environment variable MY_PG_NAME.

Любой HTTP-процесс Apache, который включает в себя переменную среды MY_PG_NAME, будет использовать содержимое «MY_PG_NAME» как в качестве идентификатора, так и в качестве имени по умолчанию. В этом сценарии АппОптима может отдельно идентифицировать и называть каждое развертывание, назначив переменную среды MY_PG_NAME=АппОптима.com-productionодному развертыванию и MY_PG_NAME=АппОптима.com-stagingдругому развертыванию.

Расширенные правила обнаружения

Расширенные правила обнаружения групп процессов позволяют создавать группу процессов путем объединения процессов из разных групп и позволяют адаптировать логику обнаружения для глубоко отслеживаемых процессов, используя свойства, автоматически определяемые ЕдиныйАгент во время запуска процесса. Вы можете создать расширенное правило обнаружения с помощью веб-интерфейса АппОптима или API настроек — см. Пример полезной нагрузки JSON для расширенного правила обнаружения .

Расширенные правила обнаружения групп процессов эффективны только в том случае, если ЕдиныйАгент установлен на ваших хостах или образах для процессов, которые можно тщательно отслеживать.

Чтобы создать расширенное правило обнаружения в веб-интерфейсе АппОптима

  1. В меню АппОптима перейдите в « Настройки » .
  2. Выберите Процессы и контейнеры > Расширенные правила обнаружения .
  3. Выберите Добавить элемент .
  4. В разделе Обнаружение группы процессов укажите, к каким процессам должно применяться это правило. Например, в JAR-файл Java, содержащий файлы ws-server.jar.
  5. В разделе Извлечение группы процессов выберите значение свойства, которое следует использовать при обнаружении группы процессов.
  6. Выберите, хотите ли вы, чтобы это правило было отдельным правилом . Примечание. Этот параметр не рекомендуется использовать в контейнерных средах, поскольку обо всем должно позаботиться стандартное обнаружение. Дополнительные сведения см. в разделе Автономные правила .
  7. В разделе Извлечение экземпляра процесса выберите, следует ли использовать определенные свойства для извлечения отдельных экземпляров процесса (узлов).
  8. Выберите Сохранить изменения .

Отдельные правила

Когда включать эту опцию

Предположим, у вас есть группа процессов с несколькими процессами. Каждый процесс одновременно выполняет одну и ту же функцию для разных клиентов, одновременно использующих ваше приложение. Хотя каждый экземпляр процесса имеет одно и то же имя, каждый экземпляр использует уникальную пользовательскую конфигурацию, о которой у АппОптима нет никакой информации. Поэтому АппОптима объединяет все связанные процессы в единую группу процессов, чтобы облегчить мониторинг.

В случаях, когда такая группировка неадекватна, у вас есть возможность определить правила обнаружения групп процессов, учитывающие специфические для клиента детали. Такие детали можно извлечь из вашей уникальной схемы развертывания. Если у вас есть структура каталогов, включающая идентификатор клиента (например, /opt/MyCustomerBasedApp/<CustomerId>/Service/MyService), и структура каталогов одинакова на всех ваших хостах, вы можете создать правило обнаружения группы процессов для конкретного клиента, которое работает для всех экземпляров процессов.

Пример:

Вы можете создать правило, которое будет применяться к процессам, пути к исполняемым файлам которых содержат фразу MyCustomerBasedApp. Для процессов, которые соответствуют этому требованию, строка между /MyCustomerBasedApp/и /Serviceвнутри пути к исполняемому файлу извлекается и используется для уникальной идентификации каждого экземпляра процесса.

Когда отключать эту опцию

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

У вас есть возможность определить второе свойство, которое идентифицирует конкретные экземпляры процесса (или узлы кластера) в группе процессов. Это полезно, если в настройке группы процессов есть определенные имена для каждого экземпляра. Если вы не уверены, оставьте поле пустым. Значение по умолчанию — один узел на хост.

Пример:

  • Если ни один из вышеперечисленных вариантов обнаружения группы процессов не работает, вы можете использовать переменную среды DT_CLUSTER_ID , чтобы сгруппировать все процессы, которые имеют одинаковое значение для этой переменной. Все процессы, найденные в среде мониторинга, которые имеют один и тот же идентификатор кластера, рассматриваются как члены одной и той же группы процессов и разделяются только хостами, на которых они работают (например, кластеры веб-серверов Apache, которые принадлежат друг другу и размещают один и тот же сайт). ). Убедитесь, что вы устанавливаете переменную DT_CLUSTER_ID только для каждого процесса, а не для всей системы! Если вы установите эту переменную для всей системы, все процессы могут быть сгруппированы в одну группу процессов для мониторинга. Это нежелательно и не поддерживается.
  • Чтобы идентифицировать узлы в кластере процессов, работающие на одном хосте, используйте переменную среды DT_NODE_ID . Это сообщает АппОптима, какие процессы следует рассматривать как отдельные экземпляры группы процессов.

Декларативная группировка процессов

ЕдиныйАгент версии 1.217+

В больших динамических средах количество процессов, запущенных на ваших хостах, может стать огромным. По этой причине АппОптима автоматически отслеживает важные типы групп процессов — группы процессов, использующие известную технологию или потребляющие значительные ресурсы.

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

Декларативное группирование работает только для процессов, которые не отслеживаются глубоко.

Чтобы создать такую ​​группу процессов, используйте функцию декларативной группировки процессов, которая позволяет добавлять подробные правила для соответствия любой конкретной группе процессов. Декларативное группирование процессов основано на платформе Settings 2.0, поэтому вы можете создавать правила с помощью веб-интерфейса АппОптима или API настроек — см. Пример полезной нагрузки JSON для конфигурации декларативной группы процессов .

Чтобы создать группу процессов с помощью веб-интерфейса АппОптима

  1. В меню АппОптима перейдите в « Настройки » .
  2. Выберите Процессы и контейнеры > Декларативное группирование процессов .
  3. Выберите Добавить отслеживаемую технологию . Технология представляет собой логический контейнер для группировки правил обнаружения. Она будет видна как основная технология группы процессов.
  4. Выберите Добавить группу процессов . Группа процессов может включать несколько отдельных правил обнаружения. Группа процессов идентифицируется, если совпадают все отдельные правила обнаружения.
  5. Введите идентификатор группы процессов . Идентификатор группы процессов — это уникальная строка, позволяющая АппОптима идентифицировать группу процессов.
  6. В разделе Отображаемое имя группы процессов выберите имя группы процессов.
  7. Выберите Добавить правило обнаружения .
  8. Выберите объект, для которого будет проверено ваше правило обнаружения: Аргумент командной строки , Имя исполняемого файла или Путь к исполняемому файлу . Примечание. Если вы добавите более одного правила обнаружения, процесс идентифицируется, если все правила обнаружения совпадают (соотношение И).
  9. Введите условие . Примечание: В зависимости от того, что вы хотите, чтобы ваше правило соответствовало, вы можете определить строку, которая:
    • Начинается с – используйте $prefixквалификатор, например$prefix(/usr/sbin/keepalived)
    • Заканчивается на – используйте $suffixквалификатор, например$suffix(keepalived)
    • Равно — используйте $eqквалификатор, например$eq(-d)
    • Содержит — используйте $containsквалификатор, например$contains(keepalived)
  10. Когда вы закончите определение всех правил, выберите Сохранить изменения .

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

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

Для управления декларативными группами процессов

  1. В АппОптима перейдите к декларативной группировке процессов для уровня, который вы настраиваете. Уровень хоста Уровень хост-группы Уровень окружающей среды
  2. Определенные вами декларативные группы процессов отображаются в таблице под кнопкой Добавить отслеживаемую технологию .
    • Чтобы прекратить мониторинг указанной группы процессов, отключите Enabled .
    • Чтобы удалить группу процессов из таблицы, выберите в столбце Удалить .
    • Чтобы просмотреть и изменить сведения о группе процессов, выберите в столбце « Сведения ».

Простая настройка с помощью API настроек

Используя API настроек , вы можете легко

  • Измените определение ваших групп процессов
  • Настройте простое или расширенное правило обнаружения
  • Настройка декларативного обнаружения группы процессов

Использование API настроек

  1. Создайте токен API и включите разрешение Запись настроек ( settings.write).
  2. Используйте конечную точку « Получить схему », чтобы узнать формат JSON, необходимый для публикации вашей конфигурации. Пример полезной нагрузки JSON для простого правила обнаружения Пример полезной нагрузки JSON для расширенного правила обнаружения Пример полезной нагрузки JSON для декларативной конфигурации группы процессов
  3. Используйте конечную точку публикации объекта для отправки конфигурации.

Добавьте свою конфигурацию в Extensions 2.0

Вы также можете прикрепить текущую конфигурацию к расширению Extensions 2.0 , чтобы ваше пользовательское расширение имело предопределенные правила группировки процессов. Добавьте свое определение в файл расширения YAML , как в этом примере:

<---
name: custom:my-extension
version: 1.0.0
minАппОптимаVersion: "1.218"
author:
  name: Joe Doe

processes:
  - name: keepalived
    detection:
    - id: ext.keepalived
      processGroupName: keepalived
      rules:
      - property: executable
        condition: "$eq(keepalived)"
      - property: executablePath
        condition: "$prefix(/usr/sbin/keepalived)"
      - property: commandLine
        condition: "$eq(-d)"