• Русский
  • Управление оповещениями

    Обзор функции

    Функция управления оповещениями платформы предназначена для помощи пользователям в комплексном мониторинге и своевременном обнаружении аномалий системы. Используя предустановленные системные оповещения и гибкие возможности создания пользовательских оповещений, в сочетании со стандартизированными шаблонами оповещений и многоуровневым механизмом управления, она предоставляет полное решение по оповещениям для операционного и технического персонала.

    Будь то администраторы платформы или бизнес-пользователи, они могут удобно настраивать и управлять политиками оповещений в пределах своих полномочий для эффективного мониторинга ресурсов платформы.

    Ключевые возможности

    • Встроенные системные политики оповещений: Предустановлены богатые правила оповещений на основе типовых идей диагностики сбоев для кластеров global и рабочих кластеров.
    • Пользовательские правила оповещений: Поддерживается создание правил оповещений на основе различных источников данных, включая предустановленные показатели мониторинга, пользовательские показатели, black-box мониторинг, данные логов платформы и события платформы.
    • Управление шаблонами оповещений: Поддерживается создание и управление стандартизированными шаблонами оповещений для быстрого применения к похожим ресурсам.
    • Интеграция уведомлений об оповещениях: Поддерживается отправка информации об оповещениях операционному и техническому персоналу через различные каналы.
    • Изоляция просмотра оповещений: Разграничение оповещений управления платформой и бизнес-оповещений, что обеспечивает фокусировку персонала с разными ролями на соответствующей информации.
    • Просмотр оповещений в реальном времени: Предоставляет оповещения в реальном времени с концентрированным отображением количества ресурсов, находящихся в состоянии оповещения, и подробной информацией об оповещениях.
    • Просмотр истории оповещений: Поддерживается просмотр исторических записей оповещений за определённый период, что облегчает анализ последних состояний мониторинга операционным персоналом и администраторами.

    Преимущества функции

    • Всестороннее покрытие мониторинга: Поддерживается мониторинг различных типов ресурсов, таких как кластеры, узлы и вычислительные компоненты, а также предоставляются богатые встроенные системные политики оповещений, которые можно использовать без дополнительной настройки.
    • Эффективное управление оповещениями: Стандартизированные конфигурации через шаблоны оповещений повышают эффективность работы, а разделение видов просмотра оповещений облегчает персоналу с разными ролями быстро находить релевантные оповещения.
    • Своевременное обнаружение проблем: Уведомления об оповещениях автоматически запускаются для обеспечения своевременного обнаружения проблем, поддерживается многоканальная отправка оповещений для проактивного предотвращения проблем.
    • Надёжное управление правами доступа: Строгий контроль доступа к политикам оповещений гарантирует безопасность и управляемость информации об оповещениях.

    Создание политик оповещений через UI

    Предварительные условия

    • Настроена политика уведомлений (если требуется автоматическая отправка оповещений).
    • В целевом кластере установлены компоненты мониторинга (требуется при создании политик оповещений с использованием показателей мониторинга).
    • В целевом кластере установлены компоненты хранения логов и сбора логов (требуется при создании политик оповещений с использованием логов и событий).

    Процедура

    1. Перейдите в Центр эксплуатации и обслуживания > alerts > alert Policies.
    2. Нажмите Create Alert Policy.
    3. Настройте основную информацию.

    Выбор типа оповещения

    Оповещение по ресурсу

    • Типы оповещений классифицируются по типу ресурса (например, состояние 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Определение аналогично уровням оповещений по ресурсу

    Другие настройки

    1. Выберите одну или несколько созданных политик уведомлений.
    2. Настройте интервалы отправки оповещений.
      • Global: Использовать конфигурацию по умолчанию платформы.
      • Custom: Можно задать разные интервалы отправки в зависимости от уровней оповещений.
      • При выборе "Do Not Repeat" уведомления отправляются только при срабатывании и восстановлении оповещения.

    Дополнительные замечания

    1. В опции "More" правила оповещения можно задать labels и annotations.
    2. Пожалуйста, обратитесь к Prometheus Alerting Rules Documentation для настройки labels и annotations.
    3. Внимание: не используйте переменную $value в labels, так как это может вызвать исключения оповещений.

    Создание оповещений по ресурсам через CLI

    Предварительные условия

    • Настроена политика уведомлений (если требуется автоматическая отправка оповещений).
    • В целевом кластере установлены компоненты мониторинга (требуется при создании политик оповещений с использованием показателей мониторинга).
    • В целевом кластере установлены компоненты хранения логов и сбора логов (требуется при создании политик оповещений с использованием логов и событий).

    Процедура

    1. Создайте новый YAML-файл конфигурации с именем example-alerting-rule.yaml.

    2. Добавьте ресурсы 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 # Имя индикатора правила оповещения (пользовательское имя индикатора)
                  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

    Предварительные условия

    • Настроена политика уведомлений (если требуется автоматическая отправка оповещений).
    • В целевом кластере установлены компоненты мониторинга (требуется при создании политик оповещений с использованием показателей мониторинга).
    • В целевом кластере установлены компоненты хранения логов и сбора логов (требуется при создании политик оповещений с использованием логов и событий).

    Процедура

    1. Создайте новый YAML-файл конфигурации с именем example-alerting-rule.yaml.

    2. Добавьте ресурсы 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 # Имя индикатора правила оповещения (пользовательское имя индикатора)
                  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 - информация

    Создание политик оповещений через alert Templates

    alert templates — это комбинация правил оповещений и политик уведомлений, ориентированных на похожие ресурсы. С помощью alert templates легко и быстро создавать политики оповещений для кластеров, узлов или вычислительных компонентов на платформе.

    Предварительные условия

    • Настроена политика уведомлений (если требуется автоматическая отправка оповещений).
    • В целевом кластере установлены компоненты мониторинга (требуется при создании политик оповещений с использованием показателей мониторинга).

    Процедура

    Создание шаблона оповещений

    1. В левой навигационной панели нажмите Центр эксплуатации и обслуживания > alerts > alert Templates.
    2. Нажмите Create alert Template.
    3. Настройте основную информацию шаблона оповещений.
    4. В разделе 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. Можно установить разумный уровень оповещения в зависимости от влияния правил оповещений на бизнес для соответствующих ресурсов.
    1. Нажмите Create.

    Создание политик оповещений с использованием alert Templates

    1. В левой навигационной панели нажмите Центр эксплуатации и обслуживания > alerts > alert Policies.
      Совет: Вы можете переключать целевой кластер через верхнюю навигационную панель.
    2. Нажмите кнопку раскрытия рядом с кнопкой Create alert Policy > Template Create alert Policy.
    3. Настройте некоторые параметры, ориентируясь на описания ниже:
    ПараметрОписание
    Template NameИмя используемого шаблона оповещений. Шаблоны классифицированы по кластеру, узлу и вычислительному компоненту. При выборе шаблона можно просмотреть правила оповещений, политики уведомлений и другую информацию, заданную в шаблоне оповещений.
    Resource TypeВыберите, является ли шаблон шаблоном политики оповещений для Cluster, Node или Computing Component; будет отображено соответствующее имя ресурса.
    1. Нажмите Create.

    Настройка заглушения оповещений

    Поддерживается заглушение оповещений для кластеров, узлов и вычислительных компонентов. При настройке заглушения для конкретной политики оповещений можно контролировать, что все правила в рамках этой политики не будут отправлять уведомления при срабатывании в течение заданного периода заглушения. Можно задать постоянное заглушение или заглушение на определённое время.

    Например: при обновлении или обслуживании платформы многие ресурсы могут показывать аномальные состояния, что приводит к множеству срабатывающих оповещений и частому получению уведомлений операционным персоналом до завершения обновления или обслуживания. Настройка заглушения для политики оповещений позволяет избежать такой ситуации.

    Примечание: Когда статус заглушения сохраняется до времени окончания заглушения, настройка заглушения автоматически снимается.

    Настройка через UI

    1. В левой навигационной панели нажмите Центр эксплуатации и обслуживания > alerts > alert Policies.

    2. Нажмите кнопку действий справа от политики оповещений, которую нужно заглушить > Set Silence.

    3. Включите переключатель alert Silence.

      Совет: Этот переключатель управляет действием настройки заглушения. Чтобы отменить заглушение, просто выключите переключатель.

    4. Настройте соответствующие параметры согласно описаниям ниже:

      Совет: Если не выбран диапазон заглушения или имя ресурса, по умолчанию используется Any, что означает, что последующие действия Delete/Add ресурсов будут соответствовать Delete Silence/Add Silence политикам оповещений; если выбрано "Select All", это применяется только к текущему выбранному диапазону ресурсов, и последующие действия Delete/Add ресурсов не обрабатываются.

      ПараметрОписание
      Silence RangeОбласть ресурсов, в которой действует настройка заглушения.
      Resource NameИмя объекта ресурса, на который направлена настройка заглушения.
      Silence TimeВременной диапазон заглушения оповещений. Оповещение переходит в состояние заглушения с начала времени заглушения, и если политика оповещений остаётся в состоянии оповещения или срабатывает после окончания времени заглушения, уведомления возобновляются. Permanent: настройка заглушения действует до удаления политики оповещений. Custom: пользовательские настройки времени начала и окончания заглушения, интервал не менее 5 минут.
    5. Нажмите Set.

      Совет: С момента установки заглушения до начала времени заглушения статус заглушения политики оповещений считается Silence Waiting. В этот период при срабатывании правил уведомления отправляются как обычно; после начала и до окончания заглушения статус считается Silencing, и при срабатывании правил уведомления не отправляются.

    Настройка через CLI

    1. Укажите имя ресурса политики оповещений, для которой нужно настроить заглушение, и выполните команду:

      kubectl edit PrometheusRule <TheNameOfThealertPolicyYouWantToSet>
    2. Измените ресурс, добавив аннотации заглушения, как показано в примере, и отправьте изменения.

      ---
      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, добавьте name и 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 как требующие немедленных действий от ответственных лиц. Установив уровни серьёзности, вы поможете пользователям принимать решения при получении оповещений и обеспечите своевременную реакцию на критические проблемы.