Product SiteDocumentation Site

⁠Глава 38. Уведомления

38.1. Цели уведомлений (Notification Targets)
38.1.1. Sendmail
38.1.2. SMTP
38.1.3. Webhook
38.2. Триггеры уведомлений (Notification Matchers)
38.2.1. Правила сопоставления по календарю (match-calendar)
38.2.2. Правила сопоставления полей (match-field)
38.2.3. Правила сопоставления по уровню серьёзности (match-severity)
38.2.4. События уведомлений
38.2.5. Создание триггера уведомлений
38.3. Пересылка системной почты
38.4. Разрешения
38.5. Режим уведомления
Система уведомлений (нотификаций) в PVE предназначена для информирования администраторов о ключевых событиях, происходящих в системе, таких как сбой репликации хранилища, ошибка ограждения узлов, успешное и неудачное выполнение задач резервного копирования и других.
При возникновении значимого события PVE генерирует событие уведомления, которое обрабатывается системой уведомлений. Каждое событие содержит метаданные: временную метку, уровень серьёзности, тип и другие атрибуты.
Сопоставители уведомлений направляют события в один или несколько целевых объектов уведомления (каналов доставки). Для выборочной маршрутизации сопоставители могут использовать правила фильтрации, основанные на метаданных события.
Цель уведомления — это конечный пункт назначения, в который направляется событие. PVE поддерживает следующие типы целей:
  • Sendmail — отправка уведомлений через локальный почтовый сервер;
  • SMTP — отправка уведомлений через внешний SMTP-сервер;
  • Gotify — отправка уведомлений в сервис Gotify (легковесный сервер для push-уведомлений);
  • Webhook — выполнение HTTP-запросов к настраиваемому URL-адресу.
Задания резервного копирования поддерживают настраиваемый режим уведомления, позволяющий выбирать между системой уведомлений PVE и классической отправкой по электронной почте.
Систему уведомлений можно настроить:
  • в веб-интерфейсе (раздел Центр обработки данных → Уведомления);
  • через конфигурационные файлы.
Конфигурация системы уведомлений хранится в файлах:
  • /etc/pve/notifications.cfg — основные настройки;
  • /etc/pve/priv/notifications.cfg — конфиденциальные параметры (пароли, токены аутентификации). Файл доступен для чтения только пользователю root.

⁠38.1. Цели уведомлений (Notification Targets)

⁠38.1.1. Sendmail

Цель уведомлений Sendmail использует команду sendmail для отправки электронных писем указанным получателям. Если в качестве получателя указан пользователь PVE, используется адрес электронной почты из его профиля (адрес электронной почты пользователя можно настроить в разделе Центр обработки данных → Разрешения → Пользователи). Если у пользователя не указан адрес электронной почты, письмо не будет отправлено.

Примечание

Команда sendmail предоставляется почтовым агентом (например, Postfix). Для корректной доставки может потребоваться настройка Postfix (например, указание внешнего ретранслятора). В случае ошибок необходимо проверить системные журналы на наличие сообщений, зарегистрированных демоном Postfix (journalctl -u postfix).

Примечание

Для возможности отправки уведомлений Sendmail должен быть запущен postfix:
# systemctl enable --now postfix
Для настройки цели Sendmail необходимо выполнить следующие шаги:
  1. Перейти в раздел Центр обработки данных → Уведомления → Получатели уведомлений.
  2. Нажать кнопку Добавить → Sendmail:
    Создать цель уведомлений Sendmail
  3. В открывшемся окне указать (в скобках приведены параметры файла notifications.cfg):
    • Имя конечной точки — идентификатор цели;
    • Включить (disable) — статус (включено/отключено);
    • Получатель (получатели) (mailto-user) — пользователи PVE, которым будут отправлены уведомления. Адрес электронной почты пользователя будет найден в users.cfg;
    • Дополнительный получатель (получатели) (mailto) — список дополнительных получателей электронной почты (email-адреса);
    • Комментарий (comment) — комментарий для этой цели;
    • Автор (author) — имя отправителя (по умолчанию: Proxmox VE);
    • Адрес отправителя (from-address) — адрес отправителя, который будет использоваться в уведомлениях. Если параметр не задан, используется настройка Центр обработки данных → Параметры → Адрес для отправки сообщений (email_from из файла datacenter.cfg), а при его отсутствии — значение по умолчанию root@$hostname, где $hostname — имя узла.
    Настройка цели уведомлений Sendmail
Пример конфигурации (/etc/pve/notifications.cfg):
sendmail: sendmails-admin
    comment Отправка уведомлений администраторам
    mailto user@example.test
    mailto-user kim@test.alt
    mailto-user orlov@test.alt
    mailto-user root@pam

⁠38.1.2. SMTP

Цель уведомлений SMTP отправляет письма напрямую через SMTP-сервер, не используя системный MTA.

Примечание

