记录一次elasticsearch-5.6.4宕机排查经历

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 记录一次elasticsearch-5.6.4宕机排查经历

犯罪现场~~

es: 三节点,配置相同
内存: 248G
CPU: 没注意看
磁盘: 2T
data: 380G左右
indices: 近9800条
在下才疏学浅,目前跟着大佬学习,这个问题还没解决,大佬猜测是indices数量过高,将es打爆了,由于机器是客户的,indices的删减需要客户方的同意,暂时不确定是否是这个原因导致的,后期成功处理恢复es集群后,再来更新(为什么不看日志?因为日志太大了,108G,不知道应该搜索哪些关键字,有大佬知道,望赐教)
下面分享两个遇到的犯罪现场~~~
客户环境,就不贴ip地址出来了,以node1,node2,node3来代替,不过这个也不重要

犯罪现场一:es重新启动后,无法加入老的集群

'开发说kibana异常,无法访问,于是登录es服务,查看es的状态'
# curl 'http://node1:9200/_cat/nodes'
{"error":{"root_cause":[{"type":"master_not_discovered_exception":"reason":null}],"type":"master_not_discovered_exception","reason":null},"status":503}
`_cat/nodes无法查看到es集群的node信息,只好通过ps查找es的进程,最后发现node1的es进程挂了,因为日志太大,所以无法定位问题,于是重新去启动es的进程(./bin/elasticsearch -d -p ./PID)`
'tailf log/cluster-es.log 看到started,并且ps和ss可以查看到es的进程和端口后,再次执行以上的curl,结果发现还是一样的报错'
# curl 'http://node1ip:9200'
# curl 'http://node2ip:9200'
# curl 'http://node3ip:9200'
发现:
node2和node3的"cluster_uuid"一致,但是node1和node2,node3不一致,看来,node2和node3与node1的爱消失了~~~
解决:
在下才疏学浅,没有妙招,只好将三个节点的es全部kill,然后重新$(./bin/elasticsearch -d -p ./PID)启动es三节点
验证:
# curl 'http://node1ip:9200/_cat/nodes'
等待总是让人抓耳挠腮。。。当然,集群查询正常,此时,发现了新的犯罪现场,请看下一回合~~~

犯罪现场二:indices好大

'es集群虽然暂时正常了,由于kibana显示es集群是red,所以,还是要继续破案'
# curl 'http://node1ip:9200/_cat/indices' | grep green | wc -l
  %  Total    %  Received   %  Xferd  Average   Speed    Time    Time     Time      Current
                                      Dload    Upload    Total   Spent    Left      Speed
100  1118k  100  1118k      0      0   261k        0   0:00:04  0:00:04  --:--:--    274k
# curl 'http://node1ip:9200/_cat/indices' | grep red | wc -l
  %  Total    %  Received   %  Xferd  Average   Speed    Time    Time     Time      Current
                                      Dload    Upload    Total   Spent    Left      Speed
100  1118k  100  1118k      0      0   309k        0   0:00:03  0:00:03  --:--:--    309k
8124
# curl 'http://node1ip:9200/_cat/indices' | grep yellow | wc -l
  %  Total    %  Received   %  Xferd  Average   Speed    Time    Time     Time      Current
                                      Dload    Upload    Total   Spent    Left      Speed
100  1118k  100  1118k      0      0   250k        0   0:00:04  0:00:04  --:--:--    343k
1665
'啊这...8124+1665=9789...由于集群刚刚恢复,数据需要同步,第二天再来查看吧~~~'
# one day过去了~~~果然早起的运维吃爆红,node1还活着,node2和node3殉情了~~~
# curl 'http://hostip:9200/_cat/nodes'
{"error":{"root_cause":[{"type":"null_pointer_exception":"reason":null}],"type":"null_pointer_exception","reason":null},"status":500}
通过日志,看到了几个报错,基本上也就是indices在恢复的时候,又暴毙了吧,只有等客户方沟通结束,删除一些indices后,再做破案吧,破案后,再来更新
截取四段日志做参考吧,希望有大佬可以带我飞~~~
1、fatal error on the network layer
2、[node1] failed to connect to master [node2]
3、MasterNotDiscoveredExcption: null
4、[node1] timed out while waiting for initial discovered state - timeout: 30s

--------------------------------更新与2020年12月13日---------------------------------

最终,在客户方同意下,删除了历史indices,只保留最近一个月的数据,indices从9789所见到了2785;
但是在恢复过程中,es又暴毙了一次,发现客户方没有加内存限制,加了内存限制之后,解决了


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
监控 安全 API
Elasticsearch实例磁盘占用率高排查及解决
开源 ES 实例健康状态 首先,先介绍下开源 Elasticsearch 的三种健康状态:绿色、黄色和红色。 在分片层面, 绿色:所有的主分片和副本分片都已分配。你的集群是 100% 可用的。 黄色:所有主分片都已经分配,但至少有一个副本分片未被分配。
8812 0
|
6月前
|
存储 监控 安全
最近几个典型 Elasticsearch 线上易出错难排查问题汇集,咱们得避免!
最近几个典型 Elasticsearch 线上易出错难排查问题汇集,咱们得避免!
79 3
|
存储 自然语言处理 Java
Elasticsearch常见错误及如何排查错误
Elasticsearch常见错误及如何排查错误
418 0
|
数据库
探究 | Elasticsearch CPU高排查思路
Elasticsearch CPU高排查思路的探究思路。
5804 1
|
运维 Java 程序员
方法 | Elasticsearch Jest 批量操作bug 根因定位排查
本文介绍Elasticsearch Jest 批量操作bug 根因定位排查的方法。
1601 0
|
API
方法 | Elasticsearch Jest 批量操作bug 根因定位排查
1、背景 使用Jest进行批量插入数据的时候,偶尔会出现如下的bug One or more of the items in the Bulk request failed, check BulkResult.getItems() for more information. 起初认为是偶发,就把并发数调小,就再没有关注。
640 0
|
SQL 安全
实战 | 一步步排查基于业务场景的Elasticsearch难题!
1、题记 我们在实际的业务场景中做Elasticsearch开发时,免不了遇到这样、那样的问题。 《死磕Elasticsearch方法论》中,已经告诉大家相关问题的排查方法。 这一节,我们以具体的示例,解决基于业务场景的Elasticsearch难题的方法?
118 0
|
Java 索引
探究 | Elasticsearch CPU高排查思路
一、可能导致ES CPU高的原因: 1、复杂的query查询 举例:我这边出现过200个组合wildcard query导致集群down掉的情况; 2、有大量的reindex操作 3、ES版本较低
1125 0
|
索引
实战 | 一步步排查基于业务场景的Elasticsearch难题!
我们在实际的业务场景中做Elasticsearch开发时,免不了遇到这样、那样的问题。《死磕Elasticsearch方法论》中,已经告诉大家相关问题的排查方法。这一节,我们以具体的示例,解决基于业务场景的Elasticsearch难题的方法?
197 0
|
7天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
20 5