rsyslog - ログ複製には2つのサーバーを使用します。

rsyslog - ログ複製には2つのサーバーを使用します。

rsyslogを使用しており、次の構成を実行しようとしています。

 1. Server 1 - log all local messages and log messages from server2

 2. Server 2 - log all local messages and log messages from server1

したがって、両方のサーバーにローカルおよびリモートのシステムログを含める必要があります。

次に、rsyslog.conf設定ファイルの転送セクションに入れた内容は次のとおりです。

サーバー1:

 # ### begin forwarding rule ###
 # The statement between the begin ... end define a SINGLE forwarding
 # rule. They belong together, do NOT split them. If you create multiple
 # forwarding rules, duplicate the whole block!
 # Remote Logging (we use TCP for reliable delivery)
 #
 # An on-disk queue is created for this action. If the remote host is
 # down, messages are spooled to disk and sent when it is up again.
 $WorkDirectory /var/lib/rsyslog # where to place spool files
 $ActionQueueFileName server1 # unique name prefix for spool files
 $ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
 $ActionQueueSaveOnShutdown on # save messages to disk on shutdown
 $ActionQueueType LinkedList   # run asynchronously
 $ActionResumeRetryCount -1    # infinite retries if host is down
 # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
 *.* @@10.0.0.2
 # ### end of the forwarding rule ###

サーバー2:

 # ### begin forwarding rule ###
 # The statement between the begin ... end define a SINGLE forwarding
 # rule. They belong together, do NOT split them. If you create multiple
 # forwarding rules, duplicate the whole block!
 # Remote Logging (we use TCP for reliable delivery)
 #
 # An on-disk queue is created for this action. If the remote host is
 # down, messages are spooled to disk and sent when it is up again.
 $WorkDirectory /var/lib/rsyslog # where to place spool files
 $ActionQueueFileName server2 # unique name prefix for spool files
 $ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
 $ActionQueueSaveOnShutdown on # save messages to disk on shutdown
 $ActionQueueType LinkedList   # run asynchronously
 $ActionResumeRetryCount -1    # infinite retries if host is down
 # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
 *.* @@10.0.0.1
 # ### end of the forwarding rule ###

問題は、これが基本的に無限ループのような結果を引き起こすことです。 IE 各システムには独自のエントリがあり、各システムのすべての新しいエントリがあります。したがって、同じ情報がコピーされ続け、ログファイルがすばやく入力されます。

私が望むことをする方法はありますか?

私はrsyslog v5(RHEL 6 / Centos 6)標準を使用しています。

ベストアンサー1

あなたはこれを行うことができます条件文の使用、rsyslogの構文設定は実行しているバージョンによって異なりますが、CentOSのバージョンはますます古いです。

udpサーバー構成(UDPServerRunまたは同様の構成)の後ろにメッセージをリモートで転送するように指示する前に、以下を追加してみることができます。

if $fromhost-ip startswith '10.0.0.' then /var/log/remotelogs.log
& ~

これしなければならないリモートログを別々のファイルに送信し、追加の処理/配信を防止します。

syslogメッセージを転送する予定の場合は、専用のsyslogプロキシ/ストレージサーバー設定を検討することをお勧めします。重複したコピーを保存する必要がある場合は、2つ程度にすることもできます。単純なsyslogサーバーが時間を費やす価値がないと思っている場合は、Logstash(および通常はELKスタック)またはSplunkをサイドプロジェクトとして見ることができます。

おすすめ記事