Centos6

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

  • May 18, 2014

我正在嘗試使用 Logstash、Elasticsearch 和 Kibana 設置集中式日誌記錄,但無法將日誌傳輸到我的日誌伺服器。

Logstash 正在偵聽 TCP 5000,並且成功地從我的一台伺服器接收日誌,但沒有從其餘伺服器接收日誌。我可以在 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 引起的

SELinux 阻止 rsyslog 在埠 5000 上發送。預設情況下,SELinux 只允許 rsyslog 在 UDP 514 上發送流量。

我向 SELinux 添加了一個例外:

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

引用自:https://serverfault.com/questions/596622