Amazon Elasticsearch Service的状态变为红色时的解决方案
亚马逊 Elasticsearch 服务是什么?
这是一个很棒的服务,可以立即在AWS上使用Elasticsearch,并提供监控仪表板。
https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/what-is-amazon-elasticsearch-service.html
Amazon Elasticsearch Service (Amazon ES) 是一个托管型服务,可以轻松部署、运营和扩展在AWS云上的Elasticsearch集群。
解决方法:删除发生问题的索引。

当发生错误时,会以非常明显易懂的方式显示如上所示。
在物流行业中,”赤字状态”指的是至少有一个主分区(类似于索引的碎片)和其副本未被分配给Elasticsearch节点(类似于进程的实体)的情况。这通常是因为Elasticsearch进程负载过重导致崩溃所引起的。如果内存使用率一直接近100%,或者CPU使用率持续达到100%,那么系统易受损。
最简单的解决办法是找到并删除其中有损碎片的索引。
在这种情况下,不要重新设置域名而不解决红色状态!听说问题会恶化,变得非常麻烦。
在重新配置您的Amazon ES域之前,重要的一步是解决红色集群状态。重新配置具有红色集群状态的域名可能会加重问题,并导致域名一直处于处理状态,直到您解决该状态。
在此我们将参考以下页面来确认状态:
https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/aes-handling-errors.html#aes-handling-errors-red-cluster-status
从原因的片段中寻找问题的索引
可以通过GET /_cluster/allocation/explain查询到“current_state”为“unassigned”的分片。例如如下:
curl https://hogehoge.ap-northeast-1.es.amazonaws.com:443/_cluster/allocation/explain
然后,你会收到响应。在这种情况下,建议删除的索引是TestErrorIndex。
{
"index":"TestErrorIndex",
"shard":1,
"primary":false,
"current_state":"unassigned",
(省略)
}
寻找直接状态为红色的索引。
在使用GET /_cat/indices?v时,您可以检查所有索引的状态。即使在上述被标识为“有错误的索引”的情况下,由于此状态检查还可能存在绿色指示,所以最好同时进行两种检查。
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open test1 30h1EiMvS5uAFr2t5CEVoQ 5 0 820 0 14mb 14mb
green open test2 sdIxs_WDT56afFGu5KPbFQ 1 0 0 0 233b 233b
green open test3 GGRZp_TBRZuSaZpAGk2pmw 1 1 2 0 14.7kb 7.3kb
red open test4 BJxfAErbTtu5HBjIXJV_7A 1 0
green open test5 _8C6MIXOSxCqVYicH3jsEA 1 0 7 0 24.3kb 24.3kb
删除索引
如果只是要删除的话
curl -XDELETE https://hogehoge.ap-northeast-1.es.amazonaws.com:443/<インデックス名>?pretty=true
可以在中文中执行。
如果无法删除,可以尝试恢复快照、从索引中删除文档、更改索引设置、减少副本数量、删除不需要的索引以释放磁盘空间。请注意不要重新设置域。
目前状态应该已经变为绿色,Elasticsearch应该恢复可用了!
未来的应对措施 de
由于通常情况下机器负载较重,您可以通过修改使用Elasticsearch的服务端或增加实例来借助金钱的力量解决问题。