Ubuntu 24.04 手动安装 Elasticsearch 9.5.2 单机版

我爱海鲸 2026-08-29 12:56:35 暂无标签

简介es、9.x

一、文档说明

  • 系统: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

十一、常见问题

  1. 启动失败:权限问题 → 重新授权 chown -R elasticsearch:elasticsearch /data/opt/elasticsearch
  2. 无法启动:vm.max_map_count → 重新执行 sysctl -p
  3. 密码忘记 → 使用重置密码命令
  4. 无法外部访问 → 检查 network.host: 0.0.0.0 + 防火墙 9200

十二、总结

本文实现:

  • 非 Docker 手动安装 ES 9.5.2
  • 全部文件统一部署到 /data/opt/elasticsearch
  • 生产级系统调优、安全认证、systemd 服务管理
  • 单节点稳定可用,适合单机生产 / 测试环境

你好:我的2025

上一篇:RUST命令行-项目

下一篇:orca