【问题标题】:Elasticsearch on AWS RED and reroute not allowedAWS RED 上的 Elasticsearch 和不允许重新路由
【发布时间】:2016-07-12 08:16:06
【问题描述】:

我创建了一个 ES 域来搜索带有每日索引的 vpcglow 日志和云跟踪日志。 目前,状态为红色:

{
   "cluster_name": "678628912247:test",
   "status": "red",
   "timed_out": false,
   "number_of_nodes": 17,
   "number_of_data_nodes": 17,
   "active_primary_shards": 687,
   "active_shards": 1374,
   "relocating_shards": 0,
   "initializing_shards": 0,
   "unassigned_shards": 8,
   "number_of_pending_tasks": 0
}

进一步调查发现,一个索引是 RED:

red   open cwl-2016.02.19 5 1    381700  102899 335.8mb 167.9mb

查看碎片:

cwl-2016.02.19  2   p   UNASSIGNED                  
cwl-2016.02.19  2   r   UNASSIGNED                  
cwl-2016.02.19  0   p   UNASSIGNED                  
cwl-2016.02.19  0   r   UNASSIGNED                  
cwl-2016.02.19  3   p   STARTED 381700  167.9mb x.x.x.x Elektra Natchios
cwl-2016.02.19  3   r   STARTED 381700  167.9mb x.x.x.x Chronos 
cwl-2016.02.19  1   p   UNASSIGNED                  
cwl-2016.02.19  1   r   UNASSIGNED                  
cwl-2016.02.19  4   p   UNASSIGNED                  
cwl-2016.02.19  4   r   UNASSIGNED

我试图将分片重新路由到使用较少的节点,但它给了我:

{"Message":"Your request: '/_cluster/reroute' is not allowed."}

任何建议请我现在应该做什么。

感谢和问候。

【问题讨论】:

  • 您的集群中有 17 个节点(“number_of_nodes”:17)。还有未分配的分片(“unassigned_shards”:8)。当您有未分配的分片时,您的 ES 运行状况可能会变为“黄色”或“红色”。尝试重新启动 elasticsearch 服务。如果您有多个 elasticsearch 节点,则停止所有节点(通过停止每个节点的服务)并一个接一个地启动。让每个节点完全初始化,然后再启动其他节点。希望这会有所帮助。

标签: amazon-web-services elasticsearch


【解决方案1】:

红色集群状态表示至少一个主分片及其副本未分配给节点。

既然您已经找到红色索引,最好的选择是删除它。 如果无法删除,则恢复快照(请注意 AWS 自动拍摄快照)

作为最后的手段,您可以联系 AWS 支持,他们可以为您恢复它。

修复红色集群很重要,因为一旦集群处于红色状态,AWS 就会停止拍摄自动快照。

【讨论】:

  • 这是否意味着AWS不支持集群重路由?
【解决方案2】:

RED 集群意味着一个或多个主分片不可用,这意味着数据丢失及其非常严重的问题,需要立即修复。

  1. 如果您有快照,请尝试从中恢复索引。
  2. 将来尝试增加副本,这样您就不会丢失主分片,并且可以轻松地从副本分片中恢复。
  3. 查看 ES 集群日志,尝试找出缺少主分片的原因。
  4. 看看reroute API是否有用,如果磁盘上有可用的分片但没有ES可以分配它的数据节点,看看你是否可以数据节点或创建一个可以恢复主分片的配置.
  5. 关于尝试运行reroute API 时的错误,这似乎是一个权限问题,您可以通过适当的访问来解决。

【讨论】:

    【解决方案3】:

    Elasticsearch 分配 API

    Allocation API 将帮助您了解集群分配问题。

    curl -XGET "location:9200/_cluster/allocation/explain"
    

    解决分配 API 解释的问题或原因,并使用以下内容重新启动分配

    curl -X POST http://127.0.0.1:9200/_cluster/reroute?retry_failed=true
    

    【讨论】:

      猜你喜欢
      • 2018-03-28
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 2016-03-29
      • 2013-11-10
      • 2021-08-01
      相关资源
      最近更新 更多