ЛОГИРОВАНИЕ СОБЫТИЙ СИСТЕМЫ
Для анализа действий пользователей, администраторов системы, а также выявления ошибок, происходящих во время работы, PLAN-R ведет журнал всех событий системы. По умолчанию информация о событиях выводится в формате JSON в стандартный вывод контейнеров микросервисов. В зависимости от типа события, в лог может добавляться дополнительная информация.
Полный список событий системы приведен в таблице Список событий системы.
Настройка подсистемы логирования осуществляется с помощью переменных окружения.
Дополнительно существует возможность перенаправить события информационной безопасности (ИБ) на отдельный сервер логирования.
Существует возможность добавления в логи событий расширенной информации, например значения изменяемых полей или данных. Используйте данный функционал с осторожностью т.к. значительно вырастает объем логируемой информации! Рекомендуется использовать только в целях отладки приложения.
# Включить дополнительную информацию в логи событий. Значение по умолчанию false.
LOGS_EXTEND=true
События информационной безопасности.
В системе реализована возможность перенаправить вывод о событиях информационной безопасности в отдельный поток для отправки на отдельный сервер сбора логов. К событиям ИБ относятся логи команд управления пользователями, ролями пользователей, доступом к системе и интеграцией с ActiveDirectory.
Для того чтобы настроить вывод событий ИБ на отдельный сервер, следует настроить следующие переменные окружения:
# Включить вывод логов информационной безопасности в отдельный поток.
LOGS_SECURITY_SPLIT=true
# Указать адрес сервера сбора логов.
LOGS_SECURITY_SERVER_ADDRESS=your_log_srv.domain.org
# При необходимости указать порт сервера сбора логов. По умолчанию 514.
LOGS_SECURITY_SERVER_PORT=5141
# При необходимости указать сетевой протокол передачи логов. По умолчанию UDP.
LOGS_SECURITY_SERVER_PROTOCOL=tcp
# При использовании протокола TCP можно включить автоматическое переподключение к серверу логов. По умолчанию false.
LOGS_SECURITY_SERVER_TCP_RECONNECT=true
# При необходимости включить добавление в логи ИБ информации о производителе. По умолчанию false.
LOGS_SECURITY_ADD_DEVICE_INFO=true
# При необходимости включить вывод логов безопасности в формате CEF. По умолчанию false.
LOGS_SECURITY_CEF_ENABLED=true
JSON формат.
Таблица 1. Описание полей формата JSON
| Поле | Описание | Формат | Обязательное |
|---|---|---|---|
| time | Время наступления события. | timestamp | Да |
| trace_id | Уникальный идентификатор выполнения запроса, может использоваться для определения выполнения всех команд участвующих в обработке запроса. | UUID v4 | Да |
| command_name | Идентификатор события. | string | Да |
| command_description | Человекочитаемое описание события. | string | Нет |
| is_infosec | Событие относится к группе событий информационной безопасности. | boolean | Нет |
| device_vendor | Производитель приложения. | string | Нет |
| device_product | Наименование приложения. | string | Нет |
| device_version | Версия приложения. | string | Нет |
| client_ip | IP адрес клиента с которого получен запрос. | string | Да |
| user_id | Уникальный идентификатор пользователя от имени которого выполняется запрос. | UUID v4 | Нет |
| user_login | Логин пользователя от имени которого выполняется запрос. | string | Нет |
| space_id | Уникальный идентификатор пространства в котором выполнялся запрос. | UUID v4 | Да |
| space_name | Наименование пространства в котором выполнялся запрос. | string | Да |
| target_space_id | Уникальный идентификатор пространства для которого выполнялся запрос. Т.е. пространство в котором изменяли данные. | UUID v4 | Нет |
| target_space_name | Наименование пространства для которого выполнялся запрос. | string | Нет |
| eps_id | Уникальный идентификатор узла структуры проектов предприятия (СПП) для которого выполнялся запрос. | UUID v4 | Нет |
| eps_name | Наименование узла СПП для которого выполнялся запрос. | string | Нет |
| eps_type | Тип узла СПП для которого выполнялся запрос. Значение из списка: space | facility | schedule | project | version | string | Нет |
| auth_strategy | Тип провайдера использованный для аутентификации пользовательского запроса. Значение из списка: activedirectory | openid | kerberos | saml | local | apikey | standalone | string | Нет |
| target_user_id | Уникальный идентификатор пользователя для которого выполнялся запрос. Например идентификатор создаваемого пользователя или пользователя параметры которого были изменены в результате выполнения запроса. | UUID v4 | Нет |
| target_user_login | Логин пользователя для которого выполнялся запрос. | string | Нет |
| role_id | Уникальный идентификатор роли пользователя для которой выполнялся запрос. | UUID v4 | Нет |
| role_name | Наименование роли пользователя для которой выполнялся запрос. | string | Нет |
| target_role_id | Уникальный идентификатор роли пользователя назначенной на узел СПП при изменении права доступа. | UUID v4 | Нет |
| target_role_name | Наименование роли пользователя назначенной на узел СПП при изменении права доступа. | string | Нет |
| target_subject_id | Уникальный идентификатор объекта для которого выполнялся запрос. Например идентификатор подключения к Active Directory. | UUID v4 | Нет |
| target_subject_name | Наименование объекта для которого выполнялся запрос. | string | Нет |
| target_subject_state | Статус объекта для которого выполнялся запрос. | string | Нет |
| target_subject_type | Тип объекта для которого выполнялся запрос. | string | Нет |
| updated_fields | Перечень полей измененных в результате запроса. | string | Нет |
| success | Флаг успешности операции. Например результат аутентификации пользователя в системе. | boolean | Нет |
Пример
{ "time": 1749112947148, "trace_id": "42195a9e-17c3-4e2d-9868-ba7f7c253123", "command_name": "auth.local", "command_description": "Local user authentication", "is_infosec": true, "client_ip": "148.93.143.195", "user_id": "3ce9d1d6-b169-498f-8d28-33aced2353a0", "user_login": "ivanov@org.ru", "success": true, "container_name": "planr_ru-main-1", "request_source": "main" }
CEF формат.
Помимо вывода логов в формате JSON существует возможность вывода информации в формате CEF согласно стандарту определенному в Implementing ArcSight Common Event Format (CEF) - Version 26.
Для того чтобы настроить вывод событий ИБ в формате CEF, следует настроить следующие переменные окружения:
# При необходимости включить вывод логов безопасности в формате CEF. По умолчанию false.
LOGS_SECURITY_CEF_ENABLED=true
# При необходимости установить формат даты логов безопасности в формате CEF. Значение по умолчанию MMM DD YYYY HH:mm:ss.SSS zzz.
LOGS_SECURITY_CEF_DATE_FORMAT=MMM DD YYYY HH:mm:ss.SSS z
Таблица 2. Описание пользовательских полей формата CEF
| Поле | Описание | Формат | Обязательное |
|---|---|---|---|
| DPPMPlanRTraceId | Уникальный идентификатор выполнения запроса, может использоваться для определения выполнения всех команд участвующих в обработке запроса. | UUID v4 | Да |
| DPPMPlanRSpaceId | Уникальный идентификатор пространства в котором выполнялся запрос. | UUID v4 | Да |
| DPPMPlanRSpaceName | Наименование пространства в котором выполнялся запрос. | string | Да |
| DPPMPlanRTargetSpaceId | Уникальный идентификатор пространства для которого выполнялся запрос. Т.е. пространство в котором изменяли данные. | UUID v4 | Нет |
| DPPMPlanRTargetSpaceName | Наименование пространства для которого выполнялся запрос. | string | Нет |
| DPPMPlanREpsId | Уникальный идентификатор узла структуры проектов предприятия (СПП) для которого выполнялся запрос. | UUID v4 | Нет |
| DPPMPlanREpsName | Наименование узла СПП для которого выполнялся запрос. | string | Нет |
| DPPMPlanREpsType | Тип узла СПП для которого выполнялся запрос. Значение из списка: space | facility | schedule | project | version | string | Нет |
| DPPMPlanRAuthStrategy | Тип провайдера использованный для аутентификации пользовательского запроса. Значение из списка: activedirectory | openid | kerberos | saml | local | apikey | standalone | string | Нет |
| DPPMPlanRUserId | Уникальный идентификатор пользователя для которого выполнялся запрос. Например идентификатор создаваемого пользователя или пользователя параметры которого были изменены в результате выполнения запроса. | UUID v4 | Нет |
| DPPMPlanRUserLogin | Логин пользователя для которого выполнялся запрос. | string | Нет |
| DPPMPlanRRoleId | Уникальный идентификатор роли пользователя для которой выполнялся запрос. | UUID v4 | Нет |
| DPPMPlanRRoleName | Наименование роли пользователя для которой выполнялся запрос. | string | Нет |
| DPPMPlanRTargetRoleId | Уникальный идентификатор роли пользователя назначенной на узел СПП при изменении права доступа. | UUID v4 | Нет |
| DPPMPlanRTargetRoleName | Наименование роли пользователя назначенной на узел СПП при изменении права доступа. | string | Нет |
| DPPMPlanRTargetSubjectId | Уникальный идентификатор объекта для которого выполнялся запрос. Например идентификатор подключения к Active Directory. | UUID v4 | Нет |
| DPPMPlanRTargetSubjectName | Наименование объекта для которого выполнялся запрос. | string | Нет |
| DPPMPlanRTargetSubjectState | Статус объекта для которого выполнялся запрос. | string | Нет |
| DPPMPlanRTargetSubjectType | Тип объекта для которого выполнялся запрос. | string | Нет |
| DPPMPlanRUpdatedFields | Перечень полей измененных в результате запроса. | string | Нет |
| DPPMPlanRSuccess | Флаг успешности операции. Например результат аутентификации пользователя в системе. | boolean | Нет |
Пример
Sep 19 08:26:10 host CEF:0|dppm|planr|602.0|auth.openid|Authentication using OpenID Connect (OIDC)|Low|src=10.0.0.1 suid=d1c3d009-4937-41b4-83af-ca6d3568eef6 suser=iv_ivn@org.com DPPMPlanRTraceId=36794d27-ff14-4502-a6f7-369e3417d6b8 DPPMPlanRSpaceId=7943063b-d137-4ba1-bedf-3166e35444ff DPPMPlanRSpaceName=My Organization DPPMPlanRSuccess=true
Логи собираются и обрабатываются с помощью сборщика логов FluentBit затем сохраняются в хранилище Grafana Loki, для просмотра и анализа в комплект поставки также входит ПО Grafana.

С помощью FluentBit можно трансформировать, фильтровать или перенаправлять события в сторонние системы.