Розробка модуля аудиту дій користувачів 1С-Бітрікс

Коли інцидент уже стався, відновити картину подій без журналу дій неможливо. Ми розробляємо та впроваджуємо модуль аудиту дій користувачів під ключ: фіксуємо входи, правки та видалення, налаштовуємо зберігання та звіти. Розбір інцидентів прискорюється в рази, а спірні ситуації отримують документальне підтвердження.

Розробка модуля аудиту дій користувачів 1С-Бітрікс

Аудит та код-рев'ю сайту на 1С-БітріксПростий~2-3 дні
Часті запитання

Аудит дій користувачів: де ламається облік у Бітрікс

Штатний журнал подій Бітрікс фіксує факт: модуль, тип операції, час, ID користувача. Але коли на проді «поїхали» ціни в каталозі або зникли права у групи, цього набору недостатньо. У лозі видно, що хтось змінив елемент інфоблоку, — і все.

Що саме було в полі до правки, які ще сутності зачепив той самий сеанс, чи прийшов запит з інтерфейсу чи через API — журнал мовчить. Розбір інциденту перетворюється на археологію: зіставляємо логи веб-сервера, історію версій і свідчення очевидців.

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

Відповісти на питання «хто змінив налаштування і коли» постфактум часто неможливо, а отже, неможливо й довести, що регрес прийшов ззовні, а не з релізу.

Ціна такої прогалини вимірна. Інцидент з цінами на маркетплейсі або з правами на закритий розділ розбирається днями, весь цей час бізнес-процес стоїть або працює некоректно.

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

Ми розбираємо, як це закривається: як розширити аудит дій користувачів так, щоб журнал відповідав на «хто, коли, що було до і що стало після» — без переписування ядра і без втрати продуктивності на високонавантажених проєктах.

Що дає керований аудит: ефект у вимірюваних величинах

Швидкість розбору інциденту

Коли журнал фіксує, хто, що і коли змінив, розбір перестає бути археологією. Замість опитування співробітників і звірки бекапів інженер відкриває лог, фільтрує за об'єктом і бачить ланцюжок: вхід у панель, правка властивості, публікація.

Час розбору типового інциденту скорочується з годин до хвилин — питання «хто зламав сторінку» закривається за фактом, а не за здогадками.

Частка відновлюваних змін

Аудит зберігає не лише факт правки, а й попереднє значення поля: хто і на що його замінив. Це дає точковий відкат — повернути конкретний елемент, не розгортаючи весь бекап бази.

Частка змін, які відновлюються без повного відкату, зростає до більшості типових випадків: контент, ціни, налаштування модулів.

Усунений клас відмов

Окремий клас збоїв — «тиха» правка в обхід регламенту: хтось змінив шаблон або правило знижки, і сайт працює не так, як задумано. З простежуваністю дій такий сценарій перестає бути невидимим: відхилення від очікуваного стану фіксується і потрапляє у звіт. Це не ловить усі помилки, але прибирає цілий пласт відмов, які раніше спливали лише у клієнта.

Контроль прав як наслідок

Коли кожна дія прив'язана до облікового запису, розмежування прав стає перевіряним: видно, у кого доступ ширший, ніж потрібно для ролі, і хто ним користувався.

Це знижує ризик випадкових і навмисних правок з боку підрядників і стажерів — доступ видається за необхідності, а не «про всяк випадок».

Простежуваність для зовнішнього контуру

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

Способи фіксації дій: вбудований журнал, модуль, зовнішній збір

Штатний журнал подій закриває базовий сценарій: фіксує вхід до адміністративної панелі, правки елементів інфоблоків, зміну налаштувань модулів. Цього достатньо, щоб відповісти на питання «хто зламав сторінку», але не на «хто вивантажив базу клієнтів».

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

Власний модуль аудиту перехоплює події на рівні ядра та записує їх в окрему таблицю з власними індексами.

Це дає контроль над складом полів, терміном зберігання та розмежуванням доступу до самих логів, але додає запис до бази на кожну дію — за високої активності адміністраторів навантаження на систему зростає помітно, і це потрібно закладати в архітектуру заздалегідь.

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

