elasticsearch节点故障,elasticsearch connection reset

  elasticsearch节点故障,elasticsearch connection reset

  1.故障分析和排除。一个Elasticsearch集群包括至少一个节点和一个索引。或者它可以具有一百个数据节点、三个独立的主节点和少量客户端节点3354,它们共同操作一千个索引(和数万个切片)。

  无论集群有多大,您都需要一种快速的方法来获得集群的状态。集群健康API扮演了这个角色。你可以把它想象成在10000英尺的高空鸟瞰星团。它可以告诉您放心,一切正常,或者警告您集群中的某个地方有问题。

  让我们执行集群健康API,看看响应者是什么样子的:

  GET _cluster/health和Elasticsearch中的其他API一样,cluster-health会返回一个JSON响应。这对于自动化和报警系统是很容易分析的。该响应包含关于您的集群的一些关键信息:

  { cluster _ name : elastic search _ cqdxlz , status: green , timed_out: false, number_of_nodes: 1, number_of_data_nodes: 1,Active _ primary _ shares: 10, active _ shares: 10, relocating _ shares: 0, initializing _ shares: 0, unassigned _ shares: 0} 最重要的响应信息是状态字段。状态可以是下列三个值之一:*绿色*所有主切片和副本切片都已分配。您的群集100%可用。*黄色*所有主切片都已切片,但至少缺少一个副本。不会有数据丢失,所以搜索结果还是完整的。但是,你的高可用性在一定程度上被削弱了。如果更多的切片消失,您将丢失数据。把黄色当成一个需要及时查处的警示。*红色*至少缺少一个主切片(及其所有副本)。这意味着您缺少数据:搜索只能返回一些数据,而分配给这个片的写请求将返回一个异常。绿色/黄色/红色状态是了解集群概况和当前情况的好方法。其余的指示器将为您提供集群状态的摘要:节点数和数据节点数是完全自描述的。Active_primary_shards表示群集中主碎片的数量。这是涵盖所有索引的聚合值。Active_shards是包含所有索引的_ all _ slices的汇总值,即包括副本切片。Relocating_shards显示当前从一个节点重定位到另一个节点的碎片数量。通常情况下应该是0,但是当Elasticsearch发现集群不平衡时,这个值就会上升。例如,添加了一个新节点,或者一个节点离线。Initializing_shards是刚刚创建的切片数。例如,当粗麦片第一次被编入索引时,切片将在短时间内初始化。这通常是一个临时事件,碎片不应该长时间处于初始化状态。当节点刚刚重启时,您也可能会看到初始化片段:当片段从磁盘加载时,它们将从初始化状态开始。Unassigned_shards是已存在于集群状态中的切片,但在集群中找不到它。通常,未分配存储片的来源是未分配的拷贝。例如,一个包含5个切片和1个副本的索引在单节点群集上将有5个未分配的副本切片。如果您的集群处于红色状态,它将长时间保留未分配的碎片(因为缺少主碎片)。深入研究:查找问题索引编辑器想象一下,有一天你遇到了一个问题,你发现你的集群健康状况是这样的:{

   cluster _ name : elastic search _ cqdxlz ,

  状态:红色,

   timed_out: false,

  节点数:8,

  数据节点数:8,

  active_primary_shards: 90,

  active_shards: 180,

  重定位_碎片:0,

  正在初始化_shards: 0,

  未分配的碎片数:20

  }

  好的,从这种健康状态我们可以推断出什么?嗯,我们的集群是红色的,这意味着我们缺少数据(主碎片复制碎片)。我们知道我们的集群最初有10个节点,但是只有8个数据节点处于这种健康状态。缺少两个数据节点。我们看到有20个未分配的存储片。这是我们能收集到的所有信息。那些丢失的碎片仍然是个谜。我们是否缺少20个索引,每个索引中有一个主切片?还是一个指数少了20个主切片?还是10个索引中各有1个主1个副本?是哪个指数?要回答这个问题,我们需要用level参数让cluster-health回答多一点信息:GET _cluster/health?Level=indices该参数将使集群健康API添加一个索引列表和每个索引的详细信息(状态、片段数量、未分配片段数量等)。)在我们的集群信息中:{

   cluster _ name : elastic search _ cqdxlz ,

  状态:红色,

   timed_out: false,

  节点数:8,

  数据节点数:8,

  active_primary_shards: 90,

  active_shards: 180,

  重定位_碎片:0,

  正在初始化_shards: 0,

  未分配的碎片数:20

  索引:{

  v1 :

  状态:绿色,

  碎片数量:10,

  副本数量:1,

  active_primary_shards: 10,

  active_shards: 20,

  重定位_碎片:0,

  正在初始化_shards: 0,

  “未分配的碎片数”:0

  },

  v2 :

  状态:红色,

  碎片数量:10,

  副本数量:1,

  active_primary_shards: 0,

  active_shards: 0,

  重定位_碎片:0,

  正在初始化_shards: 0,

  未分配的碎片数:20

  },

  v3 :

  状态:绿色,

  碎片数量:10,

  副本数量:1,

  active_primary_shards: 10,

  active_shards: 20,

  重定位_碎片:0,

  正在初始化_shards: 0,

  “未分配的碎片数”:0

  },

  .

  }

  }

  我们可以看到v2索引是使集群变红的索引。因此,很明显,所有20个缺失片段都来自这个索引。一旦我们要求对输出进行索引,就可以立即清楚哪个索引有问题:v2索引。我们还可以看到,这个索引曾经有10个主碎片和一个副本,现在20个碎片都没有了。可以推测这20个索引位于我们集群中消失的两个节点上。level参数还可以接受其他更多的选项:GET _cluster/health?级别=碎片

  shards选项将提供更详细的输出,列出每个索引中每个片的状态和位置。这个输出有时是有用的,但是会因为太详细而难以使用。如果你知道哪个索引有问题,本章讨论的其他API会更有用一些。在构建单元和集成测试时等待拥塞状态更改编辑,或者实现与Elasticsearch相关的自动化脚本,cluster-health API还有一个非常有用的提示。可以指定一个wait_for_status参数,该参数只有在状态达标后才会返回。示例:GET _cluster/health?等待状态=绿色

  这个调用将会阻塞(不会将控制权返回到您的程序),直到集群健康变为绿色,这意味着所有主碎片和副本碎片都已分配。这对于自动化脚本和测试非常重要。如果您创建了一个索引,Elasticsearch必须向集群状态中的所有节点广播这个更改。这些节点必须初始化这些新片段,然后响应主节点这些片段已经开始。此过程很快,但由于网络延迟,可能需要10-20毫秒。如果您有一个自动脚本,它(a)创建一个索引,并且(b)立即编写一个文档,这个操作将会失败。因为索引尚未完全初始化。步骤(a)和(b)之间的时间可能小于1ms ——,这对于网络延迟来说是不够的。您的脚本或测试最好不要使用sleep命令,而是使用wait_for_status参数直接调用cluster-health。当索引创建完成时,cluster-health将变成绿色,然后这个调用将控制权返回给脚本,然后您就可以开始编写了。有效选项有:绿色、黄色和红色。当此转让达到您要求的(或“更高”)状态时,将被退回。例如,如果您请求黄色,如果状态变为黄色或绿色,则呼叫将被打开。## 2.经过分析,问题解决应该是磁盘空间不足造成的。自身磁盘空间利用率高于90,备份切片不会继续写入。curl-H Content-Type:application/JSON -XPUT-user elastic:vwnzs 57 xwvqwcqx8cbqn 8 r https://10 . 107 . 168 . 84:9200/_ cluster/settings-k-d {

  持续:{

  cluster . routing . allocation . disk . watermark . low : 90% ,

  cluster . routing . allocation . disk . watermark . high : 95%

  }

  }

  ```

  通过上面的命令调整阈值。

  转载于:https://www.cnblogs.com/pythonPath/p/11595652.html

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: