次のコードを使用して、logstash.confにインデックスを作成しました
output {
stdout {codec => rubydebug}
elasticsearch {
Host => "localhost"
protocol => "http"
index => "trial_indexer"
}
}
別のインデックスを作成するには、通常、上記のコードでインデックス名を別のインデックスに置き換えます。同じファイルに多くのインデックスを作成する方法はありますか?私はELKが初めてです。
いずれかのフィールドの値に基づいて、インデックス名にパターンを使用できます。ここでは、インデックスに名前を付けるためにtype
フィールドの値を使用します。
output {
stdout {codec => rubydebug}
elasticsearch {
Host => "localhost"
protocol => "http"
index => "%{type}_indexer"
}
}
同じESホストまたは異なるESホストのいずれかに複数のelasticsearch
出力を使用することもできます。
output {
stdout {codec => rubydebug}
elasticsearch {
Host => "localhost"
protocol => "http"
index => "trial_indexer"
}
elasticsearch {
Host => "localhost"
protocol => "http"
index => "movie_indexer"
}
}
または、いくつかの変数に基づいてドキュメントを異なるインデックスにルーティングすることもできます。
output {
stdout {codec => rubydebug}
if [type] == "trial" {
elasticsearch {
Host => "localhost"
protocol => "http"
index => "trial_indexer"
}
} else {
elasticsearch {
Host => "localhost"
protocol => "http"
index => "movie_indexer"
}
}
}
[〜#〜] update [〜#〜]
Logstash 2および5では、構文が少し変更されています。
output {
stdout {codec => rubydebug}
if [type] == "trial" {
elasticsearch {
hosts => "localhost:9200"
index => "trial_indexer"
}
} else {
elasticsearch {
hosts => "localhost:9200"
index => "movie_indexer"
}
}
}