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