Управление оповещениями
Содержание
Обзор функции
Функция управления оповещениями платформы предназначена для помощи пользователям в комплексном мониторинге и своевременном обнаружении аномалий системы. Используя предустановленные системные оповещения и гибкие возможности создания пользовательских оповещений, в сочетании со стандартизированными шаблонами оповещений и многоуровневым механизмом управления, она предоставляет полное решение по оповещениям для операционного и технического персонала.
Как администраторы платформы, так и бизнес-пользователи могут удобно настраивать и управлять политиками оповещений в рамках своих полномочий для эффективного мониторинга ресурсов платформы.
Ключевые возможности
- Встроенные системные политики оповещений: Предустановлены богатые правила оповещений на основе распространённых идей диагностики неисправностей для кластеров
global
и рабочих кластеров.
- Пользовательские правила оповещений: Поддерживается создание правил оповещений на основе различных источников данных, включая предустановленные показатели мониторинга, пользовательские показатели, black-box мониторинг, данные логов платформы и события платформы.
- Управление шаблонами оповещений: Поддерживается создание и управление стандартизированными шаблонами оповещений для быстрого применения к похожим ресурсам.
- Интеграция уведомлений об оповещениях: Поддерживается отправка информации об оповещениях операционному и техническому персоналу через различные каналы.
- Изоляция просмотра оповещений: Разграничение между оповещениями управления платформой и бизнес-оповещениями, что обеспечивает фокусировку сотрудников разных ролей на соответствующей информации.
- Просмотр оповещений в реальном времени: Предоставляет оповещения в реальном времени с концентрированным отображением количества ресурсов, на которых в данный момент есть оповещения, и подробной информацией об оповещениях.
- Просмотр истории оповещений: Поддерживается просмотр исторических записей оповещений за определённый период, что облегчает анализ последних состояний мониторинга операционным персоналом и администраторами.
Функциональные преимущества
- Всестороннее покрытие мониторинга: Поддерживается мониторинг различных типов ресурсов, таких как кластеры, узлы и вычислительные компоненты, а также предоставляются богатые встроенные системные политики оповещений, которые можно использовать без дополнительной настройки.
- Эффективное управление оповещениями: Стандартизированные конфигурации через шаблоны оповещений повышают эффективность эксплуатации, а разделение видов просмотра оповещений облегчает сотрудникам разных ролей быстро находить релевантные оповещения.
- Своевременное обнаружение проблем: Уведомления об оповещениях автоматически срабатывают для обеспечения своевременного обнаружения проблем, поддерживается многоканальная отправка оповещений для проактивного предотвращения проблем.
- Надёжное управление правами доступа: Строгий контроль доступа к политикам оповещений гарантирует безопасность и управляемость информации об оповещениях.
Создание политик оповещений через UI
Предварительные условия
- Настроена политика уведомлений (если требуется автоматическая отправка оповещений).
- В целевом кластере установлены компоненты мониторинга (требуется при создании политик оповещений с использованием показателей мониторинга).
- В целевом кластере установлены компоненты хранения логов и сбора логов (требуется при создании политик оповещений с использованием логов и событий).
Процедура
- Перейдите в Центр эксплуатации и обслуживания > alerts > alert Policies.
- Нажмите Create Alert Policy.
- Настройте основную информацию.
Выбор типа оповещения
Оповещение по ресурсу
- Типы оповещений классифицированы по типу ресурса (например, состояние deployment в namespace).
- Описание выбора ресурса:
- По умолчанию "Any", если параметр не выбран, поддерживается автоматическая привязка к вновь добавленным ресурсам.
- При выборе "Select All" применяется только к текущему ресурсу.
- При выборе нескольких namespace имена ресурсов поддерживают регулярные выражения (например,
cert.*
).
Оповещение по событию
- Типы оповещений классифицированы по конкретным событиям (например, аномальное состояние Pod).
- По умолчанию выбираются все ресурсы под указанным ресурсом и поддерживается автоматическая привязка к вновь добавленным ресурсам.
Настройка правил оповещений
Нажмите Add Alert Rule и настройте параметры в зависимости от типа оповещения:
Параметры оповещения по ресурсу
Параметр | Описание |
---|
Expression | Алгоритм метрики мониторинга в формате Prometheus, например, rate(node_network_receive_bytes{instance="$server",device!~"lo"}[5m]) |
Metric Unit | Единица измерения пользовательской метрики мониторинга, можно ввести вручную или выбрать из предустановленных на платформе единиц |
Legend Parameter | Управляет названием, соответствующим кривой на графике, формат {{.LabelName}} , например, {{.hostname}} |
Time Range | Временной интервал для запросов логов/событий |
Log Content | Поля запроса для содержимого логов (например, Error), несколько полей связаны через OR |
Event Reason | Поля запроса для причин событий (Reason, например, BackOff, Pulling, Failed и т.д.), несколько полей связаны через OR |
Trigger Condition | Условие, состоящее из операторов сравнения, порогов оповещения и длительности (опционально). Определяет, срабатывает ли оповещение на основе сравнения текущих значений/количества логов/событий с порогом оповещения, а также длительности нахождения текущих значений в пределах порога. |
alert Level | Делится на четыре уровня: Critical, Serious, Warning и Info. Можно установить разумный уровень оповещения в зависимости от влияния правил оповещения на бизнес для соответствующих ресурсов. |
Параметры оповещения по событию
Параметр | Описание |
---|
Time Range | Временной интервал для запросов событий |
Event Monitoring Item | Поддерживает мониторинг уровней событий или причин событий, несколько полей связаны через OR |
Trigger Condition | Основано на количестве событий для оценки сравнения |
alert Level | Определение такое же, как для уровней оповещений по ресурсам |
Другие настройки
- Выберите одну или несколько созданных политик уведомлений.
- Настройте интервалы отправки оповещений.
- Global: Использовать конфигурацию по умолчанию платформы.
- Custom: Можно задать разные интервалы отправки в зависимости от уровней оповещений.
- При выборе "Do Not Repeat" уведомления отправляются только при срабатывании и восстановлении оповещения.
Дополнительные замечания
- В разделе "More" правила оповещения можно задать labels и annotations.
- Пожалуйста, обратитесь к Prometheus Alerting Rules Documentation для настройки labels и annotations.
- Внимание: не используйте переменную
$value
в labels, так как это может вызвать исключения оповещений.
Создание оповещений по ресурсам через CLI
Предварительные условия
- Настроена политика уведомлений (если требуется автоматическая отправка оповещений).
- В целевом кластере установлены компоненты мониторинга (требуется при создании политик оповещений с использованием показателей мониторинга).
- В целевом кластере установлены компоненты хранения логов и сбора логов (требуется при создании политик оповещений с использованием логов и событий).
Процедура
-
Создайте новый YAML-файл конфигурации с именем example-alerting-rule.yaml
.
-
Добавьте ресурсы PrometheusRule в YAML-файл и отправьте его. Следующий пример создаёт новую политику оповещений с именем policy:
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
annotations:
alert.cpaas.io/cluster: global # Имя кластера, где расположено оповещение
alert.cpaas.io/kind: Cluster # Тип ресурса,
alert.cpaas.io/name: global # Объект ресурса, поддерживает одиночный, множественный (через |) или любой (.*)
alert.cpaas.io/namespace: cpaas-system # Namespace объекта оповещения, поддерживает одиночный, множественный (через |) или любой (.*)
alert.cpaas.io/notifications: '["test"]'
alert.cpaas.io/repeat-config: '{"Critical":"never","High":"5m","Medium":"5m","Low":"5m"}'
alert.cpaas.io/rules.description: '{}'
alert.cpaas.io/rules.disabled: '[]'
alert.cpaas.io/subkind: ''
cpaas.io/description: ''
cpaas.io/display-name: policy # Отображаемое имя политики оповещений
labels:
alert.cpaas.io/owner: System
alert.cpaas.io/project: cpaas-system
cpaas.io/source: Platform
prometheus: kube-prometheus
rule.cpaas.io/cluster: global
rule.cpaas.io/name: policy
rule.cpaas.io/namespace: cpaas-system
name: policy
namespace: cpaas-system
spec:
groups:
- name: general # имя правила оповещения
rules:
- alert: cluster.pod.status.phase.not.running-tx1ob-e998f0b94854ee1eade5ae79279e005a
annotations:
alert_current_value: '{{ $value }}' # Уведомление о текущем значении, оставить по умолчанию
expr: (count(min by(pod)(kube_pod_container_status_ready{}) !=1) or on() vector(0))>2
for: 30s # Длительность
labels:
alert_cluster: global # Имя кластера, где расположено оповещение
alert_for: 30s # Длительность
alert_indicator: cluster.pod.status.phase.not.running # Имя индикатора правила оповещения (пользовательское имя индикатора как custom)
alert_indicator_aggregate_range: '30' # Время агрегации правила оповещения в секундах
alert_indicator_blackbox_name: '' # Имя black-box мониторинга
alert_indicator_comparison: '>' # Метод сравнения правила оповещения
alert_indicator_query: '' # Запрос к логам правила оповещения (только для лог-оповещений)
alert_indicator_threshold: '2' # Порог правила оповещения
alert_indicator_unit: '' # Единица измерения индикатора правила оповещения
alert_involved_object_kind: Cluster # Тип объекта, к которому относится правило оповещения: Cluster|Node|Deployment|Daemonset|Statefulset|Middleware|Microservice|Storage|VirtualMachine
alert_involved_object_name: global # Имя объекта, к которому относится правило оповещения
alert_involved_object_namespace: '' # Namespace объекта, к которому относится правило оповещения
alert_name: cluster.pod.status.phase.not.running-tx1ob # Имя правила оповещения
alert_namespace: cpaas-system # Namespace, где расположено правило оповещения
alert_project: cpaas-system # Имя проекта объекта, к которому относится правило оповещения
alert_resource: policy # Имя политики оповещений, где расположено правило оповещения
alert_source: Platform # Тип данных политики оповещений: Platform - данные платформы, Business - бизнес-данные
severity: High # Уровень серьёзности правила оповещения: Critical - критический, High - серьёзный, Medium - предупреждение, Low - информация
Создание оповещений по событиям через CLI
Предварительные условия
- Настроена политика уведомлений (если требуется автоматическая отправка оповещений).
- В целевом кластере установлены компоненты мониторинга (требуется при создании политик оповещений с использованием показателей мониторинга).
- В целевом кластере установлены компоненты хранения логов и сбора логов (требуется при создании политик оповещений с использованием логов и событий).
Процедура
-
Создайте новый YAML-файл конфигурации с именем example-alerting-rule.yaml
.
-
Добавьте ресурсы PrometheusRule в YAML-файл и отправьте его. Следующий пример создаёт новую политику оповещений с именем policy2:
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
annotations:
alert.cpaas.io/cluster: global
alert.cpaas.io/events.scope:
'[{"names":["argocd-gitops-redis-ha-haproxy"],"kind":"Deployment","operator":"=","namespaces":["*"]}]'
# names: Имя ресурса для оповещения по событию; оператор не действует, если имя пустое.
# kind: Тип ресурса, вызывающего оповещение по событию.
# namespace: Namespace ресурса, вызывающего оповещение по событию. Пустой массив означает ресурс без namespace; при ns=['*'] — все namespace.
# operator: Селектор =, !=, =~, !~
alert.cpaas.io/kind: Event # Тип оповещения, Event (оповещение по событию)
alert.cpaas.io/name: '' # Используется для оповещений по ресурсам; для оповещений по событиям остаётся пустым
alert.cpaas.io/namespace: cpaas-system
alert.cpaas.io/notifications: '["acp-qwtest"]'
alert.cpaas.io/repeat-config: '{"Critical":"never","High":"5m","Medium":"5m","Low":"5m"}'
alert.cpaas.io/rules.description: '{}'
alert.cpaas.io/rules.disabled: '[]'
cpaas.io/description: ''
cpaas.io/display-name: policy2
labels:
alert.cpaas.io/owner: System
alert.cpaas.io/project: cpaas-system
cpaas.io/source: Platform
prometheus: kube-prometheus
rule.cpaas.io/cluster: global
rule.cpaas.io/name: policy2
rule.cpaas.io/namespace: cpaas-system
name: policy2
namespace: cpaas-system
spec:
groups:
- name: general
rules:
- alert: cluster.event.count-6sial-34c9a378e3b6dda8401c2d728994ce2f
# 6sial-34c9a378e3b6dda8401c2d728994ce2f можно настроить для обеспечения уникальности
annotations:
alert_current_value: '{{ $value }}' # Уведомление о текущем значении, оставить по умолчанию
expr: round(((avg
by(kind,namespace,name,reason)(increase(cpaas_event_count{namespace=~".*",id="policy2-cluster.event.count-6sial"}[300s])))
+ (avg
by(kind,namespace,name,reason)(abs(increase(cpaas_event_count{namespace=~".*",id="policy2-cluster.event.count-6sial"}[300s])))))
/ 2)>2
# id в policy2 должен совпадать с именем политики оповещений; 6sial должен совпадать с предыдущим именем правила оповещения
for: 15s # Длительность
labels:
alert_cluster: global # Имя кластера, где расположено оповещение
alert_for: 15s # Длительность
alert_indicator: cluster.event.count # Имя индикатора правила оповещения (пользовательское имя индикатора как custom)
alert_indicator_aggregate_range: '300' # Время агрегации правила оповещения в секундах
alert_indicator_blackbox_name: ''
alert_indicator_comparison: '>' # Метод сравнения правила оповещения
alert_indicator_event_reason: ScalingReplicaSet # Причина события.
alert_indicator_threshold: '2' # Порог правила оповещения
alert_indicator_unit: pieces # Единица измерения индикатора правила оповещения; для оповещений по событиям остаётся без изменений
alert_involved_object_kind: Event
alert_involved_object_options: Single
alert_name: cluster.event.count-6sial # Имя правила оповещения
alert_namespace: cpaas-system # Namespace, где расположено правило оповещения
alert_project: cpaas-system # Имя проекта объекта, к которому относится правило оповещения
alert_repeat_interval: 5m
alert_resource: policy2 # Имя политики оповещений, где расположено правило оповещения
alert_source: Platform # Тип данных политики оповещений: Platform - данные платформы, Business - бизнес-данные
severity: High # Уровень серьёзности правила оповещения: Critical - критический, High - серьёзный, Medium - предупреждение, Low - информация
Создание политик оповещений через шаблоны оповещений
Шаблоны оповещений — это комбинация правил оповещений и политик уведомлений, ориентированных на похожие ресурсы. С помощью шаблонов оповещений легко и быстро создавать политики оповещений для кластеров, узлов или вычислительных компонентов на платформе.
Предварительные условия
- Настроена политика уведомлений (если требуется автоматическая отправка оповещений).
- В целевом кластере установлены компоненты мониторинга (требуется при создании политик оповещений с использованием показателей мониторинга).
Процедура
Создание шаблона оповещений
- В левой навигационной панели нажмите Центр эксплуатации и обслуживания > alerts > alert Templates.
- Нажмите Create alert Template.
- Настройте основную информацию шаблона оповещений.
- В разделе alert Rules нажмите Add alert Rule и добавьте правила оповещений согласно описаниям параметров ниже:
Параметр | Описание |
---|
Expression | Алгоритм метрики мониторинга в формате Prometheus, например, rate(node_network_receive_bytes{instance="$server",device!~"lo"}[5m]) |
Metric Unit | Единица измерения пользовательской метрики мониторинга, можно ввести вручную или выбрать из предустановленных на платформе единиц |
Legend Parameter | Управляет названием, соответствующим кривой на графике, формат {{.LabelName}} , например, {{.hostname}} |
Time Range | Временной интервал для запросов логов/событий |
Log Content | Поля запроса для содержимого логов (например, Error), несколько полей связаны через OR |
Event Reason | Поля запроса для причин событий (Reason, например, BackOff, Pulling, Failed и т.д.), несколько полей связаны через OR |
Trigger Condition | Условие, состоящее из операторов сравнения, порогов оповещения и длительности (опционально). |
alert Level | Делится на четыре уровня: Critical, Serious, Warning и Info. Можно установить разумный уровень оповещения в зависимости от влияния правил оповещения на бизнес для соответствующих ресурсов. |
- Нажмите Create.
Создание политик оповещений с использованием шаблонов оповещений
- В левой навигационной панели нажмите Центр эксплуатации и обслуживания > alerts > alert Policies.
Совет: Вы можете переключить целевой кластер через верхнюю навигационную панель.
- Нажмите кнопку раскрытия рядом с кнопкой Create alert Policy > Template Create alert Policy.
- Настройте некоторые параметры, опираясь на описания ниже:
Параметр | Описание |
---|
Template Name | Имя используемого шаблона оповещений. Шаблоны классифицированы по кластеру, узлу и вычислительному компоненту. При выборе шаблона можно просмотреть правила оповещений, политики уведомлений и другую информацию, заданную в шаблоне оповещений. |
Resource Type | Выберите, является ли шаблон шаблоном политики оповещений для Cluster, Node или Computing Component; будет отображено соответствующее имя ресурса. |
- Нажмите Create.
Настройка подавления оповещений (Silence)
Поддерживается подавление оповещений для кластеров, узлов и вычислительных компонентов. При настройке подавления для конкретной политики оповещений можно контролировать, чтобы все правила в рамках этой политики не отправляли уведомления при срабатывании в течение заданного периода подавления. Поддерживается постоянное подавление и подавление на заданное время.
Например: при обновлении или обслуживании платформы многие ресурсы могут показывать аномальные состояния, что приводит к множеству срабатывающих оповещений и частому получению уведомлений операционным персоналом до завершения обновления или обслуживания. Настройка подавления для политики оповещений позволяет избежать такой ситуации.
Примечание: По истечении времени подавления настройка подавления автоматически снимается.
Настройка через UI
-
В левой навигационной панели нажмите Центр эксплуатации и обслуживания > alerts > alert Policies.
-
Нажмите кнопку действий справа от политики оповещений, для которой нужно настроить подавление > Set Silence.
-
Переключите тумблер alert Silence в положение включено.
Совет: Этот переключатель управляет применением настройки подавления. Для отмены подавления просто выключите переключатель.
-
Настройте соответствующие параметры согласно описаниям ниже:
Совет: Если не выбран диапазон подавления или имя ресурса, по умолчанию используется Any, что означает, что последующие действия Delete/Add ресурса будут соответствовать удалению/добавлению подавления для политики оповещений; при выборе "Select All" подавление применяется только к текущему выбранному диапазону ресурсов, и последующие действия Delete/Add ресурса не обрабатываются.
Параметр | Описание |
---|
Silence Range | Область ресурсов, на которую распространяется настройка подавления. |
Resource Name | Имя объекта ресурса, на который направлено подавление. |
Silence Time | Временной интервал подавления оповещений. Оповещения переходят в состояние подавления в начале интервала, и если политика оповещений остаётся в состоянии оповещения или срабатывает после окончания интервала, уведомления возобновляются. Permanent: подавление действует до удаления политики оповещений. Custom: пользовательская настройка времени начала и окончания подавления, интервал не менее 5 минут. |
-
Нажмите Set.
Совет: С момента настройки подавления до начала интервала подавления статус политики оповещений считается Silence Waiting. В этот период при срабатывании правил уведомления отправляются как обычно; с начала подавления до его окончания статус политики — Silencing, и при срабатывании правил уведомления не отправляются.
Настройка через CLI
-
Укажите имя ресурса политики оповещений, для которой хотите настроить подавление, и выполните команду:
kubectl edit PrometheusRule <TheNameOfThealertPolicyYouWantToSet>
-
Измените ресурс, добавив аннотации подавления, как показано в примере, и отправьте изменения.
---
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
annotations:
alert.cpaas.io/cluster: global
alert.cpaas.io/kind: Node
alert.cpaas.io/name: 0.0.0.0
alert.cpaas.io/namespace: cpaas-system
alert.cpaas.io/notifications: '[]'
alert.cpaas.io/rules.description: '{}'
alert.cpaas.io/rules.disabled: '[]'
alert.cpaas.io/rules.version: '23'
alert.cpaas.io/silence.config:
'{"startsAt":"2025-02-08T08:01:37Z","endsAt":"2025-02-22T08:01:37Z","creator":"leizhu@alauda.io","resources":{"nodes":[{"name":"192.168.36.11","ip":"192.168.36.11"},{"name":"192.168.36.12","ip":"192.168.36.12"},{"name":"192.168.36.13","ip":"192.168.36.13"}]}}'
# Конфигурация подавления для политики оповещений на уровне узлов, включая время начала, окончания, создателя и т.д.; если диапазон подавления включает конкретные узлы, добавьте информацию resources.node как показано выше. Если требуется подавление для всех ресурсов, поле resources не нужно.
# alert.cpaas.io/silence.config: '{"startsAt":"2025-02-08T08:04:50Z","endsAt":"2199-12-31T00:00:00Z","creator":"leizhu@alauda.io","name":["alb-operator-ctl","apollo"],"namespace":["cpaas-system"]}'
# Конфигурация подавления для политики оповещений на уровне workload, включая время начала, окончания, создателя и т.д.; если диапазон подавления включает конкретные workloads, добавьте имя и namespace как показано выше. Если требуется подавление для всех ресурсов, поля name и namespace не нужны.
# Установка endsAt в 2199-12-31T00:00:00Z означает постоянное подавление.
alert.cpaas.io/subkind: ''
cpaas.io/creator: leizhu@alauda.io
cpaas.io/description: ''
cpaas.io/display-name: policy3
cpaas.io/updated-at: 2025-02-08T08:01:42Z
labels:
## Исключены нерелевантные данные
Рекомендации по настройке правил оповещений
Большее количество правил оповещений не всегда означает лучший результат. Избыточные или сложные правила могут привести к лавине оповещений и увеличить нагрузку на обслуживание. Рекомендуется ознакомиться с приведёнными ниже рекомендациями перед настройкой правил, чтобы пользовательские правила достигали своих целей при сохранении эффективности.
- Используйте минимально необходимое количество новых правил: Создавайте только те правила, которые соответствуют вашим конкретным требованиям. Использование минимального количества правил позволяет создать более управляемую и централизованную систему оповещений в среде мониторинга.
- Фокусируйтесь на симптомах, а не на причинах: Создавайте правила, которые уведомляют пользователей о симптомах, а не о корневых причинах этих симптомов. Это гарантирует, что при появлении соответствующих симптомов пользователи получат оповещения и смогут исследовать причины, вызвавшие эти оповещения. Такой подход значительно сокращает общее количество необходимых правил.
- Планируйте и оценивайте потребности перед изменениями: Сначала определите, какие симптомы важны и какие действия вы хотите, чтобы пользователи выполняли при их появлении. Затем оцените существующие правила, чтобы решить, можно ли их изменить для достижения целей без создания новых правил для каждого симптома. Модифицируя существующие правила и тщательно создавая новые, вы упрощаете систему оповещений.
- Обеспечьте понятные сообщения оповещений: При создании сообщений оповещений включайте описание симптомов, возможных причин и рекомендуемых действий. Информация должна быть ясной, краткой и содержать процедуры устранения неполадок или ссылки на дополнительную релевантную информацию. Это помогает пользователям быстро оценивать ситуацию и реагировать соответствующим образом.
- Устанавливайте уровни серьёзности разумно: Назначайте уровням серьёзности правила, чтобы указать, как пользователи должны реагировать при срабатывании оповещений. Например, классифицируйте оповещения с уровнем Critical как требующие немедленных действий от ответственных лиц. Установление уровней серьёзности помогает пользователям принимать решения при получении оповещений и обеспечивает своевременную реакцию на критические проблемы.