elasticsearch 单节点常见问题

Posted idlestation

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch 单节点常见问题相关的知识,希望对你有一定的参考价值。

elasticsearch 单节点常见问题

记录elasticsearch 单节点使用时,出现健康状态为 集群健康值:yellow (23 of 46),主要是后面的数字时前面数字的两倍,则这个问题时分片副本问题。

ES 健康的三种状态

状态为green 时,(代表健康状态,说明分片备份都可以用)

状态为yellow时,(代表基本的分片可用,但是备份不能用【或者是没有备份】)

状态为red时, (代表部分分片可用,但有一部分损坏。此时部分数据仍然可以查到,但是要尽快解决)

查看问题: 通过请求 es的接口 http://elasticsearch/_cat/health?v

技术图片

过滤查看所有未分配索引的方式

curl -s "http://elasticsearch:9200/_cat/shards" | grep UNASSIGNED
结果:第一列表示索引名,第二列表示分片编号,第三列p是主分片,r是副本

查看启动日志:默认日志位置在安装位置的logs下的elasticsearch.log

技术图片

其实没什么有用的信息,圈出来连个红圈,单纯看也没什么问题,但是就是问题就是出在了红圈上。

shards 代表分片,默认把一个索引分为五个主分片,后面的[5]/[1],第一个中括号里的数字是指定分片的数量,也就是shards,但是第二个中括号里的数字没有提示是什么,这个数字其实是 replicas 代表副本,默认一个索引创建一个副本

因为我们是单节点,而默认的分片副本数目配置为1,而相同的分片不能在一个节点上,所以就存在副本分片指定不明确的问题,所以显示为yellow,我们可以通过在elasticsearch集群上添加一个节点来解决问题,如果不想这么做,可以删除那些指定不明确的副本分片(当然这不是一个好办法)但是作为测试和解决办法还是可以尝试的,下面我们试一下删除副本分片的办法。

解决办法

1、通过使用 es的接口进行修改:(一定要注意引号,分圆半角。)

# 修改 number_of_replicas  
curl -XPUT "http://localhost:9200/_settings" -d‘ { "number_of_replicas" : 0 } ‘ #删除那些指定不明确的副本分片,“0” 则不存在副本。
# 查看修改是否成功
curl -Xget  http://localhost:9200/_settings

2、将es部署为集群,不适用单点。

以上是关于elasticsearch 单节点常见问题的主要内容,如果未能解决你的问题,请参考以下文章

elasticsearch 单节点配置

Elasticsearch7.8.0版本进阶——分布式集群(单节点集群)

ElasticSearch单节点模式的搭建

Elasticsearch(简介及其单节点搭建)

elasticsearch 单节点实现

安装Elasticsearch+Kibana单节点多ES实例