我正在尝试从1.x升级我们的ELK堆栈。 5.x遵循re-index from remote说明。我不确定如何导出我需要创建的索引列表,然后将该列表导入新实例。我使用this command创建了一个索引列表,两者都是“漂亮”,没有,但我不确定要使用哪种文件格式以及下一步该文件的内容。
创建索引指令不涉及如何一次创建多个,并且批量指令仅涉及创建/索引文档,而不是创建索引本身。如何最好地遵循升级说明的任何帮助将不胜感激。
我显然没有足够的声誉来链接“创建索引”和“批量”指令,所以道歉。
答案 0 :(得分:2)
使用单个curl命令,您可以创建一个index template,它将在文档到达ES 5.x群集时触发创建索引。
基本上,这个单一的curl命令将创建一个索引模板,该模板将为即时创建的每个新索引启动。然后,您可以使用“远程重新索引”技术将文档从ES 1.x移动到ES 5.x,并且不用担心索引创建,因为索引模板会处理它。
curl -XPUT 'localhost:9200/_template/my_template' -H 'Content-Type: application/json' -d'
{
"template": "*",
"settings": {
"index.refresh_interval" : -1,
"index.number_of_replicas" : 0
}
}
'
答案 1 :(得分:0)
能够通过通过sed提供的索引列表创建的格式化索引列表来完成此操作,然后通过以下脚本提供该文件:
#! /bin/bash
while read some_index; do
curl -XPUT "localhost:9200/$some_index?pretty" -d'
{
"settings" : {
"index" : {
"refresh_interval" : -1,
"number_of_replicas" : 0
}
}
}'
sleep 1
done <$1
如果有人能指出我在Elasticsearch中任何预先存在的机制的方向,请做。