Настройка данных с помощью расширений

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

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

Пользовательский интерфейс Ключ-АСТРОМ

Фреймворк Расширений 2.0 позволяет вам адаптировать пользовательский интерфейс Ключ-АСТРОМ для конкретных потребностей данных, принимаемых вашим расширением. Вы можете добавлять настраиваемые панели мониторинга или специализированные страницы унифицированного анализа к вашему расширению.

Пользовательские метрические события

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

Экспорт пользовательского события для определения оповещения

  1. Перейдите в Настройки > Обнаружение аномалий > События метрик.
  2. Расширьте событие по вашему выбору.
  3. Прокрутите определение до конца, где вы найдете параметр Config id (например, id=1be8d58d-71a7-4566-9058-754d635363ab), и сохраните значение параметра.
  4. Выполните следующую команду, чтобы получить определение события пользовательской метрики. Для этого примера мы используем URL-адрес Ключ-АСТРОМ SaaS:
    • curl -X GET "https://{env-id}.live.astromkey.com/api/config/v1/anomalyDetection/metricEvents/{custom-event-id}" \
    • -H "accept: application/json; charset=utf-8" \
    • -H "Authorization: Api-Token `{api-token}"
      • Замените:
        • {env-id} вашим идентификатором среды .
        • {api-token} API-токеном, имеющим необходимые разрешения .
        • {custom-event-id} идентификатором события пользовательской метрики, который вы определили на предыдущем шаге.
  5. Вызов возвращает полезную нагрузку JSON, содержащую определение события пользовательской метрики. Сохраните его как файл JSON.
  6. Объявите экспортированные файлы JSON в своем файле extension.yaml и добавьте их в свой пакет расширений.
После загрузки или обновления расширения, содержащего пользовательские метрические события, убедитесь, что вы включили события, которые хотите использовать. Импортированные расширением события по умолчанию отключены после каждой загрузки и активации, включая обновление. Чтобы включить метрические события, перейдите в Настройки > Обнаружение аномалий > Метрические события.

Пользовательская топология

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

Пользовательские метрические метаданные

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

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

Фильтрация данных

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

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

Выражение Описание
$eq(<str>) Проверяет, соответствует ли <str> фильтру
$prefix(...) Начинается с …
$suffix(...) Заканчивается на …
$contains(...) Содержит …
$and(<expr1>, <expr2>) Объединяет два или более из указанных выше выражений с помощью оператора AND.
$or(<expr1>, <expr2>) Объединяет два или более из указанных выше выражений с помощью оператора OR
$not(<expr>) Отрицает выражение. Например, чтобы исключить все Pools из Common partition, можно добавить фильтр $not($prefix(/Common/)).

Правила обнаружения пользовательских групп процессов

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

Пользовательский атрибут контекста безопасности

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

Вам необходимо иметь конфигурацию мониторинга для выбранного расширения.

Вы можете добавить контекст безопасности из вкладки Конфигурации мониторинга выбранного расширения, выбрав Редактировать в столбце Действия. Затем выберите Далее, чтобы перейти на страницу Атрибуты.

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

API также может использоваться для настройки контекста безопасности.

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

Пользовательские атрибуты центра затрат и продукта затрат

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

Поля основаны на следующих атрибутах:

  • dt.cost.costcenter назначает использование определенному центру затрат.
  • dt.cost.product присваивает использование идентификатору продукта или приложения.

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

Вы можете добавить контекст безопасности из вкладки Конфигурации мониторинга выбранного расширения, выбрав Редактировать в столбце Действия. Затем выберите Далее, чтобы перейти на страницу Атрибуты.

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

Регистрируйте показатели, события и правила обработки

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

Файл YAML расширений поддерживает те же поля, что и схемы настроек 2.0:

  • Метрики логов
  • Логи событий
  • Обработка

Вы определяете свою собственную конфигурацию журнала в файле YAML расширений, начиная со следующих узлов в корне файла

  • logMetrics
  • logEvents
  • logProcessingRules

Чтобы изучить структуру определения, проверьте схемы расширений:

  • log.events.schema.json
  • log.metrics.schema.json
  • log.processing.rule.schema.dql.json
  • log.processing.rule.schema.json
  • log.processing.rule.schema.lql.json

См. расширения YAML , чтобы узнать, как получить файлы схемы JSON.

Ознакомьтесь с примерами ниже, чтобы узнать, как определить метрики логов, события и правила обработки в файле расширения YAML.

Метрики логов

name: custom:astromkey.logmetric.test.extension

version: 1.0.0

minastromkeyVersion: "1.281.0"

author:

  name: "John Doe"

logMetrics:

  - key: log.test.extension.occurrence

    query: content="AllProcessed"

    enabled: true

    measure: OCCURRENCE

  - key: log.test.extension.attribute

    query: content="AllProcessed"

    enabled: true

    measure: ATTRIBUTE

    measureAttribute: dt.os.type

  - key: log.test.extension.dimensions

    query: content="AllProcessed"

    enabled: true

    measure: OCCURRENCE

    dimensions: [

      dimension1,

      dimension2

    ]

Логи событий

name: custom:astromkey.logevent.test.extension2

version: 1.0.0

minastromkeyVersion: "1.281.0"

author:

  name: "John Doe"

logEvents:

  - query: content="a"

    enabled: true

    summary: abc

    eventTemplate:

      title: log_event_a

      description: ''

      eventType: CUSTOM_ALERT

      davisMerge: false

  - query: content="a"

    enabled: true

    summary: abd

    eventTemplate:

      title: abd

      description: My custom log event description :)

      eventType: CUSTOM_ALERT

      davisMerge: false

Правила обработки логов

logProcessingRules:

  - ruleName: TopN statements masking

    query: event.group="query_performance"

    enabled: true

    ProcessorDefinition:

      rule: |

        USING(INOUT content) | FIELDS_ADD(content: REPLACE_PATTERN(content, "(\"'\"):p1 (LD):p2 (\"'\"):p3", "${p1}${p2|sha1}${p3}"))

    RuleTesting:

      sampleLog: |

        {

          "event.group": "query_performance",

          "content": "/*dt:ownQuery*/SELECT DECODE(name, 'sessions', value) AS sessions_limit, DECODE(name, 'processes', value) AS processes_limit FROM v$parameter WHERE name IN('sessions', 'processes')"

        }