如何将Elasticsearch安装到自定义路径/opt/elasticsearch且配置也存放于该路径
Elasticsearch 7.15 安装到/opt路径完整方案
一、放弃RPM安装方式
RPM包的目录结构、默认路径都是打包时预先配置的,--prefix参数只能修改部分主目录路径,无法适配你需要的扁平化目录结构,直接使用官方tar.gz包是最优选择。
二、tar包安装后的配置修正(解决启动无日志问题)
你之前的解压操作是正确的,启动失败大概率是权限和配置冲突的问题,按以下步骤调整即可:
1. 配置目录权限
如果elasticsearch用户不存在先创建,再给整个安装目录设置正确的所属权限:
# 新建系统用户(无登录权限) useradd -r -s /sbin/nologin elasticsearch # 递归设置目录归属 chown -R elasticsearch:elasticsearch /opt/elasticsearch
2. 显式指定ES内部路径
编辑/opt/elasticsearch/config/elasticsearch.yml,添加以下配置,避免ES读取默认系统路径:
path.data: /opt/elasticsearch/data path.logs: /opt/elasticsearch/logs
3. 修正systemd服务配置
你之前的服务配置里存在冲突项,需要调整:
- 移除
EnvironmentFile=-/etc/sysconfig/elasticsearch行,该文件是RPM安装场景的配置,内部的环境变量会覆盖你自定义的ES_HOME、ES_PATH_CONF参数,导致路径读取错误 - 临时去掉
ExecStart中的--quiet参数,方便启动时输出日志排查问题
修改后的完整服务配置如下:
[Unit] Description=Elasticsearch Wants=network-online.target After=network-online.target [Service] Type=notify RuntimeDirectory=elasticsearch PrivateTmp=true Environment=ES_HOME=/opt/elasticsearch Environment=ES_PATH_CONF=/opt/elasticsearch/config Environment=PID_DIR=/var/run/elasticsearch Environment=ES_SD_NOTIFY=true WorkingDirectory=/opt/elasticsearch User=elasticsearch Group=elasticsearch ExecStart=/opt/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid StandardOutput=journal StandardError=inherit LimitNOFILE=65535 LimitNPROC=4096 LimitAS=infinity LimitFSIZE=infinity TimeoutStopSec=0 KillSignal=SIGTERM KillMode=process SendSIGKILL=no SuccessExitStatus=143 TimeoutStartSec=5000 [Install] WantedBy=multi-user.target
4. 启动验证
# 重载systemd配置 systemctl daemon-reload # 启动服务 systemctl start elasticsearch # 查看启动状态 systemctl status elasticsearch
服务启动正常后,如果不需要控制台输出日志,可以再加回ExecStart中的--quiet参数。
三、效果验证
启动成功后/opt/elasticsearch下的data、logs目录会生成对应的运行文件,所有配置、数据、程序文件都存放在该路径下,完全符合需求。
内容的提问来源于stack exchange,提问作者mamol
相关产品推荐
相关产品推荐

