Правила алертинга
Примечание
Правила алертинга находятся на стадии Preview.
Yandex Managed Service for Prometheus® позволяет добавить правила вычисления алертов и отправлять уведомления об их срабатывании.
Для использования алертинга:
- Добавьте правила алертинга.
- Настройте Alert Manager для обработки и доставки уведомлений.
В этом разделе описаны особенности работы с правилами алертинга и конфигурацией Alert Manager. Управление файлами см. в разделе Правила записи.
Вы можете настраивать алертинг через консоль управления
Предварительная настройка для работы с API
API представлен набором REST-ресурсов, которые находятся по адресу https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/rules
.
Чтобы начать выполнять запросы:
- Установите cURL
. - Аутентифицируйтесь в API.
- Создайте воркспейс и скопируйте его идентификатор, чтобы использовать в адресе запросов.
Добавление правил алертинга
Требования к правилам алертинга
В Yandex Managed Service for Prometheus® можно использовать правила алертинга (alerting rules
При описании правил учитывайте особенности:
- Поддерживаются все поля из спецификации
YAML-файла. - Поддерживается шаблонизация
аннотаций с помощью переменных$value
и$labels
. - Не поддерживаются итерации и функции.
Пример файла с правилами алертинга
Чтобы проверить работу алертинга, скопируйте код ниже в файл host-cpu-usage-alert.yml
.
groups:
- name: CPU_Usage_Alerts
rules:
- alert: HighCPUUsage
expr: 100 * (1 - avg by(instance) (rat(node_cpu_seconds_total{mode="idle"}[5m]))) > 80
for: 5m
labels:
severity: critical
annotations:
summary: "High CPU usage detected on {{$labels.instance}}"
description: "CPU usage on instance {{$labels.instance}} has been above 80% for the last5 minutes."
В примере описано правило CPU_Usage_Alerts
с алертом HighCPUUsage
. Алерт срабатывает, когда загрузка процессора выше 80% сохраняется более 5 минут. Процент загрузки процессора вычисляется по формуле в поле expr
.
Добавление и замена файла с правилами алертинга
- На странице сервиса Monitoring
слева выберите Prometheus. - Выберите или создайте воркспейс.
- Перейдите на вкладку Recording rules.
- Если у вас еще нет загруженных файлов, нажмите Добавить файл и выберите файл
.yml
с правилами. - Чтобы добавить еще один файл, нажмите Добавить файл.
- Чтобы заменить существующий файл, справа от него нажмите
> Заменить файл.
-
Закодируйте содержимое файла в Base64
согласно RFC 4648 :# cat <<EOF > host-cpu-usage-alert.yml groups: - name: CPU_Usage_Alerts rules: - alert: HighCPUUsage expr: 100 * (1 - avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m]))) > 10 for: 2m labels: severity: critical annotations: summary: "High CPU usage detected on {{$labels.instance}}" description: "CPU usage on instance {{$labels.instance}} has been above 80% for the last 5 minutes." EOF # base64 -iw0 host-cpu-usage-alert.yml Z3JvdXBzOgotIG5hbWU6I******
-
Сохраните результат в JSON-файл:
body.json
{ "name": "host-cpu-usage-alert.yml", "content" : "Z3JvdXBzOgotIG5hbWU6I******" }
-
Создайте или замените файл с правилами алертинга:
export IAM_TOKEN=<IAM-токен> curl -X PUT \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${IAM_TOKEN}" \ -d "@body.json" \ "https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/rules"
Настройка Alert Manager
Alert Manager
Особенности обработки правил
- Каналы уведомлений из файла конфигурации сопоставляются с каналами уведомлений в Yandex Monitoring, которые заданы в каталоге воркспейса.
- Поддерживается отправка в каналы Email
и Telegram . Остальные каналы будут проигнорированы без уведомлений об ошибках. В будущем планируется поддержка всех каналов уведомлений, доступных в Yandex Monitoring. - Канал выбирается согласно заданному типу, динамическая маршрутизация
пока не поддерживается. - Если в конфигурации нет каналов, соответствующих каналам в каталоге, файл не будет принят.
Пример файла конфигурации
Чтобы настроить отправку уведомлений, добавьте в пример ниже адрес вашей почты и аккаунт в Telegram.
global:
resolve_timeout: 5m
receivers:
- name: 'email'
email_configs:
- to: 'alerts@company.org'
- name: 'telegram'
telegram_configs:
- api_url: 'https://api.telegram.org'
Добавление и замена файла конфигурации
- На странице сервиса Monitoring
слева выберите Prometheus. - Выберите или создайте воркспейс.
- Перейдите на вкладку Конфигурация Alert manager.
- Если у вас еще нет загруженного файла конфигурации, нажмите кнопку Загрузить файл конфигурации и выберите файл
.yml
. - Чтобы скачать файл, нажмите Скачать.
- Чтобы заменить файл, нажмите Заменить файл.
-
Закодируйте содержимое файла в Base64
согласно RFC 4648 :# cat <<EOF > alertmanager.yml global: resolve_timeout: 5m receivers: - name: email_receiver email_configs: - to: "alerts@monitoring.org" - name: 'telegram' telegram_configs: - api_url: 'https://api.telegram.org' EOF # base64 -iw0 alertmanager.yml # Z2xvYmFsOgogIHJlc29sdmVfdGltZW91******
-
Сохраните результат в JSON-файл:
alertmanager-body.json
{ "content" : "Z2xvYmFsOgogIHJlc29sdmVfdGltZW91******" }
-
Создайте или замените файл конфигурации:
export IAM_TOKEN=<IAM-токен> curl -X PUT \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${IAM_TOKEN}" \ -d "@alertmanager-body.json" \ "https://monitoring.api.cloud.yandex.net/prometheus/workspaces/<идентификатор_воркспейса>/extensions/v1/alertmanager"
В случае успешного запроса будет возвращен HTTP-код 204
, иначе — текст ошибки. Файл, в котором не удалось найти ни одного соответствия текущим каналам уведомлений в каталоге, не будет принят.