Настройка оповещений о сбоях 1С-Битрикс
Сайт на Битрикс падает, а вы узнаёте об этом от клиента, который не смог оформить заказ. Типичная ситуация: ошибка 500 висит три часа, пока менеджер случайно не зайдёт на сайт. Штатный мониторинг Битрикс через модуль monitoring доступен только в редакциях «Бизнес» и выше, и даже он не покрывает все сценарии. Разберём, как выстроить систему оповещений, которая реагирует на сбои за секунды, а не часы.
Что именно мониторить
Минимальный набор точек контроля:
-
HTTP-статус главной и критичных страниц — каталог, корзина, оформление заказа. Если
/catalog/отдаёт 200, а/personal/order/make/— 500, общий healthcheck по главной ничего не покажет. -
Работоспособность cron — агенты Битрикс (
/bitrix/modules/main/tools/cron_events.php) должны исполняться регулярно. Проверяется по дате последнего успешного запуска в таблицеb_agent. - Доступность MySQL/MariaDB — проверяйте не просто коннект, а выполнение тестового SELECT. Битрикс при потере соединения с БД показывает белый экран без логирования.
-
Свободное место на диске — при заполнении
/tmpили раздела сupload/сайт начинает сыпать ошибками записи сессий и кэша. -
Размер error.log — резкий рост файла
/var/log/php-fpm/error.logили/bitrix/modules/main/tools/log.txtсигнализирует о проблеме раньше, чем она станет видна пользователям.
Штатные средства Битрикс
Модуль monitoring (если доступен) настраивается в Настройки → Мониторинг. Он умеет проверять доступность сайта по HTTP, отслеживать агентов и отправлять email-уведомления. Ограничения: работает только при живом PHP, не проверяет внешние зависимости, не интегрируется с мессенджерами без доработки.
Более полезен Журнал событий (b_event_log). Через API CEventLog::Add() можно логировать кастомные события, а через фильтры в админке — настроить уведомления на определённые severity.
Внешний мониторинг — основной канал
Надёжная схема строится на внешнем сервисе, который опрашивает сайт извне. Рабочие варианты:
| Инструмент | Что проверяет | Каналы оповещения |
|---|---|---|
| UptimeRobot (бесплатно) | HTTP-статус, keyword check | Email, Telegram, Slack, webhook |
| Healthchecks.io | Cron-задачи (dead man's switch) | Email, Telegram, PagerDuty |
| Zabbix / Prometheus + Alertmanager | Всё: HTTP, диск, CPU, логи | Любые через интеграции |
Для малых проектов хватает UptimeRobot с проверкой каждые 5 минут + Healthchecks.io для cron. Для средних и крупных — Prometheus с blackbox_exporter для HTTP-проб и node_exporter для серверных метрик.
Реализация endpoint для healthcheck
Создайте файл /healthcheck.php в корне сайта, который проверяет ключевые подсистемы:
- Подключение к БД через
$DB->Query("SELECT 1") - Доступность memcached/redis через
CBitrixCache - Запись во временную директорию
- Наличие лицензионного ключа (проверка
CModule::IncludeModule('main'))
Если все проверки пройдены — отдавайте HTTP 200 с телом OK. Любой сбой — HTTP 503. Внешний мониторинг дёргает этот endpoint и реагирует на не-200 статус.
Оповещения в Telegram
Для Битрикс24 есть штатная интеграция с вебхуками. Для сайтов на 1С-Битрикс проще всего отправлять алерты через Telegram Bot API напрямую из обработчика ошибок. В init.php регистрируется кастомный обработчик через set_exception_handler(), который при критических ошибках отправляет POST-запрос на api.telegram.org/bot{TOKEN}/sendMessage.
Не отправляйте каждую ошибку — используйте throttling: не чаще одного сообщения в 5 минут на один тип ошибки. Иначе при массовом сбое Telegram заблокирует бота за спам.







