ES 一启动就报:all shards failed
原创
©著作权归作者所有:来自51CTO博客作者莫唯轩_彦的原创作品,请联系作者获取转载授权,否则将追究法律责任
出现这种问题,一般是索引文件损坏了,可能是内存不足,导致文件坏了,这个时候,按照以下步骤一步步排查可解决:
1、查看健康情况:
curl -XGET 'http://127.0.0.1:9200/_cluster/health?pretty=true'
最后一栏:active_shards_percent_as_number 的值,健康状态的值没有达到 100,现在才 50 多。
2、查看损坏索引:
curl -XGET 'http://127.0.0.1:9200/_cat/indices?v&pretty'
看最左边的 health 下面的状态颜色,应该都为 green 才对,现在有 yellow ,有些时候是 red 等
3、开始修复:
curl -H "Content-Type: application/json" -XPUT 'http://127.0.0.1:9200/_all/_settings' -d '
{
"index" : {
"number_of_replicas" : 0
}
}'
返回 {"acknowledged":true} 即修复好。
4、最后再查看健康状态:
active_shards_percent_as_number 已恢复为 100 ,即可正常启动 es 了。
【最后:如果遇到还是不行,可以选择 delete 损坏的索引:】
curl -XDELETE "http://127.0.0.1:9200/mongo*
mongo 这个索引值,看步骤二下的 index 值