Оповещения Azure Monitor
Источник данных Azure Monitor поддерживает Grafana Alerting и правила записи, управляемые Grafana, что позволяет создавать правила оповещений на основе метрик, логов, трассировок и данных о ресурсах Azure. Вы можете отслеживать свою среду Azure и получать уведомления при выполнении определённых условий.
Прежде чем начать
- Убедитесь, что у вас есть соответствующие разрешения на создание правил оповещений в Grafana.
- Проверьте, что ваш источник данных Azure Monitor настроен и работает корректно.
- Ознакомьтесь с концепциями Grafana Alerting.
- Важно: убедитесь, что источник данных использует поддерживаемый метод аутентификации. См. Требования к аутентификации.
Поддерживаемые типы запросов для оповещений
Все типы запросов Azure Monitor поддерживают оповещения и правила записи:
Note
Запросы для оповещений должны возвращать числовые данные, которые Grafana может сравнить с пороговым значением. Запросы, возвращающие только текст или нечисловые данные, нельзя использовать для оповещений напрямую.
Требования к аутентификации
Правила оповещений и записи выполняются как фоновые процессы без контекста пользователя. Это означает, что им требуется аутентификация на уровне сервиса, и они работают не со всеми методами аутентификации.
Note
Если вы используете аутентификацию Current User, для работы оповещений и правил записи необходимо настроить резервные сервисные учётные данные. Учётные данные пользователя недоступны для фоновых операций, поэтому Grafana использует вместо них резервные учётные данные. Подробности настройки резервных учётных данных см. в разделе Настройка источника данных.
Создание правила оповещения
Чтобы создать правило оповещения на основе данных Azure Monitor:
- Перейдите в Alerting > Alert rules.
- Нажмите New alert rule.
- Введите имя правила оповещения.
- В разделе Define query and alert condition:
- Выберите ваш источник данных Azure Monitor.
- Настройте запрос (например, запрос Metrics для загрузки CPU или запрос Logs с использованием KQL).
- Добавьте выражение Reduce, если запрос возвращает несколько рядов.
- Добавьте выражение Threshold, чтобы определить условие оповещения.
- Настройте Set evaluation behavior:
- Выберите или создайте папку и группу вычисления.
- Задайте интервал вычисления (как часто проверяется оповещение).
- Задайте период ожидания (сколько условие должно сохраняться до срабатывания).
- Добавьте метки и аннотации, чтобы передать контекст для уведомлений.
- Нажмите Save rule.
Подробные инструкции см. в разделе Создание правила оповещения, управляемого Grafana.
Пример: оповещение о загрузке CPU виртуальной машины
В этом примере создаётся оповещение, которое срабатывает, когда загрузка CPU виртуальной машины превышает 80%:
- Создайте новое правило оповещения.
- Настройте запрос:
- Service: Metrics
- Resource: выберите вашу виртуальную машину
- Metric namespace:
Microsoft.Compute/virtualMachines - Metric:
Percentage CPU - Aggregation:
Average
- Добавьте выражения:
- Reduce: Last (чтобы получить самую свежую точку данных)
- Threshold: Is above 80
- Настройте вычисление с запуском каждую 1 минуту и периодом ожидания 5 минут.
- Сохраните правило.
Пример: оповещение о количестве ошибок в логах
В этом примере оповещение срабатывает, когда количество ошибок в логах превышает порог, с использованием запроса KQL:
- Создайте новое правило оповещения.
- Настройте запрос:
- Service: Logs
- Resource: выберите ваше рабочее пространство Log Analytics
- Query:
AppExceptions | where TimeGenerated > ago(5m) | summarize ErrorCount = count() by bin(TimeGenerated, 1m)
- Добавьте выражения:
- Reduce: Max (чтобы получить наибольшее количество за период)
- Threshold: Is above 10
- Настройте вычисление с запуском каждые 5 минут.
- Сохраните правило.
Пример: оповещение о количестве ресурсов
В этом примере оповещение срабатывает, когда количество работающих виртуальных машин падает ниже порога, с использованием Azure Resource Graph:
-
Создайте новое правило оповещения.
-
Настройте запрос:
-
Service: Azure Resource Graph
-
Subscriptions: выберите ваши подписки
-
Query:
resources | where type == "microsoft.compute/virtualmachines" | where properties.extended.instanceView.powerState.displayStatus == "VM running" | summarize RunningVMs = count()
-
-
Добавьте выражения:
- Reduce: Last
- Threshold: Is below 3
-
Настройте вычисление с запуском каждые 5 минут.
-
Сохраните правило.
Рекомендации
Следуйте этим рекомендациям, чтобы создавать надёжные и эффективные оповещения на основе данных Azure Monitor.
Используйте подходящие интервалы запросов
- Задавайте интервал вычисления оповещения большим или равным минимальному разрешению данных из Azure Monitor.
- Метрики Azure Monitor обычно имеют минимальную детализацию 1 минута.
- Избегайте очень коротких интервалов (менее 1 минуты) — они могут приводить к тайм-аутам вычисления или пропуску точек данных.
Сокращайте несколько рядов
Когда запрос Azure Monitor возвращает несколько временных рядов (например, загрузку CPU по нескольким виртуальным машинам), используйте выражение Reduce, чтобы агрегировать их:
- Last: использует самое свежее значение
- Mean: среднее по всем рядам
- Max/Min: использует наибольшее или наименьшее значение
- Sum: сумма по всем рядам
Оптимизируйте запросы Log Analytics
Для запросов Logs, используемых в оповещениях:
- Используйте
summarize, чтобы агрегировать данные в числовые значения. - Включайте подходящие фильтры по времени с помощью
ago()илиTimeGenerated. - Избегайте возврата больших наборов результатов; агрегируйте данные в самом запросе.
- Проверяйте запросы в Explore, прежде чем использовать их в правилах оповещений.
Обрабатывайте условия отсутствия данных
Настройте, что происходит, когда данные не возвращаются:
- В правиле оповещения найдите Configure no data and error handling.
- Выберите подходящее действие:
- No Data: сохранять текущее состояние оповещения
- Alerting: считать отсутствие данных условием оповещения
- OK: считать отсутствие данных нормальным состоянием
Проверяйте запросы перед настройкой оповещений
Всегда проверяйте, что запрос возвращает ожидаемые данные, прежде чем создавать оповещение:
- Перейдите в Explore.
- Выберите ваш источник данных Azure Monitor.
- Выполните запрос, который планируете использовать для оповещения.
- Убедитесь, что формат данных и значения корректны.
- Проверьте, что запрос возвращает числовые данные, пригодные для сравнения с порогом.
Устранение неполадок
Если оповещения Azure Monitor работают не так, как ожидалось, воспользуйтесь следующими разделами, чтобы диагностировать и устранить типичные проблемы.
Оповещения не срабатывают
- Проверьте, что источник данных использует поддерживаемый метод аутентификации. Если используется аутентификация Current User, убедитесь, что настроены резервные сервисные учётные данные.
- Проверьте в Explore, что запрос возвращает числовые данные.
- Убедитесь, что интервал вычисления даёт достаточно времени для появления данных.
- Просмотрите состояние правила оповещения и сообщения об ошибках в интерфейсе Alerting.
Ошибки аутентификации при вычислении оповещений
Если при вычислении оповещений появляются ошибки аутентификации:
- Убедитесь, что источник данных настроен с использованием App Registration, Managed Identity, Workload Identity или Current User с резервными сервисными учётными данными.
- Если используется App Registration, проверьте, что срок действия клиентского секрета не истёк.
- Если используется Current User, проверьте, что резервные сервисные учётные данные настроены и действительны.
- Проверьте, что у субъекта-службы есть соответствующие разрешения на ресурсы Azure.
Ошибки тайм-аута запросов
- Увеличьте тайм-аут источника данных. По умолчанию тайм-аут составляет 30 секунд, но запросы Azure Log Analytics могут выполняться до 3 минут. Откройте настройки источника данных Azure Monitor, прокрутите до раздела Misc и задайте для Timeout значение
300. См. Тайм-аут запроса. - Упростите сложные запросы KQL.
- Сократите диапазон времени в запросах Log Analytics.
- Добавьте более конкретные фильтры, чтобы сузить наборы результатов.
- Убедитесь, что интервал вычисления оповещения достаточно велик, чтобы вместить длительность запроса.
Дополнительную помощь по устранению неполадок см. в разделе Устранение неполадок Azure Monitor.