一、文档说明
- 系统:Ubuntu 24.04 LTS(服务器版 / 桌面版)
- 版本:Elasticsearch 9.5.2(GA 稳定版,生产可用)
- 部署模式:单节点(single-node)
- 统一目录:
/data/opt/elasticsearch- 安装文件:
/data/opt/elasticsearch - 数据目录:
/data/opt/elasticsearch/data - 日志目录:
/data/opt/elasticsearch/logs - 配置文件:
/data/opt/elasticsearch/config - 插件目录:
/data/opt/elasticsearch/plugins
- 安装文件:
- 运行方式:专用用户启动,禁止 root,注册 systemd 服务,开机自启
二、前置准备
1. 系统要求
- Ubuntu 24.04 LTS
- 拥有 sudo 权限的普通用户
/data目录至少 10GB 可用空间- 关闭 swap(ES 强要求)
- 已配置网络,可下载安装包
2. 安装依赖与系统调优(必做)
# 更新源
sudo apt update && sudo apt upgrade -y
# 安装依赖
sudo apt install -y curl wget vim zip unzip
# 调优:虚拟内存(ES启动必须)
sudo tee -a /etc/sysctl.conf <<EOF
vm.max_map_count=1048576
EOF
sudo sysctl -p
# 调优:文件句柄与线程数限制
sudo tee -a /etc/security/limits.conf <<EOF
elasticsearch soft nofile 65535
elasticsearch hard nofile 65535
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
EOF
3. 创建专用用户与统一目录
# 创建es运行用户
sudo useradd -m -s /sbin/nologin elasticsearch
# 创建统一部署目录
sudo mkdir -p /data/opt/elasticsearch
# 授权
sudo chown -R elasticsearch:elasticsearch /data/opt/elasticsearch
sudo chmod -R 755 /data/opt/elasticsearch
三、下载与解压 Elasticsearch 9.5.2
# 切换到临时目录
cd /tmp
# 下载官方tar包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.5.2-linux-x86_64.tar.gz
# 解压到统一目录
sudo tar -zxvf elasticsearch-9.5.2-linux-x86_64.tar.gz --strip-components=1 -C /data/opt/elasticsearch
# 再次授权(关键)
sudo chown -R elasticsearch:elasticsearch /data/opt/elasticsearch
四、核心配置(单机必改)
1. 修改 elasticsearch.yml
sudo vim /data/opt/elasticsearch/config/elasticsearch.yml
覆盖以下内容(无注释、可直接复制):
cluster.name: es-single
node.name: es-node-01
path.data: /data/opt/elasticsearch/data
path.logs: /data/opt/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node
xpack.security.enabled: true
xpack.security.enrollment.enabled: false
xpack.security.http.ssl.enabled: false
xpack.security.transport.ssl.enabled: false
2. 修改 JVM 内存配置
sudo vim /data/opt/elasticsearch/config/jvm.options
单机推荐配置(根据服务器内存调整):
-Xms2g
-Xmx2g
规则:
- Xms = Xmx
- 不超过物理内存的 50%
- 最大不超过 31g
五、初始化安全认证(自动生成证书 + 密码)
ES9 默认开启安全,首次启动会自动生成证书与超级用户密码。
# 切换到es目录
cd /data/opt/elasticsearch
# 首次初始化(前台运行,生成密码后按Ctrl+C退出)
sudo -u elasticsearch ./bin/elasticsearch
启动成功后,在另一个终端打开:
sudo -u elasticsearch ./bin/elasticsearch-reset-password -u elastic -i
设置密码
六、注册 systemd 服务(开机自启)
sudo vim /etc/systemd/system/elasticsearch.service
写入以下内容:
[Unit]
Description=Elasticsearch 9.5.2
Documentation=https://www.elastic.co
After=network.target
[Service]
Type=simple
User=elasticsearch
Group=elasticsearch
WorkingDirectory=/data/opt/elasticsearch
ExecStart=/data/opt/elasticsearch/bin/elasticsearch
Restart=on-failure
RestartSec=5s
LimitNOFILE=65535
LimitNPROC=4096
LimitMEMLOCK=infinity
[Install]
WantedBy=multi-user.target
启动并设置开机自启
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch
七、验证安装
1. 查看端口
ss -tulpn | grep 9200
2. curl 访问(HTTPS + 认证)
curl -u elastic:"你的密码" -k https://localhost:9200
返回如下即成功:
{
"name" : "es-node-01",
"cluster_name" : "es-single",
"version" : {
"number" : "9.5.2"
},
"tagline" : "You Know, for Search"
}
八、防火墙放行(可选)
sudo ufw allow 9200/tcp
sudo ufw reload
九、日常运维命令
# 启动
sudo systemctl start elasticsearch
# 停止
sudo systemctl stop elasticsearch
# 重启
sudo systemctl restart elasticsearch
# 查看日志
tail -f /data/opt/elasticsearch/logs/es-single.log
# 重置密码
sudo -u elasticsearch /data/opt/elasticsearch/bin/elasticsearch-reset-password -u elastic
十、目录结构总览(统一 /data/opt/elasticsearch)
/data/opt/elasticsearch
├── bin # 启动脚本
├── config # 配置
├── data # 索引数据
├── logs # 日志
├── modules # 模块
├── plugins # 插件
└── jdk # 内置JDK
十一、常见问题
- 启动失败:权限问题 → 重新授权
chown -R elasticsearch:elasticsearch /data/opt/elasticsearch - 无法启动:vm.max_map_count → 重新执行 sysctl -p
- 密码忘记 → 使用重置密码命令
- 无法外部访问 → 检查 network.host: 0.0.0.0 + 防火墙 9200
十二、总结
本文实现:
- 非 Docker 手动安装 ES 9.5.2
- 全部文件统一部署到 /data/opt/elasticsearch
- 生产级系统调优、安全认证、systemd 服务管理
- 单节点稳定可用,适合单机生产 / 测试环境