Templates Logstash不断覆盖Elasticsearch索引模板
我正在使用Logstash将日志数据发送到Elasticsearch数据库。我想将碎片的数量从3更改为1,并通过ES REST API发出以下命令:Templates Logstash不断覆盖Elasticsearch索引模板,templates,
elasticsearch,logstash,Templates,
elasticsearch,Logstash,我正在使用Logstash将日志数据发送到Elasticsearch数据库。我想将碎片的数量从3更改为1,并通过ES REST API发出以下命令: PUT server_name/_template/logstash { "template": "logstash", "settings": { "index.number_of_replicas": "0", "index.refresh_interval": "5s",
PUT server_name/_template/logstash
{
"template": "logstash",
"settings": {
"index.number_of_replicas": "0",
"index.refresh_interval": "5s",
"index.number_of_shards": "1"
}
}
服务器响应正常,如果我发出GET\u template/logstash,我可以看到碎片的数量现在设置为1
然后我启动logstash,并将输出设置为将日志发送到Elasticsearch。没有与模板相关的设置。发送日志数据后,我看到碎片的数量被设置回其默认值(3)
我甚至试图通过引用Logstash配置文件中的模板来覆盖它。不,无论我指定什么,设置都会重置回来。看起来Logstash一直在用一些默认值覆盖Elasticsearch索引设置,我不知道如何禁用它
更新。我已将以下行添加到Logstash配置文件中,但没有帮助:
manage_template => false
template_overwrite => true
还尝试将模板覆盖设置为false。我尝试了两种不同的方法来设置JSON文件中的碎片数:
{
"logstash": {
"template": "logstash-*",
"settings": {
"index.number_of_replicas": "0",
"index.refresh_interval": "5s",
"index.number_of_shards": "1"
}
}
}
及
在Logstash配置中的
elasticsearch{}
元素上,如果要在Logstash之外管理模板,则需要添加manage\u template=>false
。好的,几个小时后我发现以下内容:
我已经在配置中添加了以下几行:manage\u template=>false template\u overwrite=>true,但是在删除索引并重新启动Logstash之后,我仍然会得到默认的碎片数。谢谢。我也试过了。神秘。仍然重置。我还发布了我的JSON文件的内容。你删除了logstash-*索引ie
curl localhost:9200/_cat/shards | grep logstash
没有显示索引/碎片?因为您无法更改已创建索引上的碎片数。是的,我每次都会删除用于测试的索引。您是否有另一个使用不同设置运行的logstash副本?(即GET localhost:9200/_cluster/state/nodes?pretty
)显示任何日志存储节点(我的集群显示3个,因为我运行了多个日志存储副本)
{
"template": "logstash-*",
"settings" : {
"index.number_of_shards" : 1,
"index.number_of_replicas" : 0,
}
}