私は、デバイスがログを送信してから、それを解析してelasticsearchに入れてログアウトするというプロトタイプを持っています。Elasticsearchとlogstashに動的ホストを追加するには
Logstash出力コード: -
output{
if [type] == "json" {
elasticsearch {
hosts => ["host1:9200","host2:9200","host3:9200"]
index => "index-metrics-%{+xxxx.ww}"
}
}
}
今、私の質問は:
私は、このソリューションを生成します。簡単にするために、1つのクラスターがあり、そのクラスター内に5つのノードがあると仮定します。
私はelasticsearch出力プラグインで5ノードのIP /ホスト名の配列を与えることができることを知っています。そして、データを配布するためにロビンを丸めます。
すべてのノードIP /ホスト名をlogstash設定ファイルに入れないでください。
システムが稼動するにつれて、手動で各logstashインスタンスに入り、これらのホストを更新したくありません。
この場合、ベストプラクティスは何ですか?
私の要件は次のとおりです。
私はESクラスタを実行したいと私は追加/削除/任意の時点でのノードの任意の数を更新します。 ES側の変更に関係なく、すべてのログスタッシュインスタンスがデータを送信する必要があります。
ありがとうございました。
お返事ありがとうございます。 hosts => [$ HOSTS]は設定ファイルに追加され、ホストを動的に追加するには以下の行を正しく実行する必要があります。 $ HOSTS = "\" host1:9200 \ "、\" host2:9200 \ "" $ sed "s/\ $ HOSTS/$ HOSTS/g" $ config – sundar