
我正在嘗試使用 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