Какой протокол используют для централизованного сбора логов в Unix-подобных системах?

Syslog задаёт обмен событиями, но UDP/514 — не единственный транспорт. TLS, очереди и границы гарантий доставки.

Короткий ответ

Что ответить на собеседовании

Классический ответ — syslog. Формат сообщения описан в RFC 5424, а транспорт выбирается отдельно: например, UDP/514 или syslog over TLS, обычно TCP/6514. Реализации вроде rsyslog и syslog-ng могут собирать и пересылать события. UDP допускает потери, а TCP сам по себе не гарантирует сохранение события в конечном хранилище.

Подробный разбор

Ответ с пояснениями

Для централизованной передачи журналов традиционно используют syslog. Приложения и системные компоненты отправляют события локальному агенту, а тот может пересылать их коллектору. На практике встречаются rsyslog, syslog-ng и интеграции с journal.

Нужно различать формат и транспорт. RFC 5424 описывает сообщение с приоритетом, временем, источником, приложением и другими полями. В старой инфраструктуре встречаются и другие форматы, поэтому парсер согласуют с отправителем.

Основные варианты передачи:

  • UDP/514: простой обмен без подтверждения доставки; сообщения могут теряться или приходить не по порядку. См. RFC 5426.
  • TCP: потоковая доставка с выбранным соглашением о границах сообщений.
  • Syslog over TLS: защищённый транспорт, по умолчанию порт 6514; RFC 5425. Сертификаты и проверку получателя нужно настроить корректно.

Для надёжной системы дополнительно задают локальные очереди, ограничения размера, обработку переполнения, повторные попытки и мониторинг самого коллектора. Подтверждение TCP не доказывает, что событие уже надёжно сохранено конечным хранилищем.

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку