Вопрос с собеседования · DevOps

Как организовать сбор логов из множества сервисов?

MiddleМониторинг и логи
Ещё спрашивают так:
  • Чем ELK отличается от Loki?
  • Зачем нужны структурированные логи?
Коротко

Приложения пишут структурированные логи (JSON) в stdout; агент на узле (Fluent Bit, Vector, Promtail) собирает их, добавляет метаданные (под, namespace, сервис) и отправляет в хранилище с поиском. ELK/OpenSearch индексирует весь текст — мощный поиск, но дорого по диску и памяти. Loki индексирует только метки, а текст хранит сжатым в объектном хранилище — в разы дешевле, но поиск по содержимому медленнее.

  • trace_id в каждой строке связывает логи с трейсами и запросом
  • Уровни логирования и сэмплирование: DEBUG в проде на высоком трафике разоряет
  • Не логировать персональные данные, пароли, токены

А ещё Сроки хранения: горячие дни для поиска, архив дешевле или удаление

Подробно

Структурированный лог:

{"ts":"2026-10-13T10:15:02Z","level":"ERROR","service":"orders",
 "trace_id":"4bf92f35","order_id":"A-1042","msg":"payment timeout",
 "duration_ms":3012}

Поля позволяют фильтровать и считать, а не разбирать текст регулярками.

Сравнение хранилищ:

ELK / OpenSearchLoki
индексполнотекстовый по всем полямтолько метки
стоимостьвысокаянизкая
поискбыстрый по любому словуфильтр по меткам + перебор
эксплуатациясложный кластерпроще, объектное хранилище

Надёжность конвейера: буферизация в агенте или очередь (Kafka) перед хранилищем — пик логов не должен ронять приложения или терять данные; лимиты на размер и частоту.

Метки в Loki — как в Prometheus: высокая кардинальность (user_id в метке) ломает хранилище; такие значения — в теле строки.

Что хотят услышать

  • Конвейер: stdout → агент → хранилище.
  • Структурированные логи и trace_id.
  • Компромисс ELK и Loki, стоимость и хранение.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Логи в stdout в структурированном виде, агент на узле отправляет их в общее хранилище
  • ✗Каждое приложение пишет логи напрямую в общую базу данных
  • ✗Loki индексирует весь текст логов
  • ✗Логи лучше хранить только на локальных дисках узлов

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования