0

filebeatを使っていますが、metricbeatも導入したいと思っています。Filebeat の出力は logstash-* でインデックス化されますが、metricbeat からのデータのみを含む別のインデックスが必要です ( metricbeat-test-%{+YYYY.MM.dd} など)。これらは単一のサーバーで一緒に実行されます。

logstash に、logstash-* 内の filebeat のものにインデックスを付けるように指示するにはどうすればよいですか? また、metricbeat が続行して別のインデックスを使用する場合はどうすればよいですか?

多かれ少なかれIFステートメントが必要ですが、そこに何を含めるべきかわかりません!

私のlogstash設定は次のようになります:

output { elasticsearch { ホスト => "10.0.0.5:9200" manage_template => "true" インデックス => "logstash-test-%{+YYYY.MM.dd}" document_type => "apache" } }

4

1 に答える 1

2

いずれかの Beat がデータを Logstash に送信すると、宛先インデックスが[@metadata][beat]フィールドに追加されます。デフォルトでは、Beat はこの値を独自の名前 (例: filebeat) に設定します。また、値をカスタマイズする場合は、output.logstash.index構成オプションを設定できます。

Beats からのすべてのイベントに存在するメタデータを利用するには、Logstash で elasticsearch 出力を次のように構成する必要があります。

output {
  if [@metadata][beat] {
    elasticsearch {
      hosts => "localhost:9200"
      manage_template => false
      index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
      document_type => "%{[@metadata][type]}"
    }   
  }   
}

これは、Logstash での使用方法に関するBeats のドキュメントからのものです。この出力が Beats データのみに使用されるように、条件を追加しました。パイプラインを通過する他のデータに対して、別の elasticsearch 出力を構成します。

最後に、filebeat-*およびmetricbeat-*インデックスを使用しているため、提供されているインデックス テンプレートを手動でインストールする必要があります。各 Beat のダウンロード パッケージにインデックス テンプレートが用意されています。Elasticsearch 2.x および 5.x 用のテンプレートがあります。適切なものを使用してください。

テンプレートは curl ( docs ) でインストールします。例えば、

curl -XPUT 'http://localhost:9200/_template/filebeat' -d@/etc/filebeat/filebeat.template.json

于 2016-12-16T19:54:40.403 に答える