Підхід Коли підходить Обмеження
Штатний журнал Невеликий проєкт, базовий контроль правок контенту та налаштувань Обмежена глибина зберігання, частина операцій не фіксується, слабка вибірка за власними критеріями
Власний модуль аудиту Потрібні свої поля, ролі та терміни зберігання всередині продукту Додаткове навантаження на базу, потрібен супровід та оновлення під час апгрейду ядра
Зовнішній збір логів Тривале зберігання, розбір інцидентів, вимоги безпеки Окремий сервіс у підтримці, затримка доставки, потрібен захист каналу передачі

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

Вибір диктують глибина зберігання, допустиме навантаження на систему та те, які дії взагалі потрібно бачити.

Як ми впроваджуємо модуль аудиту: етапи робіт

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

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

  1. Аудит поточного обліку. Збираємо перелік операцій, які потрібно фіксувати: вхід і вихід, правка контенту та налаштувань, робота із замовленнями, зміна прав доступу. Звіряємо з тим, що вже логується, і позначаємо сліпі зони.
  2. Схема подій. Проєктуємо, яка подія в який журнал потрапляє, які поля несе (хто, що, коли, звідки, попереднє та нове значення) і як довго зберігається. Окремо описуємо, що робити з масовими операціями, щоб журнал не розростався.
  3. Налаштування модуля. Підключаємо обробники на потрібні події, налаштовуємо фільтри, права на перегляд журналу та вивантаження. Розмежовуємо доступ так, щоб рядовий співробітник не бачив чужих дій, а адміністратор бачив усе.
  4. Перевірка сценаріїв. Прогоняємо реальні робочі ситуації: редагування сторінки, зміна статусу замовлення, зміна ролей, невдалий вхід. Переконуємося, що кожна дія залишає запис із коректними даними.
  5. Навантажувальна перевірка. Дивимося, як журнал поводиться при піковій активності, і за потреби вмикаємо архівацію старих записів.
  6. Передача регламенту. Віддаємо команді інструкцію: як читати журнал, які події вважати підозрілими, як вивантажувати дані для розбору.
  7. Супровід. Після запуску спостерігаємо за роботою модуля і коригуємо правила фіксації, якщо з'являються нові сценарії.

Такий порядок дає передбачуваний результат: журнал наповнюється потрібними подіями, не гальмує систему і залишається читабельним для тих, хто буде по ньому працювати.

Що залишається у вас після впровадження: конфігурації та регламенти

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

  • Конфігурація модуля — робочий набір правил: які події записуються, глибина зберігання журналу, перелік об'єктів, за якими ведеться спостереження, пороги спрацювання повідомлень.
  • Схема подій — карта: яка дія користувача породжує який запис, де вона зберігається і як пов'язана з об'єктом системи. За нею новий інженер розбирається за годину, а не за тиждень.
  • Політики доступу — хто зі співробітників бачить журнал, хто може вивантажувати дані, хто налаштовує правила. Розмежування ролей фіксується письмово.
  • Документація аудиту — опис логіки модуля, інструкції для адміністраторів, порядок дій при інциденті, шаблони звітів для керівництва.
  • Регламент розбору — покроковий сценарій: хто і в який строк реагує на підозрілу подію, як фіксується результат перевірки, куди ескалюється інцидент.
  • Набір звітів — готові вивантаження щодо дій користувачів, змін прав, масових операцій з даними, які можна переглядати регулярно або на запит.
  • Інструкція із супроводу — як оновлювати правила при зростанні штату або зміні процесів, щоб аудит не застарівав через півроку.

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

Кейс: як аудит дій користувачів скоротив розбір інциденту

Клієнт — виробничий холдинг із порталом на 1С-Бітрікс: каталог, особисті кабінети менеджерів, інтеграція з обліковою системою.

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

Розбір одного інциденту займав у середньому два робочі дні: піднімали резервну копію, порівнювали таблиці вручну, опитували співробітників.

Що змінили

Ми спроєктували модуль аудиту, який пише в окреме сховище кожну значущу дію: створення, зміну та видалення елементів інфоблоків, правки користувачів і прав доступу, операції із замовленнями, вхід і вихід із системи.

Для кожного запису зберігаються автор, час, ідентифікатор об'єкта та знімок «до/після» за зміненими полями — це й дає відновлення змін без відкату всієї бази.

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

