如何使用 logstash 在两个索引上创建别名?
How to create an alias on two indexes with logstash?
在我正在处理的集群中有两个主要索引,比方说 indexA
和 indexB
但是这两个索引每天都会被索引所以通常我有 indexA-{+YYYY.MM.dd}
和indexB-{+YYYY.MM.dd}
.
我想要的是有一个别名,将indexA-{+YYYY.MM.dd}
和indexB-{+YYYY.MM.dd}
聚集在一起并命名为alias-{+YYYY.MM.dd}
。
有谁知道如何使用 logstash 在一个别名中收集两个索引?
提前致谢
据我所知,没有办法直接用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 中将该别名设置为索引,一切正常。
在我正在处理的集群中有两个主要索引,比方说 indexA
和 indexB
但是这两个索引每天都会被索引所以通常我有 indexA-{+YYYY.MM.dd}
和indexB-{+YYYY.MM.dd}
.
我想要的是有一个别名,将indexA-{+YYYY.MM.dd}
和indexB-{+YYYY.MM.dd}
聚集在一起并命名为alias-{+YYYY.MM.dd}
。
有谁知道如何使用 logstash 在一个别名中收集两个索引?
提前致谢
据我所知,没有办法直接用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 中将该别名设置为索引,一切正常。