Centos6
使用 rsyslog 將日誌發送到遠端伺服器
我正在嘗試使用 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