
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をサイドプロジェクトとして見ることができます。