В отличие от Sendmail, SMTP-цель не поддерживает очередь повторных отправок в случае сбоя доставки почты.
Для настройки цели SMTP необходимо выполнить следующие шаги:
  1. Перейти в раздел Центр обработки данных → Уведомления → Получатели уведомлений.
  2. Нажать кнопку Добавить → SMTP:
    Создать цель уведомлений SMTP
  3. В открывшемся окне указать (в скобках приведены параметры файла notifications.cfg):
    • Имя конечной точки — идентификатор цели;
    • Включить (disable) — статус (включено/отключено);
    • Сервер (server) — адрес SMTP-сервера;
    • Шифрование (mode) — метод шифрования: insecure, starttls или tls (по умолчанию tls);
    • Порт (port) — порт: 465 (TLS), 587 (STARTTLS), 25 (без шифрования);
    • Выполнять аутентификацию — добавить данные для аутентификации SMTP;
    • Имя пользователя (username) — имя пользователя для аутентификации SMTP. Если имя пользователя не задано, аутентификация не будет выполнена. Поддерживаются методы аутентификации PLAIN и LOGIN;
    • Пароль (password) — пароль для аутентификации SMTP;
    • Адрес отправителя (from-address) — адрес отправителя, который будет использоваться в уведомлениях. Ретрансляторы SMTP могут потребовать, чтобы этот адрес принадлежал пользователю. Поле Отправитель в электронном письме будет установлено на $author <$from-address>;
    • Получатель (получатели) (mailto-user) — пользователи PVE, которым будут отправлены уведомления. Адрес электронной почты пользователя будет найден в users.cfg;
    • Дополнительный получатель (получатели) (mailto) — список дополнительных получателей электронной почты;
    • Комментарий (comment) — комментарий для этой цели;
    • Автор (author) — имя отправителя (по умолчанию: Proxmox VE).
    Настройка цели уведомлений SMTP
Пример конфигурации:
  • файл /etc/pve/notifications.cfg:
    smtp: smtp
        from-address pve-mail@test.alt
        mailto-user root@pam
        mailto-user orlov@test.alt
        mode tls
        server mail.test.alt
        username pve-mail
    
  • файл /etc/pve/priv/notifications.cfg:
    smtp: smtp
    	password somepassword
    

⁠38.1.3. Webhook

Цели уведомлений Webhook выполняют HTTP-запросы к указанному URL. Поддерживается шаблонизация с использованием Handlebars.
Для настройки цели Webhook необходимо:
  1. Перейти в раздел Центр обработки данных → Уведомления → Получатели уведомлений.
  2. Нажать кнопку Добавить → Webhook:
    Создать цель уведомлений Webhook
  3. В открывшемся окне указать (в скобках приведены параметры файла notifications.cfg):
    • Имя конечной точки — идентификатор цели;
    • Включить (disable) — статус (включено/отключено);
    • Метод/URL-адрес (method/url) — HTTP-метод (POST/PUT/GET) и URL-адрес, по которому следует выполнять HTTP-запросы. URL-адрес поддерживает шаблонизацию для внедрения содержимого сообщения, метаданных и секретов;
    • Заголовки (header) — массив HTTP-заголовков, которые следует задать для запроса (с шаблонизацией);
    • Тело письма (body) — содержимое запроса (в формате base64, с шаблонами);
    • Секреты (secret) — массив секретных пар ключ-значение. Они хранятся в защищенном файле конфигурации (/etc/pve/priv/notifications.cfg), доступном для чтения только пользователю root. Для любых конечных точек API, возвращающих конфигурацию конечной точки, будет возвращено только имя секрета, но не значение. Доступ к секретам можно получить в шаблонах body/header/URL через пространство имен secrets.
    • Комментарий (comment) — комментарий для этой цели;
    Настройка цели уведомлений Webhook (ntfy.sh)
Пример конфигурации:
  • файл /etc/pve/notifications.cfg:
    webhook: ntfy
    	body e3sgbWVzc2FnZSB9fQ== # Закодированный {{ message }}
    	comment Отправка PUSH уведомлений
    	method post
    	url https://ntfy.sh/pve_backup_job_186
    
  • файл /etc/pve/priv/notifications.cfg:
    webhook: ntfy
    	secret name=channel,value=MTIzNDU2NDg3OA==
    

Примечание

Значения body и secret.value должны быть закодированы в base64.
Закодировать строку в base64 можно, выполнив команду:
$ echo -n 'pve_backup_job_186' | base64 -w 0
cHZlX2JhY2t1cF9qb2JfMTg2
Доступные переменные в шаблонах:
  • {{ title }} — заголовок уведомления;
  • {{ message }} — тело уведомления;
  • {{ severity }} — уровень серьёзности (info, notice, warning, error, unknown);
  • {{ timestamp }} — временная метка в виде эпохи UNIX (в секундах);
  • {{ fields.<name> }} — метаданные (например, fields.type содержит тип уведомления);
  • {{ secrets.<name> }} — секреты (например, секретный именованный токен доступен через secrets.token).
Для удобства доступны следующие помощники:
  • {{ url-encode <value/property> }} — URL-кодирование свойства/литерала;
  • {{ escape <value/property> }} — экранирование управляющих символов, которые не могут быть безопасно представлены как строка JSON;
  • {{ json <value/property> }} — преобразование в JSON. Может быть полезно для передачи целого подпространства имен (например, полей) как части полезной нагрузки JSON (например, {{ json fields }}).

Примечание

Цели Webhook учитывают настройки HTTP-прокси из раздела Центр обработки данных → Параметры → Прокси HTTP.