首页 > 其他分享 >升级Elasticsearch到8.7.1版本,我给自己挖了很多坑......

升级Elasticsearch到8.7.1版本,我给自己挖了很多坑......

时间:2023-07-08 20:32:24浏览次数:50  
标签:8.7 xpack ...... ssl Elasticsearch es elasticsearch security transport

升级Elasticsearch到8.7.1版本,我给自己挖了很多坑......_Elastic

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


最近因为某些原因,需要将ES升级到8.7.1版本。之前用的ES版本比较老了,这次部署新版本ES,发现变化蛮大的,一小心又踩了一些坑,还给自己挖了一些坑......

1.java版本不符合需求,es启动失败

报错内容:

[2023-05-12T16:52:24,895][ERROR][o.e.b.Elasticsearch      ] [es-03] fatal exception while booting Elasticsearch

java.nio.file.NoSuchFileException: /opt/jdk-11/jre/lib/rt.jar

原因及解决:

因为本机部署因有9.4.0版本的skywalking,就使用了jdk-11,而jdk-11没有jre/lib/rt.jar文件。

修改elasticsearch-env,大约在35行的位置,指定ES_JAVA_HOME的路径,使用es自带的jdkES_JAVA_HOME="/home/elasticsearch-8.7.1/jdk/"

ES_JAVA_HOME="/home/elasticsearch-8.7.1/jdk/"  ##新加内容
# now set the path to java
if [ ! -z "$ES_JAVA_HOME" ]; then
  JAVA="$ES_JAVA_HOME/bin/java"
  JAVA_TYPE="ES_JAVA_HOME"

  if [ ! -x "$JAVA" ]; then
    echo "could not find java in $JAVA_TYPE at $JAVA" >&2
    exit 1
  fi

2.未配置安全机制参数,es启动失败

报错内容:

[2023-05-12T10:47:23,633][ERROR][o.e.b.Elasticsearch      ] [es-01] node validation exception

