首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Elasticsearch错误之"bootstrap check failure"分析与解决

Elasticsearch错误之"bootstrap check failure"分析与解决

原创
作者头像
空洞的盒子
修改2025-06-28 00:18:45
修改2025-06-28 00:18:45
1970
举报
文章被收录于专栏:JD的专栏JD的专栏

背景

针对Elasticsearch集群进行节点扩容,在新增节点的elasticsearch.yml开启了bootstrap.memory_lock: true参数。启动Elasticsearch服务,日志中报错”bootstrap check failure“。

完整错误日志

代码语言:bash
复制
bootstrap check failure [1] of [1]: memory locking requested for elasticsearch process but memory is not locked

分析

bootstrap.memory_lock: true主要用于在生产环境中为Elasticsearch服务锁定内存,避免Elasticsearch服务的JVM虚拟机内存被交换到磁盘。而Elasticsearch服务启动失败主要是由于只在elasticsearch.yml中开启了锁定内存配置,但是在Linux系统中并未进行相关的内存锁定配置,或配置不完整。

排查步骤

1.在系统设置中允许内存锁定

检查并编辑systemd配置

代码语言:bash
复制
mkdir -p /etc/systemd/system/elasticsearch.service.d
vi /etc/systemd/system/elasticsearch.service.d/override.conf

在conf文件中添加以下内容

代码语言:yml
复制
[Service]
LimitMEMLOCK=infinity

2.设置用户级别的memlock权限

编辑/etc/security/limits.conf文件,并在文件末尾添加以下内容。

代码语言:xml
复制
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited

3.检查PAM限制生效

编辑/etc/pam.d/common-session(Debian/Ubuntu)或 /etc/pam.d/su

代码语言:txt
复制
session required pam_limits.so

4.重启服务

代码语言:bash
复制
systemctl daemon-reexec
systemctl daemon-reload
systemctl restart elasticsearch

5.确认内存锁定是否生效

通过以下命令检查进程状态判断是否内存锁定成功

代码语言:bash
复制
systemctl status elasticsearch

ps aux | grep elasticsearch
cat /proc/<elasticsearch-pid>/limits

其中Max locked memory应为:

代码语言:bash
复制
Max locked memory   unlimited  unlimited  bytes

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 完整错误日志
  • 分析
  • 排查步骤
    • 1.在系统设置中允许内存锁定
    • 2.设置用户级别的memlock权限
    • 3.检查PAM限制生效
    • 4.重启服务
    • 5.确认内存锁定是否生效
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档