Оповещения об ошибках на почту, по СМС и в мессенджеры

Что делает модуль

Модуль «Оповещения об ошибках на почту, по СМС и в мессенджеры» подключается к штатному обработчику исключений Bitrix и присылает администратору уведомление о необработанных ошибках — по почте или через SMS/мессенджер, — используя уже настроенные на сайте почтовые события и SMS-провайдер.

Модуль не подменяет системный лог ошибок Bitrix, а дополняет его: регистрируется как ещё один обработчик и при каждом необработанном исключении или критической ошибке формирует и отправляет уведомление через стандартные события Bitrix (CEvent, SMS-событие модуля messageservice). Сам модуль писем не рассылает — он лишь инициирует штатное событие, поэтому канал доставки полностью зависит от того, что уже настроено на сайте: почтовый шаблон, SMS-шлюз, интеграция с мессенджером через messageservice.

Если у вас истекла лицензия Битрикса, то можете скачать модуль с github

Возможности
  • Уведомления по email и SMS/мессенджерам — два независимых события (почтовое и SMS), каждое можно включать, выключать и настраивать отдельно, стандартными средствами Bitrix.
  • Группировка одинаковых ошибок — повторяющиеся ошибки не заваливают почту дублями, а копятся в очереди и раз в заданный интервал (по умолчанию — раз в час) отправляются одним письмом со счётчиком повторений. Одинаковыми считаются ошибки, совпадающие по классу, тексту, коду, файлу, строке, типу и источнику, — поэтому одна и та же ошибка из разных модулей не сливается в одну запись.
  • Приоритет для критичных ошибок — fatal error и необработанные исключения можно настроить отправлять мгновенно, даже при включённой группировке, чтобы администратор не ждал конца интервала, узнав о падении сайта. Управляется отдельной галочкой в настройках, включена по умолчанию.
  • API для собственного кода — метод Rover\Notifier\Notifier::report() позволяет отправлять произвольные сообщения (не только пойманные исключения) из кода сайта или других модулей через ту же инфраструктуру письма/SMS — удобно для «ручных» уведомлений вроде «не прошла оплата заказа». К сообщению можно приложить любые дополнительные поля, они будут доступны в шаблоне как плейсхолдеры. Такие сообщения подчиняются общим настройкам модуля: не отправляются при выключенном перехвате и участвуют в группировке наравне с перехваченными ошибками.
  • Понятно, кто виноват — в уведомлении указывается источник ошибки: ядро, конкретный модуль (по его идентификатору, например rover.amosale) или код сайта. Модуль определяет это сам, по месту возникновения ошибки, — подписывать сообщения вручную не нужно. Рядом выводится тип ошибки в читаемом виде (FATAL, UNCAUGHT_EXCEPTION и т.д.), а не служебный числовой код.
  • Настраиваемый интервал группировки — регулируется из административной панели модуля, без правки кода.
  • Готов к работе сразу после установки — автоматически создаются почтовый и SMS-типы событий и оба шаблона с готовым набором плейсхолдеров (текст ошибки, источник, тип, код, файл, строка, стек, счётчик повторов). Письма начинают приходить сразу после включения модуля; SMS-шаблон создаётся выключенным — нужно указать получателя и включить его. Для реальной доставки в Telegram/WhatsApp/MAX помимо получателя нужен установленный штатный модуль «Сервис уведомлений» с подходящим коннектором-отправителем.
  • Корректное удаление — при деинсталляции модуль аккуратно убирает себя из конфигурации обработчика исключений, удаляет агент, таблицу очереди и (по желанию) созданные события/шаблоны, либо оставляет их, если отмечена соответствующая опция.
Особенности, на которые стоит обратить внимание
  • Модуль никогда не прерывает основной обработчик исключений: любая ошибка на стороне самого решения (недоступна БД, не настроен SMS-шаблон и т.п.) перехватывается и гасится внутри модуля — сайт продолжает работать штатно.
  • Защита от повторного вызова обработчика в рамках одного запроса для избегания дублирования отправки.
  • Очередь группировки хранится в отдельной таблице через ORM Bitrix, агент разбирает её по расписанию и чистит за собой.
  • Дополнительные поля, переданные из кода вместе с сообщением, переживают очередь группировки и доходят до шаблона в сводном уведомлении — в письме не остаётся нераскрытых плейсхолдеров.
  • При отключении группировки все накопленные сообщения об ошибках немедленно отправляются.
  • Модуль не создаёт собственную инфраструктуру доставки сообщений — использует ту, что уже есть на проекте, поэтому не конфликтует с существующими интеграциями и легко встраивается в проекты любого масштаба.
  • Приоритизация ошибок использует штатные константы обработчика исключений Bitrix (FATAL, UNCAUGHT_EXCEPTION) — отдельной системы приоритетов изобретать не пришлось, всё завязано на то, что уже даёт ядро.
  • Административная панель отражает реальное состояние в моменте: сколько сообщений сейчас ждут отправки в очереди (со ссылкой на саму таблицу) и когда сработает следующий запуск агента группировки — не нужно лезть в БД, чтобы понять, что происходит.
Кому подойдёт

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

  • Ссылка https://marketplace.1c-bitrix.ru/solutions/rover.notifier/
  • Кэшбэк на внутренний счет, % 0
  • Вид поставки Коробка
  • Обновления Да
  • Срок действия лицензии 1 год
  • Категория Модуль для 1С-Битрикс
