Это учебное руководство является продолжением руководства Grafana Alerting — создание и получение первого оповещения.
В этом руководстве мы углубимся в более сложные, но не менее фундаментальные элементы Grafana Alerting: экземпляры оповещений и политики уведомлений.
После знакомства с каждым компонентом вы научитесь:
- Настраивать правило оповещения, которое возвращает более одного экземпляра оповещения.
- Создавать политики уведомлений, которые маршрутизируют сработавшие экземпляры оповещений в разные точки контакта.
- Использовать метки для сопоставления экземпляров оповещений и политик уведомлений.
Знакомство с экземплярами оповещений и политиками уведомлений полезно, если в вашей организации несколько точек контакта или если ваше правило оповещения возвращает несколько метрик, которые вы хотите обрабатывать раздельно, маршрутизируя каждый экземпляр оповещения в конкретную точку контакта. В руководстве будет представлена каждая концепция, а затем показано, как применить обе концепции в реальном сценарии.
Перед началом работы
Существует несколько способов пройти это учебное руководство.
-
Grafana Cloud
- Пользователям Grafana Cloud не нужно ничего устанавливать. Создайте бесплатную учётную запись.
Перейдите к разделу Экземпляры оповещений.
-
Интерактивная среда обучения
- Кроме того, вы можете попробовать этот пример в нашей интерактивной среде обучения: Начало работы с Grafana Alerting — маршрутизация оповещений. Это полностью настроенная среда, в которой уже установлены все зависимости.
-
Grafana OSS
-
Если вы решили запустить стек Grafana локально, убедитесь, что у вас установлены следующие приложения:
-
Docker Compose (входит в состав Docker for Desktop для macOS и Windows)
-
Настройка стека Grafana (пользователи OSS)
Чтобы продемонстрировать наблюдение за данными с помощью стека Grafana, загрузите и запустите следующие файлы.
-
Клонируйте репозиторий среды учебного руководства.
git clone https://github.com/grafana/tutorial-environment.git -
Перейдите в каталог, в который вы клонировали репозиторий:
cd tutorial-environment -
Запустите стек Grafana:
docker compose up -dПри первом запуске
docker compose up -dDocker загружает все необходимые для учебного руководства ресурсы. В зависимости от скорости вашего интернет-соединения это может занять несколько минут.Note
Если на вашей системе уже запущены Grafana, Loki или Prometheus, вы можете увидеть ошибки, потому что Docker-образ пытается использовать порты, которые уже заняты вашими локальными установками. В этом случае остановите службы, а затем снова выполните команду.
Экземпляры оповещений
Экземпляр оповещения — это событие, соответствующее метрике, возвращаемой запросом правила оповещения.
Рассмотрим сценарий, в котором вы отслеживаете трафик веб-сайта с помощью Grafana. Вы настроили правило оповещения на срабатывание экземпляра оповещения, если количество просмотров страниц превышает определённый порог (более 1000 просмотров страниц) за определённый период времени, скажем, за последние 5 минут.
Если запрос возвращает более одного временного ряда, каждый временной ряд представляет собой отдельную метрику или аспект, за которым ведётся наблюдение. В этом случае правило оповещения применяется к каждому временному ряду индивидуально.
В этом сценарии каждый временной ряд оценивается независимо по правилу оповещения. Это приводит к созданию экземпляра оповещения для каждого временного ряда. Временной ряд, соответствующий просмотрам страниц на настольных устройствах, достигает порога и, следовательно, приводит к экземпляру оповещения в состоянии Firing, для которого отправляется уведомление об оповещении. Состояние экземпляра оповещения для мобильных устройств остаётся Normal.
Политики уведомлений
Политики уведомлений маршрутизируют оповещения по разным каналам связи, снижая информационный шум оповещений и обеспечивая контроль над тем, когда и как отправляются оповещения. Например, вы можете использовать политики уведомлений, чтобы гарантировать немедленную отправку критических оповещений о простое сервера дежурному инженеру. Другой вариант использования — маршрутизация оповещений о производительности команде разработчиков для рассмотрения и принятия мер.
Основные характеристики:
- Маршрутизация уведомлений об оповещениях путём сопоставления оповещений и политик по меткам.
- Управление тем, когда отправлять уведомления.
На приведённой выше схеме экземпляры оповещений и политики уведомлений сопоставляются по меткам. Например, метка team=operations сопоставляет экземпляры оповещений «Pod stuck in CrashLoop» и «Disk Usage -80%» с дочерними политиками, которые отправляют уведомления об оповещениях в конкретную точку контакта (operations@grafana.com).
Создание политик уведомлений
Создайте политику уведомлений, если вы хотите обрабатывать метрики, возвращаемые правилами оповещений, раздельно, маршрутизируя каждый экземпляр оповещения в конкретную точку контакта.
-
В браузере войдите в свою учётную запись Grafana Cloud.
Пользователям OSS и интерактивной среды обучения: для входа перейдите по адресу http://localhost:3000, где должна быть запущена Grafana.
-
Перейдите в Alerts & IRM > Alerting > Notification policies.
-
В политике по умолчанию нажмите + New child policy.
-
В поле Label введите
device, а в поле Value введитеdesktop. -
В раскрывающемся списке Contact point выберите Webhook.
Note
Если у вас нет точек контакта, добавьте точку контакта.
-
Включите Continue matching:
Включите Continue matching subsequent sibling nodes, чтобы оценка продолжалась даже после совпадения одной или нескольких меток (например, метки
device). -
Нажмите Save Policy.
Эта новая дочерняя политика маршрутизирует оповещения, соответствующие метке
device=desktop, в точку контакта Webhook. -
Повторите описанные выше действия, чтобы создать вторую дочернюю политику для сопоставления с другим экземпляром оповещения. Для меток используйте:
device=mobile. Используйте интеграцию Webhook для точки контакта. Кроме того, вы можете поэкспериментировать, используя другую конечную точку Webhook или другую интеграцию.
Создание правила оповещения, возвращающего экземпляры оповещений
Правило оповещения, которое вы собираетесь создать, предназначено для отслеживания просмотров страниц веб-трафика. Цель — изучить, что такое экземпляр оповещения и как использовать маршрутизацию отдельных экземпляров оповещений с помощью сопоставителей меток и политик уведомлений.
Создание правила оповещения
- Перейдите в Alerts & IRM > Alerting > Alert rules.
- Нажмите + New alert rule.
Ввод имени правила оповещения
Сделайте его коротким и описательным, так как оно отображается в вашем уведомлении об оповещении. Например, web-traffic.
Определение запроса и условия оповещения
В этом разделе мы используем параметры по умолчанию для создания правила оповещения под управлением Grafana. Параметры по умолчанию позволяют определить запрос, выражение (используется для обработки данных — поле WHEN в интерфейсе) и условие, которое должно быть выполнено для срабатывания оповещения (в режиме по умолчанию это порог).
Grafana включает тестовый источник данных, который создаёт имитированные данные временных рядов. Этот источник данных включён в демонстрационную среду данного учебного руководства. Если вы работаете в Grafana Cloud или на собственном локальном экземпляре Grafana, вы можете добавить источник данных через меню Connections.
-
Выберите источник данных TestData из раскрывающегося меню.
-
В поле Scenario выберите CSV Content.
-
Скопируйте следующие CSV-данные:
device,views desktop,1200 mobile,900Приведённые выше CSV-данные имитируют источник данных, возвращающий несколько временных рядов, каждый из которых приводит к созданию экземпляра оповещения для этого конкретного временного ряда. Обратите внимание, что возвращаемые данные соответствуют примеру из раздела Экземпляр оповещения.
-
В разделе Alert condition:
- Оставьте
Lastв качестве значения функции приведения (WHEN) иIS ABOVE 1000в качестве порогового значения. Это значение, выше которого должно срабатывать правило оповещения.
- Оставьте
-
Нажмите Preview alert rule condition, чтобы выполнить запросы.
Он должен вернуть два ряда: desktop в состоянии Firing и mobile в состоянии Normal. Значения 1 и 0 означают, что условие либо истинно, либо ложно.
Добавление папок и меток
- В поле Folder нажмите + New folder и введите имя. Например:
web-traffic-alerts. Эта папка будет содержать наши правила оповещения.
Настройка поведения оценки
В жизненном цикле экземпляров оповещений, когда условие оповещения (порог) не выполняется, состояние экземпляра оповещения — Normal. Аналогично, когда условие нарушается (дольше периода ожидания, который в этом руководстве будет равен 0), состояние экземпляра оповещения переключается обратно в Alerting, что означает, что правило оповещения находится в состоянии Firing и отправляется уведомление.
Чтобы настроить поведение оценки:
- В поле Evaluation group and interval введите имя. Например:
1m-evaluation. - Выберите Evaluation interval (как часто будет оцениваться оповещение). Выберите
1m. - Установите pending period равным
0s(ноль секунд), чтобы правило оповещения срабатывало сразу после выполнения условия. - Установите Keep firing for равным
0s, чтобы оповещение прекращало срабатывать сразу после того, как условие перестало выполняться.
Настройка уведомлений
В этом разделе вы можете выбрать, как маршрутизировать ваши экземпляры оповещений. Поскольку мы хотим маршрутизировать по политике уведомлений, нам нужно убедиться, что метки соответствуют экземпляру оповещения.
-
Переключите кнопку Advanced options, чтобы отобразить соответствующие политики уведомлений.
-
Нажмите Preview routing. На основе существующих меток вы должны увидеть предварительный просмотр того, какие политики соответствуют оповещениям. Должно быть два экземпляра оповещений, соответствующих меткам, которые были ранее настроены в каждой политике уведомлений:
device=desktop,device=mobile.Эти типы меток генерируются запросом источника данных, и их можно использовать для сопоставления наших политик уведомлений без необходимости добавлять их вручную в правило оповещения.
Предварительный просмотр маршрутизации соответствующих политик уведомлений Note
Даже если обе метки соответствуют политикам, уведомление об оповещении создаёт только экземпляр оповещения в состоянии Firing.
-
Нажмите Save rule and exit.
Теперь, когда мы настроили правило оповещения, пришло время проверить уведомление об оповещении.
Получение уведомлений об оповещениях
Теперь, когда правило оповещения настроено, вы должны получать уведомления об оповещениях в точке контакта всякий раз, когда оповещение срабатывает и разрешается. В нашем примере каждый экземпляр оповещения должен маршрутизироваться отдельно, так как мы настроили метки для сопоставления с политиками уведомлений. По завершении интервала оценки (1 мин) вы должны получить уведомление об оповещении в конечной точке Webhook.
Детали уведомления об оповещении показывают, что экземпляр оповещения, соответствующий просмотрам веб-сайта с настольных устройств, был корректно маршрутизирован через политику уведомлений в точку контакта Webhook. Уведомление также показывает, что экземпляр находится в состоянии Firing, а также включает метку device=desktop, которая делает возможной маршрутизацию экземпляра оповещения.
Не стесняйтесь изменить CSV-данные в правиле оповещения, чтобы запустить маршрутизацию экземпляра оповещения, соответствующего метке device=mobile.
Резюме
В этом учебном руководстве вы узнали, как Grafana Alerting может маршрутизировать отдельные экземпляры оповещений с помощью меток, генерируемых запросом источника данных, и сопоставлять эти метки с политиками уведомлений, которые, в свою очередь, маршрутизируют уведомления об оповещениях в конкретные точки контакта.
Если у вас возникнут проблемы, вы можете задать вопросы на форуме сообщества Grafana.
Дополнительно в Grafana Alerting: группировка уведомлений об оповещениях
Tip
В руководстве Начало работы с Grafana Alerting: группировка уведомлений об оповещениях вы узнаете, как эффективно группировать уведомления об оповещениях.