ElasticSearch

ElasticSearch,第1张

ElasticSearch

仅在使用ELK堆栈几个月并

filebeat
逐日创建索引后才可见的常见问题。这里有一些选项可以解决性能问题。

_forcemerge

首先,您可以

_forcemerge
用来限制Lucene索引中的段数。 *** 作不会限制或合并索引,但会提高Elasticsearch的性能。

curl -XPOST 'localhost:9200/logstash-2017.07*/_forcemerge?max_num_segments=1'

这将贯穿整个月的索引并强制合并细分。每月完成一次后,它将大大提高Elasticsearch的性能。以我为例,CPU使用率从100%下降到2.7%。

不幸的是,这不能解决分片问题。

_reindex

_reindex
在继续之前,请阅读文档并备份数据库。

正如tomas所提到的。如果要限制分片或索引的数量,除了

_reindex
将少数索引合并为一个索引外,别无选择。这可能需要一段时间,具体取决于您拥有的索引的数量和大小。

目的地索引

您可以预先创建目标索引并指定其应包含的分片数量。这将确保您的最终索引将包含您需要的分片数量。

curl -XPUT 'localhost:9200/new-logstash-2017.07.01?pretty' -H 'Content-Type: application/json' -d'{    "settings" : {        "index" : { "number_of_shards" : 1         }    }}'
分片数量限制

如果要限制每个索引的分片数量,则可以

_reindex
一对一运行。在这种情况下,不应删除任何条目,因为它将是精确的副本,但分片数量较少。

curl -XPOST 'localhost:9200/_reindex?pretty' -H 'Content-Type: application/json' -d'{    "conflicts": "proceed",    "source": {        "index": "logstash-2017.07.01"    },    "dest": {        "index": "logstash-v2-2017.07.01",        "op_type": "create"    }}'

完成此 *** 作后,您可以删除旧索引并使用新索引。不幸的是,如果您想使用旧名称,则需要多花

_reindex
一点时间使用新名称。如果您决定这样做

不要忘记指定新索引的数量!默认情况下,它将恢复为5。

合并多个索引并限制分片数量
curl -XPOST 'localhost:9200/_reindex?pretty' -H 'Content-Type: application/json' -d'{    "conflicts": "proceed",    "source": {        "index": "logstash-2017.07*"    },    "dest": {        "index": "logstash-2017.07",        "op_type": "create"    }}'

完成后,你应该有所有的条目

logstash-2017.07.01
logstash-2017.07.31
合并成
logstash-2017.07
。请注意,旧索引必须手动删除。

一些条目可以覆盖或合并,这取决于它

conflicts
op_type
你选择的选项。

进一步的步骤使用一个分片创建新索引

您可以设置将在每次创建新索引时使用的索引模板

logstash

curl -XPUT 'localhost:9200/_template/template_logstash?pretty' -H 'Content-Type: application/json' -d'{    "template" : "logstash-*",    "settings" : {        "number_of_shards" : 1    }}'

这将确保创建的每个

logstash-
名称匹配的新索引都只有一个分片。

按月分组日志

如果您没有流太多日志,则可以设置

logstash
按月分组日志。

// file: /etc/logstash/conf.d/30-output.confoutput {    elasticsearch {        hosts => ["localhost"]        manage_template => false        index => "%{[@metadata][beat]}-%{+YYYY.MM}"        document_type => "%{[@metadata][type]}"    }}
最后的想法

解决初始配置错误并不容易!通过优化您的elasticsearch祝您好运!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4880392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-11
下一篇 2022-11-11

发表评论

登录后才能评论

评论列表(0条)

保存