5.17. Оповещения #

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

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

Чтобы определить пороговое значение триггера оповещения, используются правила триггеров оповещений. Правило триггера оповещения — это набор из одного или нескольких условий, содержащих логические операторы и значения. Например, условие правила триггера оповещения может включать в себя логический оператор > и значение 0. При таком правиле триггер оповещения срабатывает, если значение указанной метрики превышает 0.

Отношения между несколькими условиями правил триггеров оповещений определяются логическими связками AND и OR.

Для нормальной работы оповещений необходимо предварительно установить и настроить средства журналирования и мониторинга.

В этом разделе описано, как управлять оповещениями, и приведены следующие инструкции:

Важно

Функциональность оповещений находится в стадии бета-тестирования. В настоящий момент для триггеров оповещений можно использовать только метрики pgpro-otel-collector. Другие ограничения указаны в соответствующих инструкциях этого раздела.

Предварительная настройка оповещений

Для работы с оповещениями их необходимо предварительно настроить в файле конфигурации менеджера ppem-manager.yml.

Вы можете указать следующие параметры:

alerts:
  metrics:
    request_chunk_size: количество_идентификаторов_экземпляров
  cleanup_grace_period: интервал_удаления_оповещений_если_данные_не_получены
  scheduler:
    interval: интервал_проверки_новых_оповещений
    initial_delay: задержка_запуска_планировщика_оповещений
    timeout: тайм-аут_обновления_правил_триггеров_оповещений
  delayed_data:
    is_enabled: true или false
    data_delay: задержка_получения_данных_из_любых_источников_установленная_по_умолчанию
    datasource_delays:
      metrics: задержка_получения_метрик
      logs: задержка_получения_данных_журналов
    max_delay: максимально_допустимая_задержка_получения_данных
    is_adaptive_delay: true или false
  notifier:
    num_workers: количество_параллельных_рабочих_процессов
    worker_batch_size: количество_оповещений_в_одном_пакете
    worker_interval: интервал_проверки_новых_оповещений
    backoff_base: длительность_расчёта_экспоненциальной_задержки
    max_retries: максимальное_количество_попыток_оповещения
    notification_timeout: тайм-аут_оповещения
    janitor_interval: интервал_опроса_рабочего_процесса_очистки
    stale_processing_timeout: тайм-аут_обработки_устаревших_оповещений
  email:
    is_enabled: true или false
    smtp:
      host: имя_хоста_или_IP_SMTP-сервера
      port: порт_SMTP-сервера
      username: имя_пользователя_для_аутентификации_в_SMTP-сервере
      password: пароль_для_аутентификации_в_SMTP-сервере
      from: электронная_почта_отправителя_оповещений
      timeout: тайм-аут_подключения_к_SMTP-серверу
      use_starttls: true или false
      use_ssl: true или false
      tls:
        insecure_skip_verify: true или false
        root_ca_path: путь_к_корневому_сертификату

