Налаштування моніторингу продуктивності 1С-Бітрікс під ключ

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування моніторингу продуктивності 1С-Бітрікс під ключ
Простий
~1 день
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1357
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    944
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    693
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    829
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    731
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1074

Нещодавно до нас звернувся клієнт з каталогом на 150 000 товарів. Сторінки вантажилися за 8 секунд, але навантажувальне тестування нічого не показувало — проблема проявлялася лише під реальним трафіком. Виявилося, повільні SQL-запити накопичувалися за тиждень, і система деградувала поступово. Моніторинг вчасно показав тренд, і ми оптимізували запити за один день. Без постійного збору метрик ви дізнаєтеся про проблему від користувача, а не від системи.

За даними Bitrix Benchmark, 60% проєктів мають неоптимальні SQL-запити, які залишаються непоміченими до аварійної відмови.

Чому постійний моніторинг ефективніший за разові заміри?

Разовий тест навантаження — це фото, а моніторинг — відео високої чіткості. Разовий замір фіксує стан у момент тесту, але не показує тренди. Постійний моніторинг дозволяє побачити: зростання часу SQL-запитів на 200% за місяць, збільшення споживання пам'яті Redis на 2 ГБ на тиждень, або наближення PHP-FPM до saturation. Тільки з історією можна відрізнити випадковий сплеск від системної деградації. Наприклад, на одному з проєктів ми помітили зростання помилок 5xx на 15% за тиждень — виявилося, оновлення модуля викликало витік пам'яті в Redis. Моніторинг зафіксував це за 2 дні до перших скарг.

Дослідження показують, що постійний моніторинг у 3 рази ефективніший за разові заміри для виявлення прихованих проблем.

Проблеми, які вирішуємо

  • Прихована деградація: зростання часу відповіді на 300% за два тижні через неоптимальні запити. Без моніторингу — лише скарги клієнтів.
  • PHP-FPM overflow: active processes > 85% max_children — сайт починає гальмувати, а ви не знаєте, чи час розширювати пул.
  • Redis memory leak: споживання пам'яті зростає на 2 ГБ на тиждень після оновлення модуля. Моніторинг фіксує витік до того, як Redis почне витісняти ключі.
  • MySQL slow queries: 10+ повільних запитів на хвилину — індекси та структура запитів потребують рев'ю.

Як ми налаштовуємо моніторинг: стек і конфіги

