Моніторинг інтеграцій Бітрікс24
Інтеграції — найвразливіше місце будь-якої екосистеми на базі Бітрікс24. Зламався REST-вебхук з 1С, перестав працювати конектор телефонії, помер імпорт лідів із рекламних кабінетів — бізнес не помічає це миттєво. Проходить кілька годин або днів, перш ніж хтось натикається на симптом: «куди поділися заявки?», «чому оплати не відображаються в CRM?».
Моніторинг інтеграцій — це система раннього попередження, яка повідомляє про відмову раніше, ніж її помітять користувачі.
Що потрібно моніторити
Кожну інтеграцію можна розкласти на три рівні перевірок:
Рівень доступності: чи працює канал передачі даних? (REST endpoint відповідає, вебхук приймає запити, черга повідомлень не переповнена)
Рівень коректності: дані передаються без помилок? (немає failed-записів у логах, значення полів відповідають очікуваним типам)
Рівень актуальності: дані передаються вчасно? (остання синхронізація була не більше X хвилин тому, лічильник нових записів зростає)
Третій рівень часто ігнорують, і даремно. Інтеграція може «працювати» технічно, але дані надходити із 6-годинним запізненням через зависле cron-завдання.
Вбудовані інструменти Бітрікс24
Журнал подій: Налаштування → Журнал подій — тут фіксуються помилки REST API, збої вебхуків, проблеми з модулями. Не найзручніший інтерфейс, але інформативний.
Статус черги вебхуків: в On-Premise можна переглянути через таблицю b_event_message_exec — накопичення необроблених подій свідчить про проблему.
REST API лог: за наявності застосунків на marketplace логи запитів доступні через Застосунки → [застосунок] → Логи.
Зовнішній моніторинг через ping-інтеграції
Найнадійніший моніторинг — коли сама інтеграція періодично «пінгує» систему моніторингу і повідомляє «я живий». Схема через Healthchecks.io (або аналог):
// У скрипті інтеграції (наприклад, імпорт лідів із реклами)
function syncLeadsFromAds() {
try {
$leads = fetchLeadsFromFacebook();
foreach ($leads as $lead) {
CRest::call('crm.lead.add', $lead);
}
// Сигнал "все добре" у систему моніторингу
file_get_contents('https://hc-ping.com/your-uuid');
} catch (Exception $e) {
// Сигнал про помилку
file_get_contents('https://hc-ping.com/your-uuid/fail');
logError($e->getMessage());
}
}
Healthchecks.io надсилає сповіщення, якщо сигнал не надійшов у очікуваний час. Це ловить «тихі» відмови — коли скрипт просто перестає запускатися.
Моніторинг REST API Бітрікс24
Бітрікс24 має ліміти REST API: у хмарі — 2 запити/секунду, ліміт batch-запитів. При перевищенні повертається QUERY_LIMIT_EXCEEDED. Моніторте:
// Перевірка поточного ліміту через REST
$response = CRest::call('app.info');
// Відповідь містить REQUESTS_LEFT і TIME_RESET
$requestsLeft = $response['result']['REQUESTS_LEFT'];
if ($requestsLeft < 100) {
sendAlert("Критично мало REST запитів: $requestsLeft");
}
Для On-Premise ліміти налаштовуються в /bitrix/admin/settings.php і значно вищі, але при інтенсивних інтеграціях все одно варто моніторити чергу.
Дашборд стану інтеграцій
Створіть внутрішню сторінку-дашборд зі статусом усіх інтеграцій. Мінімальний набір:
| Інтеграція | Остання синхронізація | Статус | Записів за 24г |
|---|---|---|---|
| 1С → CRM (оплати) | 5 хв тому | OK | 142 |
| Facebook Leads | 2 години тому | WARN | 0 |
| Телефонія (Mango) | 1 хв тому | OK | 89 дзвінків |
| Сайт (веб-форми) | 3 хв тому | OK | 23 ліди |
Будується на базі таблиці b_option (де зберігаються часові мітки останньої синхронізації) або окремої БД моніторингу.
Налаштуйте алерти в месенджер (Telegram-бот, Slack) — email читають рідко, у месенджер реагують одразу. Для критичних інтеграцій (платежі, ліди з реклами) SLA реакції на алерт — не більше 15 хвилин у робочий час.







