Логирование
Логирование - это один из основных источников информаци о работе системы. Правильная расстановка акцентов при проектировании подсистемы логирования - значимая часть работы архитектора.
Сегодня мы поговорим о том, как правильно спроектировать подсистему логирования, которая бы отвечала не только за сбор информации, но и позволяла решать практические задачи в работе сиетмы.
Какие задачи решает логирование
- Отладка системы
- Сбор аналитической информации
- Оперативное состояние системы
- Аудит действий и состояния системы
Типы логов
- Технические логи
- Бизнсовые логи
- Логи по безопасности
Форматы
- Неструктурированный текст
- Структурированный текст
- собственный формат
- json
- xml
- Бинарный
Элементы логов
- Сообщения
- События
- Команды и результаты их выполнения
- Ошибки
- Трассировка
- Стек состояния
Идентификация сообщений
- Сквозная идентификация
- Сквозная идентификация с последовательностью
- Логическая идентификация
- Контекстная идентификация
Способы ведения логов
- Текстовый
- Многострочные логи
- Однострочные логи
- Бинарный
Типовые элементы сообщений
- Дата и время
- Коды сообщений
- Протоколы и форматы
- Текстовые расшифровки
- Уровень критичности или важности
- Пользователи и роли
- Идентификаторы
Анонимизация бизнесовой информации и информативность логов
- Замена значений на идентификаторы
- идентификация по классам сообщений
- идентификация сущностей
- идентификация ошибок
- Текстовые комментарии
- сокращения и аббревиатуры
Автоматизация сбора логов для анализа
- Регулярные выражения
- Структурированные логи
Сбор логов
Сбор логов для отчеждения (например, для анализа в сторонних организациях) должен выполняться специализированными утилитами, с учетом следующих требований:
- Централизованное или распределенное
- С поддержкой фильтрации или нет
- С автоматической анониизацией
Требования безопасности
- Сегментацич логов
- Анонимизация
- Управление уровнем доступа
- Ротация логов