4

syslog-ng経由でアクセスログファイルをリモートサーバーに送信するために使用していますtcp。そして、次のように、このジョブを実行するために複数の宛先を構成できることを既に知っています。

source s_xxx { file("/xxx/access.log"); };
destination d_one {tcp("1.2.3.4", port(1234));};  
destination d_two {tcp("1.2.3.5", port(1234));};
log {source(s_xxx); destination(d_one); destination(d_two);};

私が理解しようとしているのは、コンテンツをこれら 2 つの宛先 (ラウンドロビンなど) にポーリングする方法です。つまり、私のコンテンツは、両方ではなくd_oneまたはd_twoのいずれかに送信されます。

どうもありがとう。

4

2 に答える 2

5

私のシナリオは非常に似ています。メッセージを分析アプリケーションに転送する syslog-ng コレクターがあります。過負荷になり、負荷を分割する必要がありました。フィルタリングするトラフィックの要件はなく、タイプのリストを維持したくありませんでした。あなたが探しているように、メッセージごとにラウンドロビンにメッセージを送信したかっただけです。これを実現するために mod(%) を使用することにしました。

Syslog-ng OSE v3.7.2:

destination d_net_qr1 { network("ip1"); };
destination d_net_qr2 { network("ip2"); };

filter f_qr1     { "$(% ${RCPTID} 2)"  eq "0"  };
filter f_qr2     { "$(% ${RCPTID} 2)"  eq "1"  };

log { source(s_net); filter(f_qr1); destination(d_net_qr1); };    
log { source(s_net); filter(f_qr2); destination(d_net_qr2); };
于 2015-12-09T22:51:25.323 に答える
0

syslog-ng オープン ソース エディションには、現在、ラウンド ロビン方式でメッセージを送信する簡単な方法がありません。負荷分散のためにこれを行いたい場合は、$SEC マクロを使用してマクロ値を比較し、数秒ごとに宛先を切り替えるフィルターを考え出すことができます。http://www.balabit.com/sites/を参照してください。 default/files/documents/syslog-ng-ose-3.6-guides/en/syslog-ng-ose-v3.6-guide-admin/html/filters-comparing.html

HTH、

よろしく、

ロバート

于 2015-01-26T08:59:15.447 に答える