J'ai utilisé le morceau de code suivant pour créer un index dans logstash.conf
output {
stdout {codec => rubydebug}
elasticsearch {
Host => "localhost"
protocol => "http"
index => "trial_indexer"
}
}
Pour créer un autre index, je remplace généralement le nom de l'index par un autre dans le code ci-dessus. Existe-t-il un moyen de créer de nombreux index dans le même fichier? Je suis nouveau chez ELK.
Vous pouvez utiliser un modèle dans votre nom d'index en fonction de la valeur de l'un de vos champs. Ici, nous utilisons la valeur du champ type
afin de nommer l'index:
output {
stdout {codec => rubydebug}
elasticsearch {
Host => "localhost"
protocol => "http"
index => "%{type}_indexer"
}
}
Vous pouvez également utiliser plusieurs sorties elasticsearch
vers le même hôte ES ou vers différents hôtes ES:
output {
stdout {codec => rubydebug}
elasticsearch {
Host => "localhost"
protocol => "http"
index => "trial_indexer"
}
elasticsearch {
Host => "localhost"
protocol => "http"
index => "movie_indexer"
}
}
Ou peut-être souhaitez-vous acheminer vos documents vers différents index en fonction d'une variable:
output {
stdout {codec => rubydebug}
if [type] == "trial" {
elasticsearch {
Host => "localhost"
protocol => "http"
index => "trial_indexer"
}
} else {
elasticsearch {
Host => "localhost"
protocol => "http"
index => "movie_indexer"
}
}
}
MISE À JOUR
La syntaxe a un peu changé dans Logstash 2 et 5:
output {
stdout {codec => rubydebug}
if [type] == "trial" {
elasticsearch {
hosts => "localhost:9200"
index => "trial_indexer"
}
} else {
elasticsearch {
hosts => "localhost:9200"
index => "movie_indexer"
}
}
}