Где:

  • metrics: параметры отправки запросов плагину метрик.

    • request_chunk_size: максимальное количество идентификаторов экземпляров в одном запросе.

      Значение по умолчанию: 100.

  • cleanup_grace_period: интервал времени, после которого оповещения удаляются, если данные не получены.

    Значение по умолчанию: 6h.

  • scheduler: параметры планировщика, который обновляет оповещения в памяти менеджера.

    • interval: интервал времени для проверки планировщиком новых оповещений, которые необходимо обработать.

      Значение по умолчанию: 50s.

    • initial_delay: задержка перед первым запуском планировщика после запуска PPEM.

      Значение по умолчанию: 10s.

    • timeout: тайм-аут для обновления планировщиком правил триггеров оповещений.

      Значение по умолчанию: 10m.

  • delayed_data: параметры для управления обработкой метрик и данных журналов, если они приходят с задержкой и точное время задержки неизвестно.

    • is_enabled: указывает, включены ли параметры управления обработкой данных, получаемых с задержкой.

      Возможные значения:

      • true

      • false

      Если для параметра задано значение true, в PPEM учитываются задержки при получении метрик и данных журналов.

      Значение по умолчанию: false.

    • data_delay: установленная по умолчанию задержка получения данных из любых источников, если не настроены конкретные параметры управления обработкой данных, получаемых с задержкой.

      Значение по умолчанию: 180s.

    • datasource_delays: задержка при получении данных из определённых источников. Этот параметр позволяет настроить разное время задержки для метрик и данных журналов, поскольку они могут поступать с разной скоростью.

      Возможные значения:

      • metrics: задержка при получении метрик, в секундах. Как правило, интервалы сбора метрик более прогнозируемые, но задержки могут возникнуть из-за проблем с сетью или обработкой.

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

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

      Значение по умолчанию: 600s.

    • is_adaptive_delay: включает или отключает адаптивный механизм обучения на задержках получения данных, основанный на анализе истории получения данных.

      Возможные значения:

      • true

      • false

      Если механизм включён, фактические задержки при получении данных анализируются в PPEM на основе меток времени, и временное окно настраивается динамически.

      Значение по умолчанию: true.

  • notifier: параметры системы уведомлений, которая отправляет оповещения.

    • num_workers: количество параллельных рабочих процессов, которые отправляют оповещения.

      Значение по умолчанию: 5.

    • worker_batch_size: количество оповещений, обрабатываемых рабочими процессами в одном пакете.

      Значение по умолчанию: 20.

    • worker_interval: интервал опроса, с которым рабочие процессы проверяют, не появились ли новые оповещения в базе данных репозитория.

      Значение по умолчанию: 30s.

    • backoff_base: базовая длительность расчёта экспоненциальной задержки при повторной отправке неудавшегося оповещения.

      Задержка повторной отправки оповещения рассчитывается как:

      базовая_задержка X (2^количество_попыток_повторной_отправки).

      Значение по умолчанию: 10s.

    • max_retries: максимальное количество попыток повторно отправить неудавшееся оповещение.

      Значение по умолчанию: 3.

    • notification_timeout: максимальное время, в течение которого система уведомлений должна ожидать отправки оповещения. Если по прошествии этого времени оповещение не было отправлено, оно считается неудавшимся.

      Значение по умолчанию: 20s.

    • janitor_interval: интервал опроса рабочего процесса очистки (janitor worker), который очищает оповещения, застрявшие в состоянии обработки.

      Значение по умолчанию: 1m.

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

      Значение по умолчанию: 10m.

  • email: параметры отправки оповещений по электронной почте.

    • is_enabled: указывает, отправляются ли оповещения по электронной почте.

      Возможные значения:

      • true

      • false

      Если указано значение false, вместо отправки по электронной почте оповещения попадают в журнал.

      Значение по умолчанию: false.

    • smtp: параметры SMTP-сервера, используемого для отправки оповещений.

      • host: имя хоста или IP-адрес SMTP-сервера.

        Значение по умолчанию: localhost.

      • port: номер порта SMTP-сервера.

        Значение по умолчанию: 25.

      • username: имя пользователя для аутентификации в SMTP-сервере.

        Значение по умолчанию: "".

      • password: пароль для аутентификации в SMTP-сервере.

        Значение по умолчанию: "".

      • from: адрес электронной почты отправителя оповещений.

        Значение по умолчанию: admin@localdomain.local.

      • timeout: тайм-аут подключения к SMTP-серверу.

        Значение по умолчанию: 10s.

      • use_starttls: указывает, используется ли расширение STARTTLS для обеспечения безопасности подключения к SMTP-серверу.

        Возможные значения:

        • true

        • false

        Значение по умолчанию: false.

      • use_ssl: указывает, используется ли протокол SSL/TLS для подключения к SMTP-серверу.

        Возможные значения:

        • true

        • false

        Значение по умолчанию: false.

      • tls: параметры TLS-протокола.

        • insecure_skip_verify: указывает, пропускает ли клиент проверку цепочки сертификатов и имени хоста SMTP-сервера.

          Возможные значения:

          • true

          • false

          Значение по умолчанию: false.

          Важно

          Задавать true для этого параметра небезопасно. Делайте это только для тестирования или при работе с доверенными сетями.

        • root_ca_path: путь к корневому сертификату, который используется для проверки сертификата SMTP-сервера.

          Значение по умолчанию: "".

