Логирование

Логирование

Логирование - это один из основных источников информаци о работе системы. Правильная расстановка акцентов при проектировании подсистемы логирования - значимая часть работы архитектора.

Сегодня мы поговорим о том, как правильно спроектировать подсистему логирования, которая бы отвечала не только за сбор информации, но и позволяла решать практические задачи в работе сиетмы.

Какие задачи решает логирование

  • Отладка системы
  • Сбор аналитической информации
  • Оперативное состояние системы
  • Аудит действий и состояния системы

Типы логов

  • Технические логи
  • Бизнсовые логи
  • Логи по безопасности

Форматы

  • Неструктурированный текст
  • Структурированный текст
    • собственный формат
    • json
    • xml
  • Бинарный

Элементы логов

  • Сообщения
    • События
    • Команды и результаты их выполнения
    • Ошибки
  • Трассировка
  • Стек состояния

Идентификация сообщений

  • Сквозная идентификация
  • Сквозная идентификация с последовательностью
  • Логическая идентификация
  • Контекстная идентификация

Способы ведения логов

  • Текстовый
    • Многострочные логи
    • Однострочные логи
  • Бинарный

Типовые элементы сообщений

  • Дата и время
  • Коды сообщений
  • Протоколы и форматы
  • Текстовые расшифровки
  • Уровень критичности или важности
  • Пользователи и роли
  • Идентификаторы

Анонимизация бизнесовой информации и информативность логов

  • Замена значений на идентификаторы
    • идентификация по классам сообщений
    • идентификация сущностей
    • идентификация ошибок
  • Текстовые комментарии
    • сокращения и аббревиатуры

Автоматизация сбора логов для анализа

  • Регулярные выражения
  • Структурированные логи

Сбор логов

Сбор логов для отчеждения (например, для анализа в сторонних организациях) должен выполняться специализированными утилитами, с учетом следующих требований:

  • Централизованное или распределенное
  • С поддержкой фильтрации или нет
  • С автоматической анониизацией

Требования безопасности

  • Сегментацич логов
  • Анонимизация
  • Управление уровнем доступа
  • Ротация логов