
Logstash、Elasticsearch、Kibana を使用して集中ログを設定しようとしていますが、ログをログ サーバーに取得する際に問題が発生しています。
Logstash は TCP 5000 でリッスンしており、サーバーの 1 つからログを正常に受信していますが、残りのサーバーからは受信していません。5000 でログ サーバーに telnet でき、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 は rsyslog が UDP 514 でトラフィックを送信することをのみ許可します。
SELinux に次の例外を追加しました:
$sudo semanage port -a -t syslogd_port_t -p tcp 5000