Логи отправляются асинхронно через локальный агент или буфер в брокер, затем индексируются в поисковом хранилище. Чтение и уведомления отделяются от приёма.
Создание распределённого сервиса журналирования для микросервисной среды
Логи отправляются асинхронно через локальный агент или буфер в брокер, затем индексируются в поисковом хранилище. Чтение и уведомления отделяются от приёма.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Сформулируйте решение для централизованного сбора и хранения логов в микросервисной архитектуре.
- Реализуйте отдельный микросервис, который будет принимать и сохранять сообщения журналов от разных компонентов системы.
- Спроектируйте асинхронный механизм передачи логов от остальных микросервисов в ваш сервис журналирования.
- Предоставьте API (или иной интерфейс) для просмотра и анализа накопленных записей, включив возможность фильтрации по времени, уровню важности и источнику генерации.
- Добавьте систему уведомлений, срабатывающую при появлении критических ошибок.
Ответ
Логи отправляются асинхронно через локальный агент или буфер в брокер, затем индексируются в поисковом хранилище. Чтение и уведомления отделяются от приёма.
Формат записи: event_id, timestamp в UTC, service, environment, severity, trace_id и структурированные поля без секретов. Приёмник проверяет размер и схему, а потребители записывают пачки в хранилище с партициями по времени и retention.
API поиска ограничивает временной диапазон, поддерживает фильтры и cursor-пагинацию. Alert-процесс агрегирует критические ошибки по окнам, устраняет дубли и задаёт cooldown. При недоступности центра используют ограниченный дисковый буфер и явную политику сброса низкоприоритетных логов. Нужно измерять потери и задержку доставки; обещать абсолютную сохранность при бесконечной нагрузке нельзя.