elasticsearch版本:elasticsearch-2.2.0.rpm logstash版本:logstash-2.2.2-1.noarch.rpm
我启动elasticsearch,然后使用具有基本stdin / stdout的/etc/logstash/conf.d/logstash.conf进行logstash,但不创建弹性搜索索引。如果我将以下内容添加到我的logstash输出配置中,我会得到一个指示黄色状态的索引:
action => “创建” index => “main_index”
它是黄色且不可用的原因是因为分片数为5而副本为3.如果我运行:
curl -XPUT'http://localhost:9200/index2/' - d' 指数: number_of_shards:1 number_of_replicas:0 “
“index2”为绿色且可用。我如何告诉logstash和/或elasticsearch我希望我的索引有1个碎片和0个副本而不发出curl命令?
感谢。
答案 0 :(得分:3)
您有三种解决方案:
"number_of_replicas": 0
elasticsearch.yml
中,您更改名为index.number_of_replicas
的设置并将其设置为0(然后重新启动ES)答案 1 :(得分:0)
例如,你可以使用以下请求创建一个小索引 - 只有一个主分片 - 而不是副本分片:
PUT /my_index
{
"settings": {
"number_of_shards" : 1,
"number_of_replicas" : 0
}
}
答案 2 :(得分:0)
为了完成Val´s answer,这里是ES版本5.x的更新:
解决方案3不起作用,因为配置文件禁用了索引级别配置:“由于弹性搜索5.x索引级别设置无法在诸如elasticsearch.yaml之类的节点配置上设置”
解决方案1确实有效,下面是一个例子:
更改模板名称以匹配您的索引名称模式,并首先添加您要更新的索引设置:
{
"template" : "syslog*",
"version" : 50001,
"settings" : {
"index.refresh_interval" : "5s",
"index.number_of_replicas" : 0,
"index.number_of_shards" : 1
},
...
}
更新logstash配置,以便输出使用创建的模板:
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "syslog%{+YYYY.MM.dd}"
template => "path_to_your_template.json"
template_name => "syslog*"
template_overwrite => true
}
}
重启服务