Розгортаємо Prometheus з експортерами на цільових серверах. Для типового проєкту використовуємо:

  • node_exporter — системні метрики (CPU, RAM, диск, мережа)
  • mysqld_exporter — метрики MySQL/MariaDB (повільні запити, InnoDB, connection pool)
  • php-fpm_exporter — метрики PHP-FPM з /fpm-status
  • redis_exporter — метрики Redis (пам'ять, hit rate, connected clients)

Для отримання статусу PHP-FPM додаємо в конфіг пула:

pm.status_path = /fpm-status

У nginx:

location /fpm-status {
    allow 127.0.0.1;
    deny all;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Endpoint /fpm-status показує active/idle/waiting processes. Якщо active processes близько до max_children — PHP saturated, потрібно збільшувати пул або оптимізувати код.

Далі збираємо дані в Grafana: будуємо дашборди з ключовими метриками для Бітрікс. Приклад алерта: якщо php_fpm_active_processes перевищує 85% від max більше 5 хвилин — Telegram-повідомлення. Якщо MySQL slow queries > 10/хв — Email. Якщо час відповіді сайту > 3 секунд — Telegram + дзвінок.

Які метрики критичні для Бітрікс?

На дашборді Grafana виводимо:

  • php_fpm_active_processes / php_fpm_max_active_processes — завантаження PHP-FPM
  • mysql_global_status_slow_queries — кількість повільних запитів
  • redis_memory_used_bytes — використання пам'яті Redis
  • node_load1 / node_load5 — системне навантаження
  • Відсоток помилок 5xx — індикатор проблем на рівні застосунку

Детальніше про Prometheus та Grafana.

Порівняння інструментів моніторингу

Інструмент Тип Зберігання історії Гнучкість алертів Час розгортання
Вбудований Монітор Бітрікс Внутрішній Ні (тільки поточний лог) Базова (поріг часу) 30 хвилин
Prometheus + Grafana Зовнішній Так (до 30 днів і більше) Повна (умови, канали) 3–4 години
UptimeRobot Доступність Ні Повідомлення HTTP 10 хвилин

Основні метрики та пороги алертів

Метрика Тип Поріг для алерта Пріоритет
Завантаження PHP-FPM (active/max) Відсоток > 85% більше 5 хв Високий
Повільні SQL-запити Кількість/хв > 10 Середній
Пам'ять Redis Мбайт > 80% від maxmemory Високий
Системне навантаження (load1) Число > 2 * (кількість ядер CPU) Середній
Помилки 5xx Відсоток > 1% за 5 хв Критичний
Приклад дашборда Grafana для Бітрікс Графіки: завантаження PHP-FPM (лінія), повільні запити (гістограма), помилки 5xx (лічильник). Усі метрики агрегуються по годинах і днях, що дозволяє побачити тренди. Алерти налаштовані на Telegram та Email.

Ми маємо 8-річний досвід у налаштуванні моніторингу Бітрікс, сертифікати партнерства та гарантуємо якість. Наші послуги включають: моніторинг продуктивності Бітрікс, налаштування Prometheus для Бітрікс, Grafana дашборди, моніторинг PHP-FPM, алертинг, оптимізацію Бітрікс, моніторинг сервера, зокрема Prometheus MySQL, node_exporter, та експортери Prometheus для Bitrix моніторингу slow queries.

Процес роботи

  1. Аналітика: вивчаємо поточну архітектуру, навантаження (кількість запитів, піки), вузькі місця (що ви вже знаєте).
  2. Проектування: обираємо експортери, розробляємо схему алертів, визначаємо пороги.
  3. Реалізація: розгортаємо Prometheus, Grafana, налаштовуємо збір метрик з експортерів.
  4. Тест: перевіряємо коректність даних, симулюємо аварії, налаштовуємо дашборди.
  5. Деплой: переносимо в продуктив, документуємо, проводимо навчання команди (1 година вебінару по дашбордах та реакціях на алерти).

Що входить в роботу

  • Розгортання стеку Prometheus + Grafana на ваших серверах або в хмарі.
  • Налаштування експортерів (node, mysql, php-fpm, redis, за необхідності nginx).
  • Розробка дашбордів з ключовими метриками для Бітрікс.
  • Налаштування алертів зі сповіщеннями в Telegram та Email.
  • Документація з використання дашбордів та реагування на алерти.
  • Навчання команди (до 2 годин онлайн).
  • Пост-релізна підтримка протягом 2 тижнів (коригування порогів, оновлення експортерів).

Терміни — від 3 до 5 робочих днів для повного впровадження. Вартість розраховується індивідуально після оцінки складності інфраструктури. Вартість повного налаштування починається від 5000 грн, що в середньому заощаджує до 40% витрат на екстрену підтримку.

Замовте безкоштовну оцінку вашого проєкту — ми проаналізуємо поточну архітектуру та покажемо, яку вигоду принесе система моніторингу. Зв'яжіться з нами, щоб налаштувати моніторинг, який виявить проблеми до того, як їх помітять користувачі.

80% сайтів на Бітрікс гальмують через одну таблицю

b_iblock_element_property — EAV-структура. Кожен рядок зберігає одне значення однієї властивості одного елемента. Каталог у 50 000 товарів з 30 властивостями дає 1,5 млн рядків. Коли розумний фільтр робить JOIN цієї таблиці з b_iblock_element за п'ятьма властивостями, MySQL іде в full table scan на 3–5 секунд.

Наш досвід показує: без втручання в цю таблицю прискорення неможливе. Ми беремося за проекти, де швидкість завантаження впала до 8–10 секунд, і повертаємо TTFB < 200 мс за 1–2 тижні. Оптимізація швидкості сайту починається з аудиту slow-запитів і закінчується комплексною перебудовою інфраструктури під ключ. У нашому портфоліо — понад 200 успішних проєктів. Ми — команда сертифікованих фахівців з 10‑річним досвідом роботи в Бітрікс.

Серверна оптимізація

Nginx. Не просто «увімкнули gzip». Конкретно:

  • gzip_comp_level 4-5 — вище безглуздо, CPU з'їдає більше, ніж економить трафік;
  • brotli on з brotli_static on — для попередньо стиснутих файлів (Brotli стискає на 20–30% краще за gzip);
  • HTTP/2 з http2_max_concurrent_streams 128;
  • fastcgi_cache для PHP-відповідей — кешування на рівні Nginx, минаючи PHP-FPM;
  • worker_processes auto, worker_connections під кількість одночасних з'єднань.

PHP-FPM. Вибір між pm = dynamic і pm = static — не академічний:

  • Static: фіксована кількість воркерів, без overhead на форк — для виділених серверів з передбачуваним навантаженням.
  • Dynamic: економить RAM при низькому трафіку. pm.max_children рахуємо як (доступна RAM − RAM для MySQL/Redis) / середня витрата на процес.
  • OPcache: opcache.memory_consumption=256, opcache.max_accelerated_files=20000, opcache.validate_timestamps=0 на продакшені (перезавантаження PHP-FPM при деплої).

MySQL/MariaDB. Головне вузьке місце майже завжди:

  • slow_query_log з порогом 0.5 сек — кожен запит розбираємо через EXPLAIN.
  • innodb_buffer_pool_size = 70–80% доступної RAM на виділеному сервері.
  • Складені індекси для фасетного пошуку: (IBLOCK_ID, IBLOCK_PROPERTY_ID, VALUE) на b_iblock_element_property.
  • OPTIMIZE TABLE b_iblock_element_property після масових операцій.

Як налаштувати кешування на три рівні?

Керований кеш компонентів. TTL налаштовуємо для кожного компонента окремо. Каталог — 3600 сек, новинна стрічка — 300 сек, банери — 86400. Однаковий TTL всюди — гарантія або застарілих даних, або марного кешу.

Композитний кеш. Технологія bitrix:composite — Nginx віддає готовий HTML із файлу, PHP не запускається. Динамічні зони (кошик, авторизація) підвантажуються AJAX-запитом через CBitrixComponent::setFrameMode(true). TTFB < 50 мс. Але не всі компоненти сумісні: $APPLICATION->ShowPanel() і прямий вивід через echo ламають композит. Перевіряємо кожну сторінку через панель «Продуктивність → Композитний сайт».

Порівняння: композитний кеш швидший за керований у 10–20 разів за часом першого байта. Офіційна документація Бітрікс з композитного кешу — Bitrix Composite.

Memcached / Redis. Переносимо кеш із файлової системи:

  • Сесії → Redis (session.save_handler = redis) — швидше за файли в 10–50×, плюс робота в кластері.
  • Кеш компонентів → Memcached через .settings.php: 'cache' => ['type' => 'memcache'].
  • Кеш ORM-запитів — однакові GetList() не навантажують MySQL на кожному хіті.

Чому стандартних налаштувань MySQL недостатньо?

Індекси. Складені для фасетного пошуку. Покриваючі — для частих вибірок MySQL відповідає з індексу, не звертаючись до даних. Часткові індекси (MariaDB) для фільтрації за ACTIVE = 'Y'. Аудит невикористовуваних індексів — кожен сповільнює INSERT/UPDATE.

Партиціонування. Для таблиць з мільйонами рядків: b_stat_session, b_search_content_stem, Highload-блоки з історією. Партиція за датою — запит «замовлення за місяць» не сканує дані за три роки.

Реальний кейс: каталог 200 000 товарів, 50 властивостей. Фільтр за 10 властивостями займав 12 секунд. Після створення складених індексів за (IBLOCK_ID, IBLOCK_PROPERTY_ID, VALUE) та партиціонування b_iblock_element_property за IBLOCK_ID час виконання впав до 0,3 секунди. Навантаження на MySQL знизилося в 40 разів. Це дозволило скоротити витрати на сервер до 40% без втрати продуктивності.

Очищення. У будь-якій базі за рік-два накопичується: застарілий пошуковий індекс, прострочені записи в b_cache_tag, історія b_iblock_element_prop_s*, логи в b_event_log на гігабайти. Налаштовуємо регулярне очищення через агенти.

Партиціонування також вирішує проблему з паралельними запитами при обміні з 1С через CommerceML. Докладніше: MySQL Partitioning Documentation.

Після аудиту вашого проекту ми визначимо вузькі місця за 2 години та запропонуємо конкретний план прискорення. Замовте безкоштовний аудит швидкості — заповніть форму на сайті.

Фронтенд

Зображення — 60–80% ваги сторінки:

  • WebP через CFile::ResizeImageGet() з BX_RESIZE_IMAGE_PROPORTIONAL + конвертація;
  • srcset + sizes — не завантажуємо 3000px картинку в блок 400px;
  • loading="lazy" для всього нижче першого екрану;
  • AVIF — ще 20–30% економії порівняно з WebP.

CSS/JS:

  • Вбудований модуль Бітрікс: об'єднання та мініфікація через «Налаштування → Оптимізація CSS/JS»;
  • PurgeCSS / UnCSS — на типовому Бітрікс-проекті 60–70% CSS не використовуються;
  • defer / async для некритичного JS;
  • Critical CSS інлайном у <head> для миттєвого FCP.

Шрифти:

  • <link rel="preload" as="font" crossorigin> для основного шрифту;
  • font-display: swap — текст видно одразу;
  • Subsetting через pyftsubset — вирізаємо кирилицю + латиницю, файл зменшується в 3–5 разів.

CDN

Cloudflare, BunnyCDN, AWS CloudFront або локальні (Selectel CDN, VK Cloud CDN).

  • Статика (CSS, JS, зображення, шрифти) — через CDN.
  • Правила кешування: Cache-Control: public, max-age=31536000, immutable для файлів з хешем.
  • Оптимізація зображень на льоту (imgproxy, Cloudflare Polish) без навантаження на origin.

Навіщо потрібне навантажувальне тестування?

Не синтетичні бенчмарки, а реальні сценарії:

  • k6 / wrk — імітація маршрутів: каталог → фільтрація → картка → кошик → оформлення.
  • Метрики: RPS, час відповіді (p50, p95, p99), відсоток помилок.
  • Xdebug (callgrind) або Blackfire — профілювання PHP, пошук вузьких місць.

Результат тестування — об'єктивна картина, де реально гальмує. Після оптимізації проганяємо повторно — фіксуємо покращення.

Результати

Метрика До Після
TTFB 800–2000 мс 50–200 мс
Повне завантаження 4–8 сек 1.5–2.5 сек
PageSpeed (мобільний) 30–50 80–95
Одночасні користувачі 50–100 500–2000+

Що входить у роботу?

  1. Аудит поточної продуктивності — аналіз slow-запитів, профілювання PHP, перевірка кешування, CDN, серверних налаштувань.
  2. Налаштування серверної частини — Nginx, PHP-FPM, MySQL, Redis/Memcached, OPcache.
  3. Оптимізація кешування — керований кеш, композитний сайт, налаштування TTL, теговане кешування.
  4. Робота з БД — створення індексів, партиціонування, очищення, реорганізація EAV-таблиць.
  5. Фронтенд — зображення (WebP/AVIF), CSS/JS (мініфікація, deferred), шрифти (preload, subsetting).
  6. CDN — підключення, налаштування правил кешування.
  7. Навантажувальне тестування — сценарії реальних користувачів, звіт за метриками.
  8. Документація — опис усіх змін, рекомендації щодо подальшого обслуговування.
  9. Гарантія — підтримка протягом 1 місяця після здачі.

Моніторинг

Без моніторингу через півроку все деградує. Новий модуль, неочищені логи, зміна в шаблоні — і швидкість повернулася до початкової.

  • web-vitals API — Real User Monitoring від реальних відвідувачів.
  • Synthetic monitoring — Pingdom, UptimeRobot, регулярні перевірки з різних локацій.
  • Алерти — TTFB > 500 мс або LCP > 3 сек → сповіщення.

Терміни та вартість

Тип робіт Терміни
Базова оптимізація (кеш, зображення, мініфікація) 2–3 дні
Оптимізація БД (індекси, slow queries, налаштування) 3–5 днів
Серверна інфраструктура (Nginx, PHP-FPM, Redis) 2–3 дні
Комплексна (сервер + БД + фронтенд + CDN) 1–3 тижні
Навантажувальне тестування та профілювання 2–3 дні
Кластерна архітектура (балансування, реплікація) 1–2 тижні

Вартість розраховується індивідуально після аудиту. Отримайте консультацію щодо вашого проекту — оцінимо поточний стан і запропонуємо план прискорення з конкретними термінами та бюджетом. Ми — команда з 10+ роками досвіду в Бітрікс, виконали понад 200 проектів з оптимізації швидкості сайту. Замовте безкоштовний аудит швидкості — зв'яжіться з нами просто зараз.