Я настроил фильтр ниже для rsyslog, чтобы направить несколько сообщений SSH на определенный TCP-порт 5000 в локальной системе, чтобы служба, работающая на 5000 будет обрабатывать сообщения SSH далее.Rsyslog направляет сообщения журнала локальному узлу syslog на порт 5000 с использованием TCP
if $fromhost-ip == '127.0.0.1' and (($msg contains 'SSH') and ($msg contains 'Test')) then @@127.0.0.1:5000
Все, кажется, хорошо, но сообщения не перенаправляются на порт 5000, и если мы направляем сообщения на порт UDP он работает нормально.
Ниже приведен фильтр сообщений, направляемых на порт UDP.
if $fromhost-ip == '127.0.0.1' and (($msg contains 'SSH') and ($msg contains 'Test')) then @127.0.0.1:5000
Не могли бы вы сообщить мне, почему TCP-порт не работает и работает порт UDP.
Может брандмауэр мешает. «Telnet 127.0.0.1 5000» подключается успешно или дает ошибку? –
@MarkPlotnick, Telnet работает нормально. root @ blr09> telnet 127.0.0.1 5000 Попытка 127.0.0.1 ... Подключено к 127.0.0.1. Символ выхода - '^]'. ^] telnet> – sach
Вы можете проверить, действительно ли rsyslog прослушивает порт? 'netstat -tnlp | grep rsyslog'? Затем убедитесь, что межсетевой экран также настроен (например, в Fedora): «firewall-cmd - zone = zone --add-port = 5000/tcp» – Arash