Модуль устанавливается стандартно. После установки откроется страница результата установки с кнопкой «Перейти к настройкам модуля» — нажмите её.

Страница настроек также доступна в административной части по адресу: Настройки → Настройки продукта → Настройки модулей → «Оповещения об ошибках на почту, по СМС и в мессенджеры».

На странице настроек:
  1. «Перехват ошибок включён» — включает перехват ошибок сайта. После включения и сохранения на email администратора (email сайта по умолчанию) уже будут приходить письма об ошибках без дополнительной настройки.
  2. «Группировать одинаковые ошибки» — если включить, повторяющиеся ошибки не отправляются каждая отдельным письмом, а копятся и раз в заданный интервал отправляются одним уведомлением со счётчиком повторов. Рядом с настройкой отображается количество ошибок в очереди (ссылка на служебную таблицу) и время следующей отправки.
  3. «Интервал отправки группы, сек (например, 3600 = раз в час)» — периодичность отправки накопленной группы ошибок. Поле активно только при включённой группировке.
  4. «Критичные ошибки (Fatal error / необработанное исключение) отправлять сразу, минуя группировку» — включено по умолчанию: даже при включённой группировке фатальные ошибки и необработанные исключения отправляются немедленно, не дожидаясь интервала.
После изменения настроек нажмите «Сохранить» или «Применить».

Для доставки уведомлений в SMS или в Telegram/WhatsApp/MAX необходим установленный модуль «Сервис уведомлений» (messageservice) с подходящим коннектором-отправителем.

Чтобы настроить отправку SMS или сообщений в мессенджер, перейдите по ссылке на SMS-шаблон для события «ROVER_NOTIFIER_ERROR_SMS» (ссылка расположена под настройками на этой же странице), откройте шаблон и укажите телефон или chat_id получателя вместо значения по умолчанию «+7XXXXXXXXXX», затем включите шаблон. Для отправки через Telegram/WhatsApp/MAX дополнительно настройте соответствующий коннектор-отправитель в модуле «Сервис уведомлений» (messageservice).

Почтовый шаблон события «ROVER_NOTIFIER_ERROR» находится в разделе Настройки → Настройки продукта → Почтовые и СМС события → Почтовые шаблоны (или по ссылке под настройками модуля). В этом шаблоне при необходимости можно изменить получателя письма (по умолчанию — email сайта) и текст уведомления.

Что попадает в уведомление

Шаблоны письма и SMS создаются при установке и содержат готовый набор плейсхолдеров, которые можно свободно переставлять и убирать:

  • #MESSAGE# — текст ошибки;
  • #SOURCE# — кто прислал: «Ядро», идентификатор модуля или «Код сайта» (определяется автоматически);
  • #LOG_TYPE# — что случилось: тип ошибки по классификации Bitrix (FATAL, UNCAUGHT_EXCEPTION, CAUGHT_EXCEPTION и т.д.);
  • #CODE# — код исключения;
  • #FILE#, #LINE# — файл и строка;
  • #TRACE# — стек вызовов;
  • #COUNT# — сколько раз ошибка повторилась (при включённой группировке);
  • #HOST#, #DATE# — хост сайта и время.

Незаполненные поля (например, у сообщения, отправленного из кода без деталей) подставляются как «не указано» — в письме не остаётся пустых мест и нераскрытых плейсхолдеров. Любые дополнительные поля, переданные из кода через Notifier::report(), тоже доступны в шаблоне как плейсхолдеры.

Типы событий ROVER_NOTIFIER_ERROR и ROVER_NOTIFIER_ERROR_SMS расположены в разделе Настройки → Настройки продукта → Почтовые и СМС события → Типы событий (или по ссылкам под настройками модуля).

Системные требования

  • Любая редакция «Битрикс: Управление сайтом» или «Битрикс24» в коробке.
  • PHP 8.2 и выше.
  • Для отправки email — ничего дополнительно не нужно, используется штатный CEvent и уже настроенный на сайте почтовый транспорт.
  • Для отправки SMS или в мессенджер (Telegram/WhatsApp/MAX и т.п.) — модуль messageservice с настроенным провайдером; без него включена и работает только почта, ошибок это не вызывает.
  • Агент группировки использует стандартный агентский механизм «Битрикс» — отдельный крон настраивать не нужно.
Оповещения об ошибках на почту, по СМС и в мессенджеры
Бесплатно
1С-Битрикс: Старт — лицензия 1С-Битрикс
-20%
Подарок

1С-Битрикс: Старт

7 100 ₽   5 680 ₽
Тип
  • Новый
  • Продление
1С-Битрикс: Стандарт — лицензия 1С-Битрикс
-20%
Кешбек 30%
Подарок

1С-Битрикс: Стандарт

20 500 ₽   16 400 ₽
Тип
  • Новый
  • Продление
1С-Битрикс: Малый бизнес — лицензия 1С-Битрикс
-20%
Лидер продаж
Кешбек 30%
Подарок

1С-Битрикс: Малый бизнес

47 000 ₽   37 600 ₽
Тип
  • Новый
  • Продление
1С-Битрикс: Бизнес — лицензия 1С-Битрикс
-20%
Кешбек 30%
Подарок

1С-Битрикс: Бизнес

96 500 ₽   77 200 ₽
Тип
  • Новый
  • Продление