Классический ответ — syslog. Формат сообщения описан в RFC 5424, а транспорт выбирается отдельно: например, UDP/514 или syslog over TLS, обычно TCP/6514. Реализации вроде rsyslog и syslog-ng могут собирать и пересылать события. UDP допускает потери, а TCP сам по себе не гарантирует сохранение события в конечном хранилище.
Какой протокол используют для централизованного сбора логов в Unix-подобных системах?
Syslog задаёт обмен событиями, но UDP/514 — не единственный транспорт. TLS, очереди и границы гарантий доставки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для централизованной передачи журналов традиционно используют syslog. Приложения и системные компоненты отправляют события локальному агенту, а тот может пересылать их коллектору. На практике встречаются rsyslog, syslog-ng и интеграции с journal.
Нужно различать формат и транспорт. RFC 5424 описывает сообщение с приоритетом, временем, источником, приложением и другими полями. В старой инфраструктуре встречаются и другие форматы, поэтому парсер согласуют с отправителем.
Основные варианты передачи:
- UDP/514: простой обмен без подтверждения доставки; сообщения могут теряться или приходить не по порядку. См. RFC 5426.
- TCP: потоковая доставка с выбранным соглашением о границах сообщений.
- Syslog over TLS: защищённый транспорт, по умолчанию порт 6514; RFC 5425. Сертификаты и проверку получателя нужно настроить корректно.
Для надёжной системы дополнительно задают локальные очереди, ограничения размера, обработку переполнения, повторные попытки и мониторинг самого коллектора. Подтверждение TCP не доказывает, что событие уже надёжно сохранено конечным хранилищем.
Обсуждают также синхронизацию времени, контроль доступа и исключение секретов из сообщений. Наличие syslog не означает, что все логи автоматически пересылаются: нужные источники и маршруты настраиваются явно.