Linux Labs

Наблюдаемость: метрики, алерты, логи / Ступень 7 из 9

Логи в одном месте

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 4 из 7 · на машине · 7 мин

TCP и UDP

Два знака пересылки — два протокола, и сборщик принимает только те, что включены у него самого.

Приём сборщика удобно проверять отдельно от пересылки: logger умеет сам отправить строку на другой сервер, минуя rsyslog машины. Ключ -n задаёт адрес сервера, -P — порт, -T — отправку по TCP, -d — по UDP (в Вики). Порт называй всегда: с -T, но без -P logger ищет отдельный порт TCP-syslog и на этой машине выходит с ошибкой «Servname not supported». Имя машины и метку строки logger ставит так же, как rsyslog.

Упражнение · посмотреть

Отправь строку по TCP и по UDP

Отправь на сборщик по пробной строке через logger — по TCP и по UDP, — посмотри, какие файлы появились в каталоге этой машины на сборщике, и какие входы на порту 514 у него открыты.

Сначала предположи

Обе команды logger завершились без ошибок. Что окажется в каталоге этой машины на сборщике?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа

По UDP отправитель шлёт строку и ответа не ждёт: если на порту никто не слушает, строка пропадает, а ни logger, ни rsyslog об этом не узнают. TCP сначала устанавливает соединение: нет приёма — нет соединения, и rsyslog отправителя пишет в свой журнал, что пересылка приостановлена (suspended), и повторяет попытки. Строки за это время по умолчанию теряются, а копить их до восстановления связи rsyslog будет, только если дать пересылке очередь (queue.type). Поэтому между серверами пересылают по TCP, а UDP остаётся для устройств, которые другого не умеют, — коммутаторов, принтеров, старых систем.

Сборщик принимает строки, только если в его конфигурации загружен модуль приёма и описан вход: imtcp — для TCP, imudp — для UDP (в Вики). Вот вход lab-collector из /etc/lab-collector/rsyslog.conf:

text
# модуль приёма по TCP и вход на 127.0.0.1:514
module(load="imtcp")
input(type="imtcp" address="127.0.0.1" port="514")

address ограничивает приём одним адресом машины: на 127.0.0.1 строки придут только с неё самой. Сборщику в сети нужен адрес его сетевого интерфейса, а без address вход слушает все. Работает ли вход, показывает ss: строка с портом 514 и протоколом tcp или udp.

Ubuntu 24.04
Загрузка…