Перейти к основному содержимому

Журналирование

Журналирование — модуль для сбора и хранения логов. Помогает с анализом действий в системе. В модуль передаются логи о работе сервисов и модулей Мапиус.

Логи представляют собой непрерывный поток событий, отражающих деятельность внутри системы. Системы передают логи в сервис с помощью библиотек, 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,
}

Журналирование проверит, что:

  1. Лог соответствует формату JSON.

  2. Лог содержит следующие обязательные поля:

    • timestamp
    • level
    • message
  3. Поле timestamp в формате ISO 8601.

  4. Поле level:

    • Имеет строковый тип.
    • Принимает одно из следующих значений: DEBUG, INFO, WARN, ERROR.
  5. Поле error_code:

    • Является целым числом.
    • Имеет значение не менее 400 (так как поле level равно ERROR).

Если хотя бы одно из этих условий не выполнено, то лог будет отправлен в отдельный Kafka-топик.

Для передачи данных используется mTLS (Mutual TLS). mTLS обеспечивает обмен данными в защищенном виде, требуя проверки обоих концов соединения.

Обработка большого объема данных

Журналирование гарантирует стабильную работу для потока 150 Мегабайт логов в секунду на 1 сегмент. Сегментов может быть несколько. Логи собираются через Kafk'у, которую можно разместить в разных сетевых сегментах.

Интеграции с другими модулями Мапиус

К Журналированию можно подключить следующие модули:

  • Мониторинг
  • Трассировка
  • Аудит

Вы можете подключить нужные модули, тем самым настроить систему под конкретные бизнес-задачи. Подробнее о функциях на странице соответствующего модуля.