2017-02-21 99 views
8

我已經配置了rsyslog的以下過濾器,以將幾個SSH消息引導到本地系統上的特定TCP端口5000,以便運行在5000將進一步處理SSH消息。Rsyslog使用TCP將日誌消息引導到端口5000上的本地系統日誌主機

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端口工作正常。

+0

也許防火牆正在阻礙。 telnet 127.0.0.1 5000'連接成功或發生錯誤? –

+0

@MarkPlotnick,Telnet工作正常。 root @ blr09> telnet 127.0.0.1 5000 嘗試127.0.0.1 ... 連接到127.0.0.1。 轉義字符是'^]'。 ^] telnet> – sach

+0

你能證實rsyslog實際上是在監聽端口嗎? 'netstat -tnlp | grep rsyslog'?然後確保防火牆也被配置(即在Fedora中):'firewall-cmd --zone = zone --add-port = 5000/tcp' – Arash

回答

1

您可能決定使用RELP嗎? (https://en.wikipedia.org/wiki/Reliable_Event_Logging_Protocol

截至​​

說明你需要更換 「然後@ 127.0.0.1:5000」 到 「那麼:omrelp:127.0.0.1:5000」

+0

當我添加omrelp並重新啓動rsyslog時,出現錯誤。 「Mar 2 04:40:31 blr09 rsyslogd-2207:解析文件/etc/rsyslog.d/atl_security.conf時出錯,第1行或之前:文件'/etc/rsyslog.d/atl_security發生錯誤。 conf'圍繞第1行[嘗試http://www.rsyslog.com/e/2207]「 root @ blr09> cat /etc/rsyslog.d/atl_security.conf if $ fromhost-ip =='127.0。 ($ msg包含'SSH')和($ msg包含'Test'))然後:omrelp:127.0.0.1:5000 root @ blr09> – sach

+0

您能否提供rsyslogd -v –

+0

的輸出root @ blr09 > rsyslogd -v rsyslogd 7.4。7,編譯: FEATURE_REGEXP:是 FEATURE_LARGEFILE:沒有 GSSAPI支持Kerberos 5:是 FEATURE_DEBUG(調試版本,緩慢的代碼):支持無 32位原子操作:是支持 64位原子操作:是 運行規範(慢代碼):否 uuid支持:是 有關更多信息,請參閱http://www.rsyslog.com。 root @ blr09> – sach