[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elas

ticsearch.

bootstrap check failure [1] of [1]: Transport SSL must be enabled if security is enabled. Please set [xpack.securi

ty.transport.ssl.enabled] to [true] or disable security by setting [xpack.security.enabled] to [false]

原因及解决:

原因是新版的es默认开启了xpack安全机制,也就是xpack.security.enabled参数默认值是true,配置文件elasticsearch.yml需要加以下几行参数:

xpack.security.enabled: true  #默认的

xpack.security.transport.ssl.enabled: true

xpack.security.transport.ssl.key:

xpack.security.transport.ssl.certificate:

或者如果只是测试需要的es,可以关闭xpack,即在配置文件elasticsearch.yml添加:

xpack.security.enabled: false

3.配置文件错误,ssl证书创建失败

报错内容:

Exception in thread "main" org.elasticsearch.ElasticsearchParseException: null-valued setting found for key [xpack.security.transport.ssl.keystore.path] found at line number [97], column number [44]

原因及解决:

原因:因为在测试的时候修改了配置文件,添加了下面几行配置,但是因为还没创建证书,就还没配置值,然后就把文件保存了。把这2行先注释掉再创建证书就可以了。

xpack.security.transport.ssl.key:  
xpack.security.transport.ssl.certificate:

4.ssl证书路径未配置,es启动失败

报错内容:

[2023-05-12T11:04:02,910][ERROR][o.e.b.Elasticsearch      ] [es-01] fatal exception while booting Elasticsearch

org.elasticsearch.ElasticsearchSecurityException: invalid SSL configuration for xpack.security.transport.ssl - ser

ver ssl configuration requires a key and certificate, but these have not been configured; you must set either [xpack.security.transport.ssl.keystore.path], or both [xpack.security.transport.ssl.key] and [xpack.security.transport.ssl.certificate]

原因及解决:

在配置文件elasticsearch.yml中只设置了xpack.security.enabled: true,xpack.security.transport.ssl.enabled: true,没有设置ssl证书路径参数:

xpack.security.transport.ssl.key:/home/elasticsearch-8.7.1/cert/ca/ca.key
xpack.security.transport.ssl.certificate:/home/elasticsearch-8.7.1/cert/ca/ca.crt

5.ssl证书配置冲突,es启动失败

报错内容:

[2023-05-13T19:24:36,732][ERROR][o.e.b.Elasticsearch      ] [es-03] fatal exception while booting Elasticsearchorg.elasticsearch.ElasticsearchSecurityException: failed to load SSL configuration [xpack.security.transport.ssl] - cannot specify both [certificate] and [keystore.path]

原因及解决:

原因:在遇到错误④的时候看日志看花了眼,在配置文件elasticsearch.yaml中同时设置了下边4个参数:

xpack.security.transport.ssl.verification_mode:  
xpack.security.transport.ssl.keystore.path:  ##应该不要这行

xpack.security.transport.ssl.key:  
xpack.security.transport.ssl.certificate:

其中xpack.security.transport.ssl.keystore.path参数是java库文件,不该配置在这里,注释掉就好了。 

6.集群某个节点的cluster name配置不一致,集群报错

报错内容:

[2023-05-12T11:25:26,522][INFO ][o.e.c.c.ClusterBootstrapService] [es-03] this node has not joined a bootstrapped cluster yet; [cluster.initial_master_nodes] is set to [es-01, es-02, es-03] [2023-05-12T11:25:26,561][WARN ][o.e.d.HandshakingTransportAddressConnector] [es-03] handshake to [10.0.0.102:9300] failed java.lang.IllegalStateException: handshake with [{10.0.0.102:9300}{LAkbd2oVTteBkzcY1aeaTA}{es-02}{10.0.0.102:9300}{7.17.0}] failed: remote cluster name [sreest] does not match local cluster name [sretest]

原因及解决:

原因:elk-02的clustername 配置错误,少写了个t

还有一些之前踩的坑,有兴趣的朋友可阅读我之前梳理的博文:总结—elasticsearch启动失败的几种情况及解决


标签:8.7,xpack,......,ssl,Elasticsearch,es,elasticsearch,security,transport
From: https://blog.51cto.com/u_10950710/6663023

相关文章

  • ElasticSearch基础知识
    概述底层基于Luence,用于全文检索和分析应用术语概念索引(Index):ES数据存储在索引上,索引是具有类似特性的文档的集合。类型(Type):索引内部的逻辑分区(paritition),一个索引可定义多个类型。节点(Node):一个运行中的ElasticSearch实例,集群是由一个或多个拥有相同cluster.name配置的节点......
  • Elasticsearch 数据迁移
    Elasticsearch数据迁移使用elaticsearch-dump方式进行迁移#安装nodejscd/optwgethttps://npm.taobao.org/mirrors/node/v10.15.3/node-v10.15.3-linux-x64.tar.gztarxfnode-v10.15.3-linux-x64.tar.gzmvnode-v10.15.3-linux-x64nodeecho"exportNODE_HOME=/o......
  • Elasticsearch
    ElasticsearchELK技术栈简介1)ElasticSearch:ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够......
  • .NET各种常见后缀名的含义(.csproj,.suo,.resx......)
    https://blog.csdn.net/prefercent/article/details/8471816整理了一些.NET项目中经常接触但是不明白什么意义的文件后缀名,希望能帮到大家。.cs类文件。源代码都写在这里,主要就看这里的代码。.Designer.cs设计文件,自动生成.resx资源文件,一些资源存放在这里.csprojC#项目文件......
  • ElasticSearch - 批量更新bulk死锁问题排查
    一、问题系统介绍监听商品变更MQ消息,查询商品最新的信息,调用BulkProcessor批量更新ES集群中的商品字段信息;由于商品数据非常多,所以将商品数据存储到ES集群上,整个ES集群共划分了256个分片,并根据商品的三级类目ID进行分片路由。比如一个SKU的商品名称发生变化,我们就会收到......
  • elasticsearch best_fields most_fields cross_fields从内在实现看区别——本质就是前
    1.最佳字段(Bestfields)::假设我们有一个让用户搜索博客文章的网站(允许多字段搜索,最佳字段查询),就像这两份文档一样:PUT/my_index/my_type/1{"title":"Quickbrownrabbits","body":"Brownrabbitsarecommonlyseen."}PUT/my_index/my_type/2{"......
  • Elasticsearch03
    1.SpringDataElasticsearch高级查询1.1.基本查询/***高级查询-基本查询*@return*/@RequestMapping("/matchQuery")publicIterable<Goods>matchQuery(){//词条查询MatchQueryBuildermatchQueryBuilder=QueryBuilders.matchQuery("title","......
  • Elasticsearch02
    1.elasticsearch的查询1.1基本查询基本查询的语法格式GET/索引库名/_search{"query":{"查询类型":{ "查询条件":"查询条件值"}}}查询类型:例如:match_all,match,term,range等等。查询条件:查询条件会根据类型的不同,写法也......
  • Elasticsearch01
    1.Elasticsearch(ES)介绍和安装1.1为什么需要单独的搜索服务用户访问我们的首页,一般都会直接搜索来寻找自己想要购买的商品。而商品的数量非常多,而且分类繁杂。如何能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易,是搜索系统要研究的核心。面对这样复杂的搜索业务......
  • 9、Elasticsearch7.6.1 ES与HDFS相互转存数据-ES-Hadoop
    Elasticsearch系列文章1、介绍lucene的功能以及建立索引、搜索单词、搜索词语和搜索句子四个示例实现2、Elasticsearch7.6.1基本介绍、2种部署方式及验证、head插件安装、分词器安装及验证3、Elasticsearch7.6.1信息搜索示例(索引操作、数据操作-添加、删除、导入等、数据搜索及分......