ログ記録で奇妙な問題をデバッグしていますSaaSソリューション。SaaSに送信されたログが重複しているようです。ログはTLS経由でrsyslogフォワーダーを介して送信されます。リモートのrsyslogサーバーを実行し、それ以降のインスタンスのログをそのサーバーに転送して監視することで問題を再現できます。ログの発生元のサーバーをguineapig
、リモートのrsyslogサーバーをwatcher
と呼びましょう。
watcher
は、次のような構成を使用してUDPポート514でリッスンするように構成されています。
$ModLoad imudp.so
$UDPServerRun 514
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# log everything to the /var/log/remotesyslog file
*.* /var/log/remotesyslog
guineapig
は、IPアドレスを使用してすべてをwatcher
に転送するように設定されています。
$ModLoad imuxsock
$ModLoad imjournal
$ModLoad imudp.so
$UDPServerRun 514
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$IMJournalStateFile imjournal.state
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.*
/var/log/boot.log
内部/etc/rsyslog.d/22-remote-rsyslog.conf
on guineapig
:
# forward everything over UDP to watcher
*.* @@10.0.1.1:514
残念ながら、SystemD rsyslogサービスを再起動してguineapig
でログメッセージをトリガーしようとすると、watcher
のファイルに表示されません。
user@guineapig ~$ logger "please work"
# doesn't work
ただし、logger
に直接どこに行くかを直接指定すると、ログ行が表示されます。
user@guineapig ~$ logger -n 10.0.1.1 "please work for real"
# works
Rsyslogのドキュメントを調べるのは非常に困難ですが、何らかの理由でログがwatcher
に正しく転送されません。
guineapig
の設定に明らかな問題はありますか?どちらのシステムもCentOS 7上にあります。
前述のように、 ここrsyslog
はUDP経由の転送にTCPとは異なる構文を使用しているようです。
*.* @@10.0.1.1:514
*.* @10.0.1.1:514
この変更により、ログ設定が修正されました。
*.* action(type="omfwd" target="10.0.1.1:514" port="514" protocol="tcp")
ドキュメント から:
これは最も単純な転送アクションです。
*。* action(type = "omfwd" target = "192.0.2.1" port = "10514" protocol = "tcp")
これは、次の廃止されたレガシーフォーマット行と同等です。
*。* @@ 192.0.2.1:10514#今後は使用しないでください!