Настройка пользовательских оповещений на основе метрик, извлечённых из логов
Настройка пользовательских оповещений на основе метрик, извлечённых из логов
Загруженные логи могут быть триггерами для открытия новых проблем ИИ. Используя комбинацию метрик на основе логов и пользовательских оповещений, вы можете задействовать мощь различных анализаторов данных ИИ Ключ-АСТРОМ для решения задач от простого порогового оповещения до сезонных базовых линий, например:
- Оповещение, когда среднее количество совпадающих записей превышает определённое число в течение заданного периода времени.
- Оповещение, когда значение метрики аномально, без установки статического порога.
Следуйте этому руководству, чтобы узнать больше об оповещении с помощью метрик на основе логов. Если вам не нужно устанавливать пороги, следуйте инструкциям в разделе Настройка оповещений на основе событий, извлечённых из логов.
Предварительные требования
- Вы настроили загрузку логов.
- Вы используете OpenPipeline.
- У вас есть необходимые разрешения для настройки пользовательского оповещения в приложении Обнаружение аномалий.
Шаги
В этом примере мы откроем новую проблему ИИ, когда определённые записи, содержащие конкретную фразу, будут загружены и превысят статический порог.
1. Найдите логи, которые должны запускать оповещения
Вы можете найти оповещения, открыв Логи и используя следующий запрос DQL.
fetch logs | filter matchesPhrase(content, "Dropping data because sending_queue is full") | sort timestamp desc
- Если ваш запрос DQL использует
parse,fieldsAddили другие преобразования, вам следует добавить правило обработки, чтобы установить эти поля при загрузке. - Чтобы найти, какой пайплайн обрабатывает ваши логи, выберите запись лога в Логах и проверьте поле
dt.openpipeline.pipelines. Используйте это значение при выборе пайплайна в настройках OpenPipeline.
2. Извлеките метрику в OpenPipeline
Добавьте конфигурацию извлечения метрики в OpenPipeline.
- Откройте Настройки > Обработка и контекстуализация > OpenPipeline > Логи > Пайплайны.
- Найдите пайплайн, который хотите изменить, или добавьте новый пайплайн.
- Выберите > Редактировать. Откроется страница конфигурации пайплайна.
- Выберите этап Извлечение метрик. Задайте Имя метрики и ID. Задайте сопоставление DQL. Сопоставление устанавливает условие для события, которое должно быть извлечено. Это подмножество условий фильтрации в одном операторе DQL. В поле Условие сопоставления используйте сопоставление, как показано ниже.
matchesPhrase(content, "Dropping data because sending_queue is full")
Если вы используете сегменты или ваши разрешения установлены на уровне записей, вам следует включить эти условия в сопоставление. Бывают ситуации, когда сопоставление не может быть легко извлечено из оператора DQL. В таких случаях можно создать оповещения по логам для события лога или сводки данных логов.
- Добавьте измерения. Для большинства логов можно добавить автоматическую корреляцию с сущностями в анализе первопричин ИИ. Для этого добавьте измерение
dt.source_entityили любое другое поле, содержащее идентификатор сущности. - Если вы добавили правило извлечения в существующий пайплайн, логи уже направляются туда, и дополнительная настройка не требуется. Если вы создали новый пайплайн, настройте динамический маршрут, чтобы логи достигали его.
Поля, которые вычисляются или добавляются на этапе «Обработка», не могут использоваться в условиях сопоставления динамических маршрутов, поскольку маршрутизация оценивается до «Обработки». Это включает поля, добавленные самой платформой, такие как dt.entity.service. Полный список полей с этим ограничением см. в разделе «Поля с ограничениями для всех областей конфигурации».
- Перейдите в Настройки > Обработка и контекстуализация > OpenPipeline > Логи > Динамическая маршрутизация.
- Выберите Динамический маршрут и задайте:
- Имя: например, используйте
Dropping data alert route. - Условие сопоставления: используйте то же условие, что и сопоставление метрики, чтобы маршрут сужал данные до записей, которые вы действительно хотите обработать.
- Имя: например, используйте
matchesPhrase(content, "Dropping data because sending_queue is full")
- Пайплайн: выберите новый пайплайн.
- Выберите Добавить. Маршруты оцениваются сверху вниз, и побеждает первый совпавший маршрут. Если у вас есть другие маршруты, которые могут соответствовать тем же логам, разместите этот маршрут выше них.
3. Настройте пользовательское оповещение
Настройте пользовательское оповещение в приложении Обнаружение аномалий.
- Перейдите в Обнаружение аномалий.
- Выберите Новое оповещение > Создать собственное оповещение.
- В поле Имя введите описательное имя для оповещения.
- В разделе Query введите DQL-запрос, который извлекает вашу метрику лога. Например:
timeseries avg(log.dropping_data_count), by:{dt.entity.service}
- Настройте Порог. В этом примере мы хотим оповещать, когда среднее количество совпадающих записей превышает 10 в течение 5 минут.
- Выберите Статический порог.
- Установите Порог в
10. - Установите Период наблюдения в
5 minutes. - Выберите условие срабатывания (например, Выше порога).
- Настройте Свойства события. Установите следующие пары «ключ-значение»:
event.type:CUSTOM_ALERTevent.description:Log metric 'log.dropping_data_count' exceeded threshold.dt.source_entity:{dt.source_entity}
- Выберите Сохранить.
Заключение
Использование метрик на основе логов с пользовательскими оповещениями идеально подходит для порогового оповещения и обнаружения аномалий.
- Оно позволяет устанавливать статические пороги или использовать статистические анализаторы для обнаружения аномалий.
- Обеспечивает гибкость в настройке условий срабатывания и периодов наблюдения.
- Позволяет коррелировать оповещения с сущностями для анализа первопричин ИИ.
После того как вы начнёте извлекать метрики и настраивать оповещения, вы можете использовать их для запуска автоматизаций с помощью простых рабочих процессов, как описано в разделе Создание простого рабочего процесса в Workflows Ключ-АСТРОМ.