ElasticSearch 7.6全新安装后启动失败求助
问题翻译
全新安装ElasticSearch,采用默认配置,监听localhost 9200端口,启动失败。当前环境运行Nginx(无影响),使用openjdk version "1.8.0_332"。
启动报错:
Starting elasticsearch (via systemctl): Job for elasticsearch.service failed because the control process exited with error code. See "systemctl status elasticsearch.service" and "journalctl -xe" for details. [FAILED]
journalctl -xe输出(中文翻译):
-- -- elasticsearch.service 单元启动失败。 -- -- 结果:失败。 8月 31 10:53:41 ip-172-26-7-39.ec2.internal systemd[1]: elasticsearch.service 进入失败状态。 8月 31 10:53:41 ip-172-26-7-39.ec2.internal systemd[1]: elasticsearch.service 启动失败。 8月 31 10:53:41 ip-172-26-7-39.ec2.internal sudo[31438]: pam_unix(sudo-i:session): 用户root的会话已关闭。 8月 31 10:53:42 ip-172-26-7-39.ec2.internal log4j-cve-2021-44228-hotpatch[31563]: cat: /proc/31469/stat: 没有该文件或目录 8月 31 10:53:42 ip-172-26-7-39.ec2.internal log4j-cve-2021-44228-hotpatch[31563]: [log4j-hotpatch] 进程31469已不是Java进程,跳过。 8月 31 10:53:42 ip-172-26-7-39.ec2.internal root[31640]: 进程31469已不是Java进程,跳过。 8月 31 10:53:52 ip-172-26-7-39.ec2.internal systemd[1]: log4j-cve-2021-44228-hotpatch.service 等待超时,安排重启。 8月 31 10:53:52 ip-172-26-7-39.ec2.internal systemd[1]: 已停止运行CVE-2021-44228热修复脚本。 -- 主题:log4j-cve-2021-44228-hotpatch.service 单元已完成关闭 -- 由systemd定义 -- 支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- log4j-cve-2021-44228-hotpatch.service 单元已完成关闭。 8月 31 10:53:52 ip-172-26-7-39.ec2.internal systemd[1]: 已启动运行CVE-2021-44228热修复脚本。 -- 主题:log4j-cve-2021-44228-hotpatch.service 单元已完成启动 -- 由systemd定义 -- 支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- log4j-cve-2021-44228-hotpatch.service 单元已完成启动。 -- -- 启动结果:成功。 8月 31 10:53:52 ip-172-26-7-39.ec2.internal log4j-cve-2021-44228-hotpatch[31649]: [log4j-hotpatch] 开始启动... 8月 31 10:53:52 ip-172-26-7-39.ec2.internal root[31650]: 开始启动... 8月 31 10:53:52 ip-172-26-7-39.ec2.internal log4j-cve-2021-44228-hotpatch[31649]: [log4j-hotpatch] 未找到JVM,优雅退出。 8月 31 10:53:52 ip-172-26-7-39.ec2.internal root[31656]: 未找到JVM,优雅退出。
排查与解决
- 查看ES核心日志
当前journalctl输出仅提示ES启动失败,未给出具体原因。直接查看ES专属日志获取报错详情:
tail -50 /var/log/elasticsearch/elasticsearch.log
这里会明确显示启动失败的根源,比如JDK版本不兼容、内存不足、权限错误等。
- 验证JDK与ES版本兼容性
ElasticSearch 8.x及以上版本要求最低Java 11,而你使用的是Java 8,这是常见的启动失败诱因。先确认ES版本:
elasticsearch --version
- 若为8.x:要么降级ES到7.17.x(支持Java 8),要么升级JDK到11及以上版本。
- 若为7.x及以下:跳过此步骤,继续排查其他问题。
- 调整系统虚拟内存参数
ES默认需要较大的虚拟内存,vm.max_map_count不足会导致启动失败:
- 临时生效:
sysctl -w vm.max_map_count=262144
- 永久生效:编辑
/etc/sysctl.conf,添加一行vm.max_map_count=262144,然后执行sysctl -p使配置生效。
- 检查文件权限
ES以elasticsearch用户运行,确保日志和数据目录权限正确:
chown -R elasticsearch:elasticsearch /var/log/elasticsearch chown -R elasticsearch:elasticsearch /var/lib/elasticsearch
- 获取服务状态细节
执行以下命令查看ES服务的详细状态信息,可能会得到启动过程中的关键错误提示:
systemctl status elasticsearch.service -l
内容的提问来源于stack exchange,提问作者acctman
相关产品推荐
相关产品推荐

