elasticsearch 弹性搜索索引硬网关恢复异常,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" /> elasticsearch 弹性搜索索引硬网关恢复异常,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" />

elasticsearch 弹性搜索索引硬网关恢复异常

elasticsearch 弹性搜索索引硬网关恢复异常,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana,我是ELK的新手,今天我发现了这些日志(这些日志大约有数千页),弹性搜索使用了太多的CPU。有人能帮我吗 日志: [2015-06-24 16:16:52309][WARN][cluster.action.shard][Bereet][logstash-2015.06.24][0]接收到[logstash-2015.06.24][0]、节点[ucXcuxuQQTSz_leAzWq6mQ]、[P]、s[INDEXUID[ieIR8uWLQHycnEC_szsNZQ]的碎片失败原因[shard fa

我是ELK的新手,今天我发现了这些日志(这些日志大约有数千页),弹性搜索使用了太多的CPU。有人能帮我吗

日志:
[2015-06-24 16:16:52309][WARN][cluster.action.shard][Bereet][logstash-2015.06.24][0]接收到[logstash-2015.06.24][0]、节点[ucXcuxuQQTSz_leAzWq6mQ]、[P]、s[INDEXUID[ieIR8uWLQHycnEC_szsNZQ]的碎片失败原因[shard failure][failed][failed recovery][INERY][INDERECOVERY][INDEXSHARDGATED GATED GATED][INERY recovery][INER无法恢复碎片];嵌套:TranslogCorruptedException[从流读取时translog损坏];嵌套:ElasticsearchIllegalArgumentException[无版本类型匹配[99];]]
[2015-06-24 16:16:52332][WARN][cluster.action.shard][Bereet][logstash-2015.06.24][0]收到的[logstash-2015.06.24][0]、节点[ucXcuxuQQTSz_leAzWq6mQ]、[P]、s[INDEXUID[ieIR8uWLQHycnEC_szsNZQ]的碎片失败,原因[master[Bereet][ucXcuxuQQTSz_leazQ6MQ][IZ23CTH9H5Z][10.162 41.162:9300]已将碎片标记为初始化,但碎片标记为失败,重新发送碎片失败]
[2015-06-24 16:16:52339][WARN][index.engine][beret][logstash-2015.06.24][4]无法同步translog
[2015-06-24 16:16:52345][WARN][index.cluster][Bereet][logstash-2015.06.24][4]]由于[恢复失败],标记和发送碎片失败
org.elasticsearch.index.gateway.indexHardGatewayRecoveryException:[logstash-2015.06.24][4]无法恢复碎片
在org.elasticsearch.index.gateway.local.localIndexSharedGateway.recover(localIndexSharedGateway.java:290)上
在org.elasticsearch.index.gateway.indexSharedGatewayService$1.run(indexSharedGatewayService.java:112)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
原因:org.elasticsearch.index.translog.TranslogCorruptedException:从流读取时translog损坏
在org.elasticsearch.index.translog.ChecksummedTranslogStream.read上(ChecksummedTranslogStream.java:72)
在org.elasticsearch.index.gateway.local.localIndexSharedGateway.recover(localIndexSharedGateway.java:260)上
... 4更多
原因:org.elasticsearch.ElasticsearchIllegalArgumentException:无版本类型匹配[116]
位于org.elasticsearch.index.VersionType.fromValue(VersionType.java:307)
位于org.elasticsearch.index.translog.translog$Create.readFrom(translog.java:376)
在org.elasticsearch.index.translog.ChecksummedTranslogStream.read上(ChecksummedTranslogStream.java:68)
... 还有5个

一个translog似乎已损坏:TranslogCorruptedException[从流读取时translog损坏]

我认为,如果只删除损坏的translog(在节点的/index/${index_name}子目录中),应该可以解决这个特定问题。删除/修复损坏的translog后,可能会发现更多问题


这里有一个可能有用的链接:

对我来说,这是在系统崩溃后发生的(磁盘有足够的空间)

现在有一种官方方法可以使用提供的工具修复损坏的translog,但您可能会丢失未索引的数据,因此我建议备份translog(即出于法规遵从性原因;可能需要付出足够的努力,有人会希望在某个时候对其进行分析)

首先通过运行以下命令确认问题:

curl -XGET localhost:9200/_cluster/allocation/explain?pretty
查找受影响碎片的更简单方法:

curl -XGET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason| grep UNASSIGNED
停止电子搜索

假设碎片数2在索引qABaulDIRJyT06G3rBFfrC中受到影响(您的路径可能会有所不同),运行:

如果以root用户身份运行工具,请确保新创建的文件属于正确的用户/组:

chown -R elasticsearch:elasticsearch translog*
开始elasticsearch。 最后,如果elasticsearch停止尝试重用碎片,请运行以下命令强制elasticsearch修复该问题:

curl -XPOST localhost:9200/_cluster/reroute?retry_failed=true
查看未分配碎片的命令不应再返回结果

curl -XPOST localhost:9200/_cluster/reroute?retry_failed=true