部分的に切断されたクライアントのログ転送

部分的に切断されたクライアントのログ転送

次のアーキテクチャを考えてみましょう。

イーサネット経由でサーバーに接続されたラップトップがあります。
ラップトップはサーバーのrsyslogを使用してログイベントを送信するように構成されており、サーバーはこれらのログを受け入れ、後でログ利用ソフトウェアで使用するためにファイルに保存するように構成されています。

問題は、場合によっては、リモートの場所で作業するためにラップトップの接続が切断され、数時間後に再接続することができることです。しかし、再接続した後でも、すべてのローカルイベントをサーバーに送信したいと思います。

現在私の考えはsyslogモジュールを使用しomrelpてイベントをディスクキューにローカルに保存することですが、syslogサーバーが再利用可能になったらどうなるかわかりません。 relpプロトコルがメッセージを再送信しない場合、タイムアウト/制限はありますか?それとも私の状況に合わないかもしれません。

もう1つの解決策は、再接続後にクライアントとサーバー間のログを調整するカスタムスクリプトを作成することですが、より良い解決策があるかどうか疑問に思います。

ベストアンサー1

Rsyslog は、すべてのジョブにキュー・メカニズムを提供します。キューは、大きすぎたり閉じたりするとディスクに移動するまでメモリに残ります。omfwdに頼らず、通常のTCP転送設定で使用できますomrelp

詳しくはこちら 待ち行列、全体の内容を見る キューオプション ドキュメントまたは2番目のRedHatを見てください。 はい 「25.14. 新しい構文を使用して単一のサーバーに渡す」

このようなレガシー構文がある場合

*.* @@192.168.0.2:514

または RainerScript バージョン

action(type="omfwd" Target="192.168.0.2" Port="514" Protocol="tcp")

次のものと交換してください。

action(type="omfwd" Target="192.168.0.2" Port="514" Protocol="tcp"
       queue.type="linkedlist"
       queue.filename="stufftoforward"
       action.resumeRetryCount="-1"
       queue.saveOnShutdown="on")

おすすめ記事