Что умеет решение
Модуль Rover Notifier интегрируется со стандартным обработчиком исключений Bitrix для отправки уведомлений администратору о необработанных ошибках и критических сбоях (fatal error). Уведомления доставляются по электронной почте, через SMS или в мессенджеры, используя уже настроенные на сайте почтовые события и провайдер SMS-сообщений. Предоставленный механизм доступен для использования в пользовательском коде: из модуля или скрипта можно инициировать отправку собственных оповещений в выбранный канал связи.
Модуль не заменяет системный лог ошибок Bitrix, а дополняет его, регистрируясь как дополнительный обработчик в параметре exception_handling.value.log. При возникновении необработанного исключения или критической ошибки формируется и отправляется уведомление через стандартные события Bitrix, включая CEvent и SMS-событие модуля messageservice. Сам модуль не рассылает письма напрямую; он лишь инициирует штатное событие, поэтому канал доставки полностью зависит от существующей конфигурации сайта: почтового шаблона, SMS-шлюза или интеграции с мессенджером через модуль messageservice.
Модуль Rover Notifier обеспечивает отправку уведомлений об ошибках через email, SMS и мессенджеры. Уведомления по электронной почте и по SMS/мессенджерам реализованы как два независимых события, которые можно включать, отключать и настраивать отдельно стандартными средствами Bitrix. Доставка в Telegram, WhatsApp и MAX через событие SMS настраивается в зависимости от установленных коннекторов модуля «Сервис уведомлений».
Система группирует повторяющиеся ошибки, чтобы не засорять почтовый ящик дубликатами. Ошибки накапливаются в очереди и отправляются одним письмом с указанием количества повторений через заданный интервал (по умолчанию — раз в час). Ошибки считаются одинаковыми при совпадении класса, текста, кода, имени файла, номера строки, типа, источника и набора дополнительных полей. Ошибка из одного модуля не объединяется с ошибкой из другого, даже если они идентичны.
Критические ошибки, такие как Fatal error и необработанные исключения, отправляются немедленно без задержки и без группировки, даже если для остальных ошибок она включена. Такие письма проходят мимо почтовой очереди, что гарантирует их доставку даже при остановленном кроне, обрабатывающем очередь, что часто происходит во время аварий.
Интервал группировки ошибок настраивается в административной панели модуля без необходимости изменения кода.
В уведомлениях чётко указывается источник ошибки: ядро, конкретный модуль (по его идентификатору) или код сайта. Модуль определяет место возникновения сбоя автоматически.
Отображается понятный тип ошибки в читаемом виде (FATAL, UNCAUGHT_EXCEPTION и другие), а не служебный числовой код.
Модуль готов к работе сразу после установки. В процессе инсталляции автоматически создаются почтовые и SMS-типы событий, а также шаблоны с готовым набором плейсхолдеров: текст ошибки, источник, тип, имя файла, номер строки, стек вызовов и счётчик повторов. Пользователю остаётся настроить только получателя SMS.
Предоставлен публичный API для разработчиков: метод Rover\Notifier\Notifier::report() позволяет отправлять произвольные сообщения или исключения из кода сайта и других модулей через те же каналы. Можно добавлять любые дополнительные поля для шаблона. Такие сообщения подчиняются общим настройкам модуля и участвуют в группировке наравне с перехваченными ошибками.
Отдельная настройка позволяет использовать модуль как транспорт для собственных оповещений даже при отключённом перехвате ошибок сайта. Это удобно, если нужен только свой канал уведомлений, а критические ошибки чужого кода не требуются.
Модуль Rover Notifier отправляет уведомления об ошибках на почту, по СМС и в мессенджеры. В контексте вызова можно указать собственный почтовый и СМС-событие, а также идентификатор сайта (EVENT_NAME, SMS_EVENT_NAME, SITE_ID). Уведомления модуля используют свой шаблон и своих адресатов, не смешиваясь с ошибками основного сайта. Ключ IMMEDIATE отправляет сообщение немедленно; он требуется коду, который уже сгруппировал данные и сформировал готовую сводку.
При деинсталляции модуль корректно удаляет себя из конфигурации обработчика исключений, удаляет агент, таблицу очереди и, по желанию администратора, созданные события и шаблоны. Если соответствующая опция не выбрана, эти элементы сохраняются.
Важная инженерная особенность: модуль никогда не прерывает основной обработчик исключений. Любая ошибка на стороне самого Rover Notifier (например, недоступность базы данных или отсутствие настроек СМС-шаблона) перехватывается и гасится внутри модуля. Сайт продолжает работать в штатном режиме, как будто уведомитель не установлен.
Обработчик ошибок защищён от повторного входа. При подключении модуль обращается к базе данных и управляемому кэшу, что в случае их недоступности может вызвать новую ошибку и привести к рекурсивному вызову самого обработчика. Блокировка повторного входа осуществляется с помощью флага, при этом запись в файловый лог выполняется всегда, так как для неё не требуются ни база данных, ни кэш.
Очередь группировки сообщений хранится в отдельной таблице через ORM Bitrix. Агент обрабатывает её по расписанию и очищает после завершения работы. Дополнительные поля, передаваемые из кода вместе с сообщением, сохраняются в очереди и доходят до шаблона сводного уведомления.
Тип ошибки определяется по штатной классификации обработчика исключений Bitrix, а не по собственной системе приоритетов. Поэтому уровень «критичности» соответствует тому же значению, что и в самой платформе.
Модуль не создаёт собственную инфраструктуру доставки сообщений, а использует существующие на проекте каналы. Это исключает конфликты с текущими интеграциями и позволяет легко внедрять решение в проекты любого масштаба.
Модуль Rover Notifier предназначен для разработчиков и агентств, сопровождающих коммерческие проекты, где важно получать уведомления о фатальных ошибках до того, как о них сообщит клиент. Решение исключает риск массовых дублирующихся писем при сбоях и не требует изменения исходного кода сайта после установки.
Для авторов собственных модулей и интеграций инструмент выступает готовым транспортным каналом оповещений: не требуется создавать собственные события, очереди или механизмы группировки, достаточно выполнить один вызов из кода.
Требования к среде:
Система «1С-Битрикс: Управление сайтом» с активным модулем main. Дополнительные лицензии на другие модули ядра не требуются.
Версия PHP 8.2 и выше.
Настройка каналов доставки:
Для отправки уведомлений по электронной почте дополнительные компоненты не нужны; используется стандартный механизм CEvent и уже настроенный почтовый транспорт сайта.
Для отправки SMS или сообщений в мессенджеры (Telegram, WhatsApp, MAX и другие) необходим модуль «Сервис уведомлений» (messageservice) с подключенным провайдером. При отсутствии этого модуля система корректно работает только в режиме отправки по почте, ошибок не возникает.
Механизм группировки:
Группировка уведомлений осуществляется через стандартный агентский механизм платформы «Битрикс». Настройка отдельного крона не требуется.
«Оповещения об ошибках на почту, по СМС и в мессенджеры» можно подключить с помощью General iT: установить модуль, настроить его и убедиться, что интеграция работает корректно.