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

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

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

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

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

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

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

Важно

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

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

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

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

alerts:
     metrics:
       request_chunk_size: количество_идентификаторов_экземпляров
     scheduler:
       interval: интервал_проверки_новых_оповещений
       initial_delay: задержка_запуска_планировщика_оповещений
       timeout: тайм-аут_обновления_правил_триггеров_оповещений
     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.

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

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

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

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

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

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

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

  • 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.

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

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

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

      • AND

      • OR

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      • Включено.

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

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

      • Выключено.

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

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

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

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

  • Имя.

  • Состояние.

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

    • Включен

    • Выключен

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Действия.

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

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

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

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

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

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

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

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

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

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

Важно

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

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

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

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

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

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