1つはVMこれは/etc/rsyslog.d/50-default.conf
にあります
*.* @192.168.29.1:42185
# Default rules for rsyslog.
Fluentdを使用したVMには、次のものがあります。
私はこれを/etc/td-agent/td-agent.conf
に持っています
<source>
type syslog
port 42185
tag rsyslog
</source>
<match rsyslog.**>
type copy
<store>
# for debug (see /var/log/td-agent.log)
type stdout
</store>
<store>
type elasticsearch
logstash_format true
flush_interval 10s # for testing.
</store>
</match>
しかし、/ var/log/td-agent.logを見ると、リモートマシンに何も送信されていないようです。
2014-08-08 10:51:10 -0700 [info]: adding source type="syslog"
2014-08-08 10:51:10 -0700 [info]: adding source type="forward"
2014-08-08 10:51:10 -0700 [info]: adding source type="http"
2014-08-08 10:51:10 -0700 [info]: adding source type="debug_agent"
2014-08-08 10:51:10 -0700 [info]: adding match pattern="td.*.*" type="tdlog"
2014-08-08 10:51:10 -0700 [info]: adding match pattern="debug.**" type="stdout"
2014-08-08 10:51:10 -0700 [info]: adding match pattern="rsyslog.**" type="copy"
2014-08-08 10:51:10 -0700 [info]: listening fluent socket on 0.0.0.0:24224
2014-08-08 10:51:10 -0700 [info]: listening dRuby uri="druby://127.0.0.1:24230" object="Engine"
2
ログが送信されない理由がわかりません。また、rsyslog
に問題があり、ファイルが送信されていないかどうかを確認する方法もわかりません。
私が間違っていなければ、rsyslogはログをTCP(構成ファイルでは、これは「信頼性のために」とリストされています)を介して転送します)が、fluentDのリスナーはデフォルトでUDPでリッスンします。 fluentD configを使用すると、TCPでログを受信できるようになります。
<source>
type syslog
port 42185
protocol_type tcp
tag rsyslog
</source>
この変更を行った後もログを受信していない場合は、TCPダンプを使用して、トラフィックがエージェントで受信されているかどうかを確認します。
tcpdump -i any port 42185
これは、TCPまたはUDPが受信されているかどうかも示す必要があります(port
またはtcp
も指定せず、udp
のみを指定します)
編集:これに加えて、rsyslog構成が正しいことを確認してください:私が見て使用したすべての例では、転送ルールに二重の@@
があります:
*.* @@192.168.29.1:42185