在我正在处理的集群中有两个主要索引,比如indexA
和indexB
,但这两个索引每天都被索引,所以我只有indexA-{+YYYY.MM.dd}
和{{ 1}}。
我想要的是拥有一个将indexB-{+YYYY.MM.dd}
和indexA-{+YYYY.MM.dd}
聚集在一起并命名为indexB-{+YYYY.MM.dd}
的别名。
有没有人知道如何使用logstash在一个别名中收集两个索引?
提前谢谢
答案 0 :(得分:3)
据我所知,没有办法直接使用logstash。您可以使用elasticsearch API从外部程序执行此操作:http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html
例如:
curl -XPOST 'http://localhost:9200/_aliases' -d '
{
"actions" : [
{ "add" : { "index" : "indexA-2015.01.01", "alias" : "alias-2015.01.01" } },
{ "add" : { "index" : "indexB-2015.01.01", "alias" : "alias-2015.01.01" } }
]
}'
另一个选项(不符合命名alias-yyyy.mm.dd
的要求)是使用索引模板,在创建索引时自动添加别名。
请参阅http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html:
curl -XPUT localhost:9200/_template/add_alias_template -d '{
"template" : "index*",
"aliases" : {
"alias" : {}
}
}
}'
这会将alias
的别名添加到名为index
*的每个索引。
然后,您可以针对别名执行所有查询。您可以在Kibana中将该别名设置为索引,事情就可以正常工作。