Журналирование
Журналирование — модуль для сбора и хранения логов. Помогает с анализом действий в системе. В модуль передаются логи о работе сервисов и модулей Мапиус.
Логи представляют собой непрерывный поток событий, отражающих деятельность внутри системы. Системы передают логи в сервис с помощью библиотек, Sidecar контейнеров и других средств. Логи хранятся в высокодоступном отказоустойчивом хранилище с поддержкой индексации и полнотекстового поиска (OpenSearch). В качестве интерфейса для визуализации используется Kibana.
В Журналировании можно:
- Настроить уровень детализации логов — от группы компонентов до отдельных элементов
- Управлять временем хранения индексов
- Выгрузить логи в формате CSV
Разграничение доступа
В Журналировании можно разграничить видимость логов. Для этого используется OpenSearch Security Plugin.
Аутентификация реализована через LDAP (Lightweight Directory Access Protocol) — протокол для управления учетными записями пользователей. Вы можете использовать любого провайдера аутентификации, который использует этот протокол.
Получение логов и безопасность
Перед сохранением в хранилище, все поступающие в Журналирование логи проходят формат-логический контроль — проверку на корректность и согласованность.
Рассмотрим на примере. Допустим, вы получили следующий лог:
{
"timestamp": "2024-12-03T12:34:56Z",
"level": "ERROR",
"message": "Failed to connect to database",
"error_code": 500,
}
Журналирование проверит, что:
-
Лог соответствует формату JSON.
-
Лог содержит следующие обязательные поля:
timestamp
level
message
-
Поле
timestamp
в формате ISO 8601. -
Поле
level
:- Имеет строковый тип.
- Принимает одно из следующих значений:
DEBUG
,INFO
,WARN
,ERROR
.
-
Поле
error_code
:- Является целым числом.
- Имеет значение не менее 400 (так как поле
level
равноERROR
).
Если хотя бы одно из этих условий не выполнено, то лог будет отправлен в отдельный Kafka-топик.
Для передачи данных используется mTLS (Mutual TLS). mTLS обеспечивает обмен данными в защищенном виде, требуя проверки обоих концов соединения.
Обработка большого объема данных
Журналирование гарантирует стабильную работу для потока 150 Мегабайт логов в секунду на 1 сегмент. Сегментов может быть несколько. Логи собираются через Kafk'у, которую можно разместить в разных сетевых сегментах.
Интеграции с другими модулями Мапиус
К Журналированию можно подключить следующие модули:
- Мониторинг
- Трассировка
- Аудит
Вы можете подключить нужные модули, тем самым настроить систему под конкретные бизнес-задачи. Подробнее о функциях на странице соответствующего модуля.