使用 rsyslog 將日誌傳送到遠端伺服器

使用 rsyslog 將日誌傳送到遠端伺服器

我正在嘗試使用 Logstash、Elasticsearch 和 Kibana 設定集中式日誌記錄,但在將日誌獲取到我的日誌伺服器時遇到問題。

Logstash 正在偵聽 TCP 5000,並成功從我的一台伺服器接收日誌,但沒有從其餘伺服器接收日誌。我可以 telnet 到 5000 上的日誌伺服器,Logstash 正在接收訊息,所以我相信問題出在 rsyslog 發送日誌上。

我使用的是 CentOS 6.5,並將以下內容加入 /etc/rsyslog.conf 中:

$WorkDirectory /var/lib/rsyslog # where to place spool files
*.* @@logs.<domain_removed>.com:5000

進行更改後,rsyslog 重新啟動,沒有出現任何錯誤,但 Logstash 沒有收到任何訊息。假脫機目錄是空的,所以我不相信它們是發送失敗。

May 16 20:46:10 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-    pid="5097" x-info="http://www.rsyslog.com"] exiting on signal 15.
May 16 20:46:10 kernel: imklog 5.8.10, log source = /proc/kmsg started.
May 16 20:46:10 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="3556" x-info="http://www.rsyslog.com"] start

關於如何追蹤錯誤有什麼想法嗎?

編輯:這個問題是由 SELinux 引起的

答案1

SELinux 阻止 rsyslog 在連接埠 5000 上傳送。

我為 SELinux 添加了一個例外:

$sudo semanage port -a -t syslogd_port_t -p tcp 5000

相關內容