Создание оповещения

  1. В навигационной панели перейдите в МониторингОповещения.

  2. В правом верхнем углу страницы нажмите Создать триггер.

  3. Укажите параметры нового оповещения (помеченные звёздочкой параметры являются обязательными):

    • Имя.

    • Приоритет: приоритет оповещения.

      Возможные значения:

      • Низкий

      • Средний

      • Высокий

    • Тип источника данных: тип метрик, которые будут использоваться для триггера оповещения.

      В настоящий момент можно использовать только метрики pgpro-otel-collector.

    • Источник данных.

    • Состояние: состояние оповещения после создания.

      Возможные значения:

      • Выключен

      • Включен

    • Интервал проверки, сек.: интервал времени в секундах для проверки источника данных триггера оповещения.

      Минимальное значение: 60.

    • Проверка на нестабильнось, шт.: количество повторно сработавших триггеров, необходимых для остановки оповещения.

      Если для параметра задано значение 0, это ограничение отключено.

    • Задержка оповещения, сек.: время в секундах, в течение которого триггер должен повторно срабатывать, чтобы было отправлено оповещение.

    • Период охлаждения, сек.: время в секундах, в течение которого оповещение не будет отправляться после последнего сработавшего триггера.

      0 значит, что это ограничение отключено.

  4. Нажмите Далее, затем укажите дополнительные параметры (помеченные звёздочкой параметры являются обязательными):

    • Имя метрики: имя метрики без дополнительных символов, которое будет использоваться для триггера оповещения.

      Вы можете использовать следующие метрики pgpro-otel-collector из таблицы monitoring.metrics базы данных репозитория:

      • postgresql.archiver.archived_count

      • postgresql.archiver.failed_count

      • postgresql.bgwriter.buffers_checkpoint

      • postgresql.bgwriter.buffers_clean

      • postgresql.bgwriter.buffers_backend

      • postgresql.bgwriter.buffers_allocated

      • postgresql.bgwriter.maxwritten_clean

      • postgresql.bgwriter.buffers_backend_fsync

      • postgresql.bgwriter.checkpoints_requested

      • postgresql.bgwriter.checkpoints_timed

      • postgresql.bgwriter.checkpoint_sync_time_milliseconds

      • postgresql.bgwriter.checkpoint_write_time_milliseconds

      • postgresql.databases.blocks_hit

      • postgresql.databases.blocks_read

      • postgresql.databases.conflicts

      • postgresql.databases.deadlocks

      • postgresql.databases.checksum_failures

      • postgresql.databases.tuples_fetched

      • postgresql.databases.tuples_returned

      • postgresql.databases.tuples_inserted

      • postgresql.databases.tuples_updated

      • postgresql.databases.tuples_deleted

      • postgresql.databases.temp_bytes

      • postgresql.databases.temp_files

      • postgresql.wal.bytes

      • postgresql.databases.rollbacks

      • system.cpu.utilization

      • system.memory.usage

      • system.paging.usage

      • postgresql.wal.records

      • postgresql.databases.commits

    • Оператор • Порог значения: условие правила триггера оповещения, содержащее логический оператор и значение.

      Возможные логические операторы:

      • = (eq)

      • > (gt)

      • >= (gte)

      • < (lt)

      • <= (lte)

      • != (neq)

      Например, если вы выбираете > и указываете 0, оповещение отправляется, когда значение указанной метрики превышает 0.

      Вы можете добавить несколько условий правил триггеров оповещений, нажав Добавить.

    • Условие для правил: логические связки для указанных условий правил триггеров оповещений.

      Возможные значения:

      • И

      • Или

      Этот параметр доступен, только если вы добавили несколько условий правил триггеров оповещений.

    • Экземпляры для проверки.

      Возможные значения:

      • Проверять все.

      • Выбрать экземпляры.

        Для этого значения из выпадающего списка Экземпляры выберите экземпляры.

    • Уведомлять пользователей: пользователи, которые будут получать оповещения.

    • Уведомлять группы: группы пользователей, которые будут получать оповещения.

    • Шаблон оповещения: шаблон текста оповещения.

      В тексте оповещения можно использовать следующие переменные:

      • {{.Title}}: имя метрики, используемой для триггера оповещения.

      • {{.Timestamp}}: время и дата, когда сработал триггер оповещения.

      • {{.HostName}}: имя хоста, на котором сработал триггер.

      • {{.AgentName}}: агент, для которого сработал триггер.

      • {{.InstanceName}}: имя экземпляра, в котором сработал триггер.

      • {{.Status}}: статус триггера оповещения.

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

      Возможные значения:

      • Включено.

        Для этого значения в поле Шаблон при разрешении введите шаблон текста оповещения.

        В этом тексте оповещения можно использовать такие же переменные, как в поле Шаблон оповещения.

      • Выключено.

  5. Нажмите Далее, затем Сохранить, чтобы подтвердить выбранные параметры и создать триггер.

