我正在AWS上设置一个由两台机器组成的新集群,作为ELK日志服务器堆栈。我已经在新集群中导入了4个月的日志数据。
我正在尝试重现ES网站上“退休数据”文档中解释的行为:
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/retiring-data.html
具体来说,我正在尝试使索引从主计算机移动到辅助计算机。我已经通过elasticsearch.yml文件将node.box_type设置设置为主计算机上的“recent”和辅助计算机上的“old”。
要将索引从群集中的主计算机(“recent”)迁移到辅助计算机(“较旧”),我正在执行以下一组API调用:
curl -XPUT http://es1.vpc3.ftaws.net:9200/logstash-2014.08.02/_settings -d '{
"index" : {"index.routing.allocation.include.box_type" : "older"}}'
当我这样做时,5个分片中只有1个交换了实时和备份副本的位置,以便实时副本在辅助机器上。所以我在“最近”获得了4个分片,而在“年龄”上分享了一个分片。更重要的是,如果我最初只启动辅助计算机并让索引重建,以便每个索引的所有5个活动分片都在辅助计算机上,然后调出主计算机,然后执行上述调用,5个中的4个碎片交换,以便与第一种情况一样,只有一个碎片在辅助机器上以其实时副本结束。
这是一张关于elasticsearch-head控制台应用程序发生了什么的图片:
我在前两个显示的索引中运行了上述调用。请注意,在这两种情况下,移动的一个分片是不同的。第三个显示的索引是“之前”状态,这是我尚未尝试迁移的索引。我已经使用API确认了每个分片的状态,以确保不仅仅是控制台应用程序搞砸了。
以下是两台机器设置的重要部分
初级:
{
"name": "es1-vpc3",
...
"attributes": {
"box_type": "recent"
},
...
"cluster": {
"name": "es-vpc3"
},
"node": {
"name": "es1-vpc3",
"box_type": "recent"
},
....
}
次级:
{
"name": "es2-vpc3",
...
"attributes": {
"box_type": "older"
},
...
"cluster": {
"name": "es-vpc3"
},
"node": {
"name": "es2-vpc3",
"box_type": "older"
},
....
}
我错过了什么?这是一个错误吗?
TIA提供您可以提供的任何帮助。
史蒂夫