Ubuntu 20.04下Elasticsearch启动失败9200端口连接被拒求助
问题根因
从Elasticsearch运行日志可直接定位启动失败核心原因:/etc/elasticsearch/jvm.options配置文件第33、34行的JVM堆内存参数格式错误,参数前多了前置空格,导致ES启动时无法识别配置项,进程启动失败。
解决方案
1. 修复JVM参数配置
按照官方规范,不建议直接修改默认jvm.options文件,优先通过jvm.options.d目录存放自定义配置:
- 先还原默认配置文件:执行
cat -n /etc/elasticsearch/jvm.options | grep -n "Xms"确认默认文件内是否被手动添加了带前置空格的-Xms2g、-Xmx2g行,如有直接删除这两行,恢复默认配置。 - 进入自定义配置目录:
cd /etc/elasticsearch/jvm.options.d/ - 新建堆内存配置文件,命名为
heap.options,写入符合格式要求的配置:
堆内存大小建议设置为服务器可用内存的50%,最高不超过31G,且-Xms和-Xmx值必须相等,不要加前置空格。示例(服务器可用内存为2G时):
-Xms1g -Xmx1g
- 修改配置文件权限:
chown root:elasticsearch /etc/elasticsearch/jvm.options.d/heap.options && chmod 660 /etc/elasticsearch/jvm.options.d/heap.options
2. 校验其他配置
你提供的elasticsearch.yml无明显错误,network.host设为localhost符合本地访问要求,无需额外调整。
3. 重启服务并验证
- 重载系统服务配置并重启ES:
systemctl daemon-reload && systemctl restart elasticsearch.service - 查看服务运行状态:
systemctl status elasticsearch.service,正常返回结果会显示active (running) - 验证端口连通性:
curl localhost:9200,正常会返回Elasticsearch的节点、版本等基础信息。
内容的提问来源于stack exchange,提问作者Abe
相关产品推荐
相关产品推荐

