ЛОГИРОВАНИЕ СОБЫТИЙ СИСТЕМЫ
Для анализа действий пользователей и выявления ошибок происходящих во время работы, PLAN-R ведет журнал всех событий системы. События выводятся в формате JSON в стандартный вывод контейнеров микросервисов, собираются и обрабатываются с помощью сборщика логов FluentBit затем сохраняются в хранилище Grafana Loki, для просмотра и анализа в комплект поставки также входит ПО Grafana.
Описание полей.
События системы формируются в формате JSON и содержат следующие поля:
- client_ip - IP адрес клиента с которого получен запрос. (обязательный);
- command_name - идентификатор события в PLAN-R Список событий системы PLAN-R. (обязательный);
- container_name - наименование контейнера в котором произошло событие. (обязательный);
- time - время наступления события в формате Unix Timestamp. (обязательный);
- trace_id - сквозной уникальный идентификатор выполнения запроса в формате UUIDv4, может использоваться для определения выполнения всех команд участвующих в обработке запроса. (обязательный);
- user_id - уникальный идентификатор пользователя в формате UUIDv4 от имени которого выполняется запрос. (опциональный);
- user_login - логин пользователя от имени которого выполняется запрос. (опциональный);
- space_id - уникальный идентификатор пространства в формате UUIDv4 для которого выполняется запрос. (опциональный);
- duration - время выполнения операции в миллисекундах, выводится в случае если операция выполняется дольше 500ms, используется для анализа долгих запросов. (опциональный);
- error - сообщение об ошибке. (опциональный);
Примечание В зависимости от типа события, в лог может добавляться дополнительная информация.
Внимание! Существует возможность добавления в логи событий дополнительной информации. Данный функционал может быть активирован через переменные окружения.
Пример
json;
{
"client_ip": "148.93.143.195",
"command_name": "auth.local",
"auth_success": true,
"container_name": "/planr_ru-main-1",
"request_source": "main",
"time": 1749112947148,
"trace_id": "42195a9e-17c3-4e2d-9868-ba7f7c253123",
"user_id": "3ce9d1d6-b169-498f-8d28-33aced2353a0",
"user_login": "ivanov@org.ru"
}
С помощью FluentBit можно трансформировать, фильтровать или перенаправлять события в сторонние системы.