Настройка журнала событий 1С-Битрикс
Журнал событий в Битриксе (b_event_log) — встроенный механизм аудита, который по умолчанию работает в минимальной конфигурации. Из коробки он логирует авторизации и критичные системные операции, но не фиксирует бизнес-действия: изменения в каталоге, операции с заказами, действия в инфоблоках. Настройка журнала — это приведение его в состояние, когда он реально полезен для разбора инцидентов.
Включение и базовая конфигурация
Управление журналом: Настройки → Настройки продукта → Настройки модулей → Главный модуль → вкладка «Журнал событий».
Параметры, которые нужно задать:
- Записывать события — включить (по умолчанию может быть выключено)
- Время хранения записей — рекомендуется 90 дней для продакшена, 30 дней для dev-окружения
- Типы событий — отметить все необходимые категории
Типы событий, доступные в штатной настройке:
| Тип | Код | Что фиксирует |
|---|---|---|
| Авторизация | USER_LOGIN | Успешный вход |
| Ошибка авторизации | USER_LOGIN_FAILED | Неудачные попытки входа |
| Выход | USER_LOGOUT | Завершение сессии |
| Изменение пользователя | USER_EDIT | Редактирование профиля/прав |
| Изменение прав | GROUP_POLICY_CHANGED | Смена политик безопасности |
| Файловые операции | FILE_DELETE | Удаление через файловый менеджер |
Просмотр и фильтрация
Журнал доступен в Настройки → Инструменты → Журнал событий. Интерфейс поддерживает фильтрацию по:
- Типу события (
AUDIT_TYPE_ID) - Модулю (
MODULE_ID) - Пользователю (
USER_ID) - Периоду (
TIMESTAMP_X) - Уровню важности (
SEVERITY: INFO, WARNING, SECURITY)
Проблема штатного интерфейса — отсутствие полнотекстового поиска по полю DESCRIPTION. Если нужно найти конкретное изменение, приходится использовать SQL:
SELECT * FROM b_event_log
WHERE AUDIT_TYPE_ID = 'IBLOCK_ELEMENT_UPDATE'
AND DESCRIPTION LIKE '%"PRICE"%'
AND TIMESTAMP_X >= '2024-01-01'
ORDER BY TIMESTAMP_X DESC
LIMIT 100;
Расширение списка событий
Штатный набор событий покрывает безопасность, но не бизнес-логику. Для добавления кастомных типов событий используется CEventLog::Add():
CEventLog::Add([
'SEVERITY' => 'INFO',
'AUDIT_TYPE_ID' => 'CUSTOM_ORDER_STATUS',
'MODULE_ID' => 'sale',
'ITEM_ID' => $orderId,
'DESCRIPTION' => "Статус изменён: $oldStatus → $newStatus",
]);
Кастомные типы автоматически появляются в фильтре журнала. Рекомендуется использовать префикс (CUSTOM_) для отличия от штатных типов.
Настройка автоочистки
Без ротации таблица b_event_log разрастается до сотен тысяч записей. Автоочистка настраивается через агент:
CAgent::AddAgent(
"CEventLog::CleanUpAgent();",
"main",
"N",
86400 // раз в сутки
);
Агент удаляет записи старше срока, заданного в настройках модуля. Если нужен архив — перед очисткой экспортируйте данные через CEventLog::GetList() в CSV или отдельную таблицу.
Мониторинг безопасности через журнал
Практический минимум для отслеживания подозрительной активности:
-
Брутфорс — более 5 записей
USER_LOGIN_FAILEDс одного IP за 10 минут -
Эскалация привилегий — событие
USER_EDITс изменением группы на администраторскую - Массовое удаление — серия событий удаления элементов за короткий промежуток
Для автоматического оповещения об этих ситуациях потребуется отдельный скрипт-анализатор, запускаемый по cron, который парсит свежие записи и отправляет уведомление через CEvent::Send().
Настройка журнала событий — задача на один рабочий день. Результат: полная видимость критичных действий пользователей с ротацией и возможностью быстрого поиска по инцидентам.







