Product SiteDocumentation Site

57.11.2. Триггеры уведомлений (Notification Matchers)

Триггеры уведомлений направляют уведомления к целям уведомлений на основе правил сопоставления. Эти правила могут соответствовать определенным свойствам уведомления, таким как временная метка (match-calendar), серьезность уведомления (match-severity) или поля метаданных (match-field). Если уведомление сопоставлено триггером, все цели, настроенные для сопоставления, получат уведомление.
Можно создать произвольное количество триггеров, каждый со своими собственными правилами сопоставления и целями для уведомления. Каждая цель уведомляется не более одного раза для каждого уведомления, даже если цель используется в нескольких триггерах.
Триггер без правил соответствует любому уведомлению (настроенные цели всегда будут уведомлены):
matcher: always-matches
    comment Это сопоставление всегда срабатывает
    mode all
    target mail-to-root

57.11.2.1. Правила сопоставления календаря (match-calendar)

Сопоставитель календаря соответствует временной метке уведомления.
Опция match-calendar использует специальный синтаксис для определения временных интервалов, в которые уведомления должны быть активны.
Примеры:
  • match-calendar 8-12 — каждый день с 8 до 12 часов;
  • match-calendar 8:00-15:30 — каждый день с 8 часов до 15:30;
  • match-calendar mon..fri 9:00-17:00 — каждый будний день с 9 до 17 часов;
  • match-calendar sun,tue..wed,fri 9-17 — в воскресенье вторник, среду и пятницу с 9 до 17 часов.

57.11.2.2. Правила сопоставления полей (match-field)

Опция match-field используется для фильтрации уведомлений на основе определённых полей в сообщениях о событиях.
Если при сопоставлении используется exact, в качестве разделителя можно использовать запятую. Правило сопоставления срабатывает, если поле метаданных имеет любое из указанных значений.
Примеры:
  • match-field exact:type=gc — только уведомления для заданий по сбору мусора;
  • match-field exact:type=prune,verify — уведомления о заданиях prune и проверках;
  • match-field regex:datastore=^backup-.*$ — уведомления для любого хранилища данных, имя которого начинается с backup.
Если уведомление не имеет сопоставленного поля, правило не будет соответствовать. Например, директива match-field regex:datastore=.* будет соответствовать любому уведомлению, имеющему поле метаданных datastore, но не будет соответствовать, если поле не существует.

57.11.2.3. Правила сопоставления серьезности (match-severity)

Опция match-severity используется для фильтрации уведомлений на основе уровня серьёзности (severity) события. Поддерживаются следующие уровни серьезности: info, notification, warning, error, unknown.
Примеры:
  • match-severity error — только ошибки;
  • match-severity warning,error — предупреждения и ошибки.

57.11.2.4. События уведомления

В таблице Список событий уведомлений приведен список всех событий уведомлений в PBS, их тип, серьезность и дополнительные поля метаданных. Тип, а также любое поле метаданных могут использоваться в правилах сопоставления.

Таблица 57.2. Список событий уведомлений

Событие
Тип
Серьезность
Поля метаданных (в дополнение к типу)
Обновление сертификата ACME не удалось
acme
error
hostname
Сбой сбора мусора
gc
error
datastore, hostname
Успешный сбор мусора
gc
info
datastore, hostname
Доступны обновления пакетов
package-updates
info
hostname
Ошибка задания Prune
prune
error
datastore, hostname, job-id
Успешное выполнение задания Prune
prune
info
datastore, hostname, job-id
Ошибка удаленной синхронизации
sync
error
datastore, hostname, job-id
Удаленная синхронизация выполнена успешно
sync
info
datastore, hostname, job-id
Почта для root
system-mail
unknown
hostname
Ошибка задания резервного копирования на ленту
tape-backup
error
datastore, hostname, media-pool, job-id
Успешное выполнение задания резервного копирования на ленту
tape-backup
info
datastore, hostname, media-pool, job-id
Запрос на загрузку ленты
tape-load
notice
hostname
Ошибка задания проверки
verify
error
datastore, hostname, job-id
Успешное выполнение задания проверки
verify
info
datastore, hostname, job-id
В таблице Описание полей метаданных содержится описание полей метаданных. Все они могут использоваться в правилах сопоставления полей.

Таблица 57.3. Описание полей метаданных

Поле метаданных
Описание
datastore
Имя хранилища данных
hostname
Имя хоста сервера резервного копирования
job-id
Идентификатор задания
media-pool
Имя пула ленточных носителей
type
Тип события уведомления
Примеры (/etc/proxmox-backup/notifications.cfg):
  • уведомлять администраторов в рабочее время:
    matcher: workday
            match-calendar mon..fri 9-17
            target admin
            comment Notify admins during working hours
    
  • уведомлять администраторов в нерабочие часы:
    matcher: night-and-weekend
            match-calendar mon..fri 9-17
            invert-match true
            target on-call-admins
            comment Separate target for non-working hours
    
  • при ошибках хранилища zfs, отправлять уведомления в рабочие часы на цель smtp:
    matcher: zfs-error
            match-calendar mon..fri 8-17
            match-field exact:datastore=zfs
            match-severity error
            mode all
            target smtp
    

57.11.2.5. Создание триггера уведомлений

Для создания правила сопоставления необходимо выполнить следующие шаги:
  1. В разделе КонфигурацияNotificationsNotifications Matchers нажать кнопку Добавить.
  2. В открывшемся окне на вкладке Общее в поле Matcher Name указать название триггера:
    Создание триггера уведомления
  3. На вкладке Match Rules настроить правила сопоставлений:
    Создание триггера уведомления. Правила сопоставлений
  4. На вкладке Targets to notify выбрать цели для уведомления:
    Создание триггера уведомления. Выбор целей
Пример создания триггера уведомлений в командной строке:
# proxmox-backup-manager notification matcher create workday \
--mode all --match-calendar "mon..fri 8-17" --match-severity "error" \
--match-field "exact:datastore=zfs" --target sendmails-admin