Elasticsearch 8.6.2在Ubuntu22.04启动失败(错误码128)求助
Elasticsearch 8.6.2 在Ubuntu 22.04启动失败排查方案
当前问题现状
Elasticsearch服务启动后意外退出,systemd返回退出码128,服务状态为failed,系统状态输出如下:
dev@logserver:~$ sudo systemctl status elasticsearch × elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2023-03-17 09:45:13 CST; 1min 57s ago Docs: https://www.elastic.co Process: 2133 ExecStart=/usr/share/elasticsearch/bin/systemd-entrypoint -p ${PID_DIR}/elasticsearch.pid --quiet (code=exited, status=128) Main PID: 2133 (code=exited, status=128) CPU: 1min 30.382s Mar 17 09:44:43 logserver systemd[1]: Starting Elasticsearch... Mar 17 09:45:03 logserver systemd[1]: Started Elasticsearch. Mar 17 09:45:13 logserver systemd-entrypoint[2133]: ERROR: Elasticsearch exited unexpectedly Mar 17 09:45:13 logserver systemd[1]: elasticsearch.service: Main process exited, code=exited, status=128/n/a Mar 17 09:45:13 logserver systemd[1]: elasticsearch.service: Failed with result 'exit-code'. Mar 17 09:45:13 logserver systemd[1]: elasticsearch.service: Consumed 1min 30.382s CPU time.
第一步:提取并分享Elasticsearch日志
Elasticsearch默认日志路径为/var/log/elasticsearch/,执行以下命令获取最新错误日志片段:
# 查看最新50行日志 sudo tail -n 50 /var/log/elasticsearch/elasticsearch.log # 若日志以集群名称命名,替换为实际文件名 sudo tail -n 50 /var/log/elasticsearch/your-cluster-name.log
直接粘贴命令输出内容即可,重点关注带ERROR或FATAL标记的行。
第二步:初步排查退出码128的常见原因
退出码128通常表示进程启动时遇到无效参数、权限问题或依赖缺失,可先做以下检查:
- 检查JVM堆内存配置:打开
/etc/elasticsearch/jvm.options,确认-Xms和-Xmx设置未超过系统可用内存(比如系统内存4G时,堆内存建议设为2G以内)。 - 修复目录权限:确保Elasticsearch数据目录和日志目录的所有者为
elasticsearch用户:sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/ /var/log/elasticsearch/ - 验证系统资源限制:检查elasticsearch用户的文件描述符限制,要求至少为65535:
若不足,修改sudo su elasticsearch -c "ulimit -n"/etc/security/limits.conf添加:
重启系统或重新登录生效。elasticsearch soft nofile 65535 elasticsearch hard nofile 65535
第三步:手动启动获取详细错误
跳过systemd直接手动启动Elasticsearch,获取更详细的启动报错信息:
sudo su elasticsearch -c "/usr/share/elasticsearch/bin/elasticsearch"
将启动过程的所有输出信息分享出来,这会比systemd日志更详细。
内容的提问来源于stack exchange,提问作者ShenYa
相关产品推荐
相关产品推荐