Просмотр оповещений

В навигационной панели перейдите в МониторингОповещения.

Отобразится таблица оповещений со следующими столбцами:

  • Имя.

  • Состояние.

    Возможные значения:

    • Включен

    • Выключен

    • Неактивен

  • Источник данных: источник данных триггера оповещения.

    Этот столбец содержит следующую информацию:

    Тип: тип метрик, используемых для триггера оповещения.

    Возможные значения:

    • Репозитории: системные метрики.

    • Метрики: метрики pgpro-otel-collector.

    • Логи: журналы pgpro-otel-collector.

      Этот тип метрик временно не поддерживается.

  • Параметры:

    • Интервал проверки, сек.: интервал времени в секундах для проверки источника данных триггера оповещения.

    • Проверка на нестабильнось, шт.: количество повторно сработавших триггеров, необходимых для остановки оповещения.

      0 значит, что это ограничение отключено.

    • Задержка оповещения, сек.: время в секундах, в течение которого триггер должен повторно срабатывать, чтобы было отправлено оповещение.

    • Период охлаждения, сек.: время в секундах, в течение которого оповещение не отправляется после последнего сработавшего триггера.

      0 значит, что это ограничение отключено.

  • Приоритет: приоритет оповещения.

    Возможные значения:

    • Не задан

    • Низкий

    • Средний

    • Высокий

  • Получатели: пользователи, которые получают оповещения.

  • Группы получателей: группы пользователей, которые получают оповещения.

  • Правило: условия правила триггера оповещения.

    Например, если условие правила триггера оповещения — postgresql.up > 0, оповещение отправляется, когда значение метрики postgersql.up превышает 0.

  • Действия.

    За подробной информацией о доступных действиях обратитесь к другим инструкциям в этом разделе.

Просмотр подробной информации об оповещении

  1. В навигационной панели перейдите в МониторингОповещения.

  2. Нажмите Значок в виде трёх вертикальных точекСмотреть подробности рядом с оповещением.

    Отобразится окно с информацией об оповещении со следующими вкладками:

    • История оповещений: история срабатывания триггера.

    • Параметры. За подробной информацией о параметрах оповещений обратитесь к Создание оповещения.

  3. Нажмите Закрыть.

Отключение и включение оповещений

  1. В навигационной панели перейдите в МониторингОповещения.

  2. Нажмите Остановить или Запустить рядом с оповещением.

Редактирование оповещения

  1. В навигационной панели перейдите в МониторингОповещения.

  2. Нажмите Значок в виде трёх вертикальных точекРедактировать рядом с оповещением.

  3. Отредактируйте параметры оповещения.

  4. Нажмите Сохранить.

Редактирование получателей оповещения

  1. В навигационной панели перейдите в МониторингОповещения.

  2. Нажмите Значок в виде трёх вертикальных точекИзменить получателей рядом с оповещением.

  3. Отредактируйте пользователей и группы пользователей, которые получают оповещения.

  4. Нажмите Сохранить.

Очистка истории оповещений

  1. В навигационной панели перейдите в МониторингОповещения.

  2. Нажмите Значок в виде трёх вертикальных точекСмотреть подробности рядом с оповещением.

  3. Нажмите Очистить.

Удаление оповещения

Важно

  • Системные оповещения невозможно удалить.

  • После удаления оповещения невозможно восстановить.

Чтобы удалить оповещение:

  1. В навигационной панели перейдите в МониторингОповещения.

  2. Нажмите Удалить рядом с оповещением.

  3. Подтвердите операцию и нажмите Удалить.