ElasticSearch启动该正常无法连接或无法正常启动排查方案
文章目录
- ElasticSearch启动该正常无法连接或无法正常启动排查方案
- 一.8.2版本及以上默认https链接
- 二. JDK版本过低(现在市面上基本都是1.8及以上进行开发,所以出现问题的概率较低)
- 三. 空间不足导致闪退(一般闪退是win), 通过路径访问追踪错误
一.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}
- 解决方案
- 修改${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
- 修改为: false使其关闭
xpack.security.http.ssl:
enabled: false
keystore.path: certs/http.p12
- 然后关闭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 in
jvm.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
- 将设置应用于特定版本:
17 :- Xms2g
17 :- Xmx2g
- 将设置应用于一系列版本:
17 - 18 :- Xms2g
17 - 18 :- Xmx2g
要将设置应用于特定版本和任何更高版本,请省略范围的上限。例如,此设置适用于 Java 8 及更高版本:
17 -:- Xms2g
17 -:- Xmx2g
空白行被忽略。以开头的行#
被视为注释并被忽略。未注释掉且未被识别为有效 JVM 参数的行将被拒绝,并且 Elasticsearch 将无法启动。
- 注意Set the JVM heap size
默认情况下,Elasticsearch 会根据节点的 角色和总内存自动设置 JVM 堆大小。对于大多数生产环境,建议使用默认大小。
要覆盖默认堆大小,请设置最小和最大堆大小设置,Xms
然后Xmx
. 最小值和最大值必须相同。
堆大小应基于可用 RAM:
- 设置
Xms
和Xmx
不超过总内存的 50%。Elasticsearch 需要内存用于 JVM 堆以外的用途。例如,Elasticsearch 使用堆外缓冲区来实现高效的网络通信,并依赖操作系统的文件系统缓存来高效地访问文件。JVM 本身也需要一些内存。Elasticsearch 使用的内存超出Xmx
设置所配置的限制是正常的。
在Docker等容器中运行时,总内存定义为容器可见的内存量,而不是主机上的总系统内存。 - 设置
Xms
和Xmx
不超过压缩普通对象指针 (oops) 的阈值。确切的阈值会有所不同,但在大多数系统上 26GB 是安全的,在某些系统上可能高达 30GB。要验证您是否低于阈值,请检查 Elasticsearch 日志中的条目,如下所示:
heap size [1.9gb], compressed ordinary object pointers [true]
或者jvm.using_compressed_ordinary_object_pointers
使用节点信息 API检查节点的值:
GET _nodes/_all/jvm
Elasticsearch 可用的堆越多,它可以用于内部缓存的内存就越多。这为操作系统留出更少的内存用于文件系统缓存。更大的堆也可能导致更长的垃圾收集暂停。