Ответ 1
Вы можете использовать шаблон в своем имени индекса на основе значения одного из ваших полей. Здесь мы используем значение поля type
, чтобы назвать индекс:
output {
stdout {codec => rubydebug}
elasticsearch {
host => "localhost"
protocol => "http"
index => "%{type}_indexer"
}
}
Вы также можете использовать несколько выходов elasticsearch
либо на том же узле ES, либо на разных ES-хостах:
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"
}
}
}
ОБНОВЛЕНИЕ
Синтаксис немного изменился в 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"
}
}
}