Два знака пересылки — два протокола, и сборщик принимает только те, что включены у него самого.
Приём сборщика удобно проверять отдельно от пересылки: 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:
address ограничивает приём одним адресом машины: на 127.0.0.1 строки придут только с неё самой. Сборщику в сети нужен адрес его сетевого интерфейса, а без address вход слушает все. Работает ли вход, показывает ss: строка с портом 514 и протоколом tcp или udp.