• ElasticSearch启动该正常无法连接或无法正常启动排查方案


    ElasticSearch启动该正常无法连接或无法正常启动排查方案

    一.8.2版本及以上默认https链接

    • 在没有修改默认配置的情况下会出现如下错误

      [2022-08-26T10:01:44,462][WARN ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [DESKTOP-MFRG8OJ] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/[0:0:0:0:0:0:0:1]:9200, remoteAddress=/[0:0:0:0:0:0:0:1]:64023}
      
      • 1
    • 解决方案

      • 修改${elasticsearch解压文件夹}/config/elasticsearch.yml文件中配置

        # Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents -》 为HTTP API客户端连接启用加密,如Kibana、Logstash和代理 :默认是true表示开启
        xpack.security.http.ssl:
          enabled: true
          keystore.path: certs/http.p12
        
        • 1
        • 2
        • 3
        • 4
      • 修改为: false使其关闭

        xpack.security.http.ssl:
          enabled: false
          keystore.path: certs/http.p12
        
        • 1
        • 2
        • 3
      • 然后关闭elasticsearch重启即可通过http链接

    二. JDK版本过低(现在市面上基本都是1.8及以上进行开发,所以出现问题的概率较低)

    • 7.8及以上版本是需要使用JDK版本1.8以上的环境的,

    三. 空间不足导致闪退(一般闪退是win), 通过路径访问追踪错误

    • ${elasticsearch解压文件夹}/logs/elasticsearch.log查看内容日志如果涉及到和内存空间相关

    • 接下来创建一个自定义的options作为后缀的文件同时注意

      • tar.gz 或 .zip:将自定义 JVM 选项文件添加到config/jvm.options.d/.
      • Debian 或 RPM:将自定义 JVM 选项文件添加到/etc/elasticsearch/jvm.options.d/.
      • Docker:将挂载自定义 JVM 选项文件绑定到 /usr/share/elasticsearch/config/jvm.options.d/.

      Do not modify the root jvm.optionsfile. Use files injvm.options.d/instead. [官网内容划重点]{https://www.elastic.co/guide/en/elasticsearch/reference/8.4/advanced-configuration.html#set-jvm-heap-size}

    • 编写option文件内容, 假定文件名称为jvmXm.options

      ⚠JVM 选项文件必须具有后缀*.options*并包含以行分隔的 JVM 参数列表。JVM 按字典顺序处理选项文件。eg:a.options>b.options

      JVM 选项文件包含以行分隔的 JVM 参数列表。参数前面有一个破折号 ( -)。要将设置应用于特定版本,请在版本或一系列版本前面加上冒号。

      • 将设置应用于所有版本:

        - Xms2g 
        - Xmx2g
        
        • 1
        • 2
      • 将设置应用于特定版本:

        17 :- Xms2g
        17 :- Xmx2g
        
        • 1
        • 2
      • 将设置应用于一系列版本:

        17 - 18 :- Xms2g
        17 - 18 :- Xmx2g
        
        • 1
        • 2

        要将设置应用于特定版本和任何更高版本,请省略范围的上限。例如,此设置适用于 Java 8 及更高版本:

        17 -:- Xms2g
        17 -:- Xmx2g
        
        • 1
        • 2

      空白行被忽略。以开头的行#被视为注释并被忽略。未注释掉且未被识别为有效 JVM 参数的行将被拒绝,并且 Elasticsearch 将无法启动。

    • 注意Set the JVM heap size

      默认情况下,Elasticsearch 会根据节点的 角色和总内存自动设置 JVM 堆大小。对于大多数生产环境,建议使用默认大小。

      要覆盖默认堆大小,请设置最小和最大堆大小设置,Xms然后Xmx. 最小值和最大值必须相同。

      堆大小应基于可用 RAM:

      • 设置XmsXmx不超过总内存的 50%。Elasticsearch 需要内存用于 JVM 堆以外的用途。例如,Elasticsearch 使用堆外缓冲区来实现高效的网络通信,并依赖操作系统的文件系统缓存来高效地访问文件。JVM 本身也需要一些内存。Elasticsearch 使用的内存超出Xmx设置所配置的限制是正常的。

        Docker等容器中运行时,总内存定义为容器可见的内存量,而不是主机上的总系统内存。

      • 设置XmsXmx不超过压缩普通对象指针 (oops) 的阈值。确切的阈值会有所不同,但在大多数系统上 26GB 是安全的,在某些系统上可能高达 30GB。要验证您是否低于阈值,请检查 Elasticsearch 日志中的条目,如下所示:

        heap size [1.9gb], compressed ordinary object pointers [true]
        
        • 1

        或者jvm.using_compressed_ordinary_object_pointers使用节点信息 API检查节点的值:

        GET _nodes/_all/jvm
        
        • 1

      Elasticsearch 可用的堆越多,它可以用于内部缓存的内存就越多。这为操作系统留出更少的内存用于文件系统缓存。更大的堆也可能导致更长的垃圾收集暂停。

  • 相关阅读:
    J2EE基础:通用分页01
    Python网络编程之数据的主机字节序与网络字节序
    测试工程师高效编写API测试
    Unity设计模式——装饰模式
    【win10常用命令】
    力扣 757. 设置交集大小至少为2
    JAVASE总结作业----面向对象的三大特征
    leetcode刷题:哈希表07 (三数之和)
    云积天赫AI全域营销系统,为品牌营销注入新活力
    贴息政策打出“组合拳”,院校实验室建设攻略来了(二)!
  • 原文地址:https://blog.csdn.net/weixin_43194885/article/details/126538321