Метрики до і після

  • Розбір інциденту: було ~2 робочі дні ручного зіставлення — стало 15-20 хвилин за вибіркою в журналі.
  • Частка відновлюваних змін: було близько 40% (тільки те, що потрапило в резервну копію) — стало 100% для дій, охоплених аудитом.
  • Спірні правки: до впровадження в середньому 5-6 епізодів на місяць, коли автор зміни не підтверджувався, — після впровадження такі ситуації закриваються посиланням на запис журналу.

Через пів року експлуатації навантаження на портал не зросло: записи пишуться асинхронно, окремим процесом, і не блокують роботу каталогу. Якщо у вас схоже завдання — опишіть, які дії потрібно покрити аудитом, і ми повернемося з оцінкою та планом.

Чим відрізняється аудит дій від резервного копіювання?

Це різні завдання, і плутати їх — означає залишитися без відповіді в момент розбору.

Резервне копіювання зберігає стан системи на момент зняття копії: якщо інцидент стався між двома копіями, ви відновите дані, але не дізнаєтеся, хто змінив, коли і через який розділ адміністративної панелі.

Аудит і резервне копіювання доповнюють одне одного: перший відповідає на питання «хто і що зробив», друге — «як повернути систему до робочого стану».

Аудит фіксує кожну значущу дію: вхід до панелі керування, правку елемента інфоблоку, зміну налаштувань модуля, видалення користувача, експорт даних.

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

Резервна копія такої деталізації не дає: це знімок без історії, і за ним не можна зрозуміти, чи була зміна навмисною чи випадковою.

Різниця підходів проявляється в момент розбору інциденту. Якщо контент-менеджер випадково зняв публікацію з розділу, копія поверне сторінку, але не пояснить причину — і через тиждень помилка повториться.

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

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

Технічні сумніви щодо аудиту дій користувачів

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

Навантаження та обсяг зберігання

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

Обсяг зростає лінійно від кількості дій: якщо писати лише значущі події (вхід, зміна сутності, зміна прав, експорт), а не кожен рух курсора, журнал за рік залишається компактним.

Старі записи виносимо в архів за розкладом — глибина історії налаштовується під регламент, а не «назавжди».

Сумісність і права

Модуль ставиться як окреме розширення і не править ядро — оновлення платформи та продукту проходять штатно, точки інтеграції переживають мажорні гілки.

Доступ до журналу роздається через штатну модель прав: адміністратор бачить усе, керівник напряму — лише свої розділи, служба безпеки — події доступу та зміни ролей. Кожне читання журналу теж фіксується, щоб аудит не перетворювався на сліпу зону.

Модуль сповільнить сайт під навантаженням?

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

Що буде при оновленні ядра чи продукту?

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

Чи можна обмежити глибину зберігання?

Так. Політика зберігання задається в налаштуваннях: гарячий період в основній таблиці, далі — архів або вивантаження. Так журнал не зростає безкінечно, а потрібна глибина історії залишається під рукою.

Обговоримо завдання аудиту: повернемося з оцінкою та планом

Щоб оцінка була точною, а не «середньою по ринку», нам потрібно зрозуміти вашу конфігурацію: на якій редакції 1С-Бітрікс працює портал, які модулі вже кастомізовані, де зараз зберігаються дані про дії користувачів і які події критично фіксувати в першу чергу.

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

На дзвінку уточнимо вимоги та межі завдання:

  • які сутності та розділи адмінки мають потрапляти в аудит — контент, замовлення, права доступу, налаштування модулів;
  • хто з ролей отримує доступ до журналу і чи потрібна розмежована видимість за відділами;
  • глибина зберігання записів і вимоги до вивантаження — регламент, внутрішній аудит, розбір інцидентів;
  • як модуль вбудовується в поточний контур: окремий модуль, оновлення ядра, інтеграція із зовнішньою системою;
  • навантаження на портал і допустимий вплив на швидкість роботи адмінки;
  • терміни впровадження та порядок передачі результату — тестовий контур, продакшен, навчання адміністраторів.

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

Опишіть завдання у зручному форматі — повернемося з оцінкою, планом і пропозицією щодо термінів впровадження.

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

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    837
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    928
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    865
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1223