当前位置: 首页 > news >正文

Ubuntu 安装 Elasticsearch

什么是 Elasticsearch

Elasticsearch 是一个基于 Lucene 的开源分布式搜索与分析引擎,能在海量数据中以毫秒级速度进行全文检索、结构化查询和实时数据分析,广泛用于站内搜索、日志分析和业务监控,数据以 JSON 文档形式存储,并支持水平扩展。


配置 Ubuntu 服务器

1. 确认 Ubuntu 系统版本

使用如下命令:

lsb_release -a
或者
cat /etc/os-release
或者
hostnamectl

显示如下:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.2 LTS
Release:        24.04
Codename:       noble

2. 更新国内镜像源

不然 sudo apt update 可能会失败。

备份原来的镜像文件:

sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.backup

编辑 /etc/apt/sources.list.d/ubuntu.sources 文件

sudo vim /etc/apt/sources.list.d/ubuntu.sources

ubuntu.sources 文件原内容:

Types: deb
URIs: http://cn.archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpgTypes: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

替换镜像源后内容:

阿里云

Types: deb
URIs: http://mirrors.aliyun.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpgTypes: deb
URIs: http://mirrors.aliyun.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

腾讯云

Types: deb
#URIs: http://archive.ubuntu.com/ubuntu/
URIs: http://mirrors.tencentyun.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg#Types: deb
#URIs: http://security.ubuntu.com/ubuntu/
#Suites: noble-security
#Components: main restricted universe multiverse
#Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

3. 更新软件包

# 更新本地的“软件包索引缓存”,获取镜像源地址中最新的软件版本
sudo apt update# 更新升级 apt update 得到的新版本,更新安装这些新版本到我们的服务器上
sudo apt upgrade -y

安装 Elasticsearch

Elasticsearch官网:https://www.elastic.co/elasticsearch

1. 官网地址下载 deb 安装包

2. 将下载好的 elasticsearch-9.1.1-amd64.deb 安装包,上传到 Ubuntu /usr/local目录

3. 执行安装 Elasticsearch 命令

sudo dpkg -i elasticsearch-9.1.1-amd64.deb

看到输出如下内容,表示安装成功。

截图输出的内容含义如下:

  1. Elasticsearch 软件包已经成功解包和安装。
  2. 认证和授权(Authentication and Authorization)已经启用,这说明 Elasticsearch 默认开启了安全机制,不像以前版本那样默认无密码。
  3. TLS(加密传输)也启用了,保证数据通信安全。
  4. 系统里自动创建了一个 elasticsearch 用户和用户组,用来运行这个服务,保证安全隔离。
  5. 系统给内置的 elastic 超级管理员账户随机生成了一个初始密码:2-2vq0+aTp53Z2DZUvha。 你以后登录 Kibana 或用 API 操作 Elasticsearch 时,要用这个密码(建议尽快修改密码)。
  6. 你可以用下面命令重置 elastic 用户密码:/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
  7. 生成给 Kibana 用的 enrollment token:/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
  8. 生成给其它 Elasticsearch 节点用的 enrollment token(用于集群搭建):/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node
  • Enrollment token 是什么?
    • Elasticsearch 8.x 版本默认开启了安全认证和加密,所有客户端(包括 Kibana)要连接都需要身份认证。
    • Enrollment token(注册令牌) 是一种安全凭证,类似临时“通行证”,可以让 Kibana 自动完成身份验证、注册和信任建立,避免手动输入密码和复杂配置。
    • 生成这个 token 后,你在 Kibana 配置里使用它,Kibana 就能用这个 token 安全地“入驻”到你的 Elasticsearch 集群。

4. 启动 Elasticsearch 服务

重新加载 systemd 的配置文件,当你安装或修改了服务文件(比如 elasticsearch.service),systemd 需要重新加载这些配置,才能正确识别和管理服务。

sudo systemctl daemon-reload

启动 Elasticsearch 服务

sudo systemctl start elasticsearch.service

5. 验证 Elasticsearch  服务是否启动

方式一:

使用 sudo systemctl status elasticsearch 命令,状态显示 active (running),表示已启动

方式二:

执行如下命令,然后输入密码

curl -u elastic --insecure https://localhost:9200/

返回如下内容,表示已启动

{"name" : "VM-24-11-ubuntu","cluster_name" : "elasticsearch","cluster_uuid" : "DWguAtYBRemeW1bEI7646w","version" : {"number" : "9.1.1","build_flavor" : "default","build_type" : "deb","build_hash" : "5e94055934defa56e454868b7783b2a3b683785e","build_date" : "2025-08-05T01:07:31.959947279Z","build_snapshot" : false,"lucene_version" : "10.2.2","minimum_wire_compatibility_version" : "8.19.0","minimum_index_compatibility_version" : "8.0.0"},"tagline" : "You Know, for Search"
}
  • --insecure 是什么意思?
    • 告诉 curl 忽略 HTTPS 请求中的 SSL/TLS 证书验证错误,继续发起请求。
    • Elasticsearch 默认启用了 TLS 加密,使用的是 自签名证书(不是由受信任的证书机构签发的)。自签名证书默认不被操作系统或浏览器信任,curl 会因为证书“不可信”而拒绝连接。加上 --insecure 参数后,curl 就不会去验证证书的合法性,直接和服务器建立加密连接。

Elasticsearch 安装成功后,资源存放目录

非 root 用户登录,使用 sudo -i  切换到 root 环境,使用 root 权限查看

类型路径说明
程序二进制文件/usr/share/elasticsearch/Elasticsearch 可执行文件和运行时文件
配置文件/etc/elasticsearch/主要配置文件,如 elasticsearch.yml
日志文件/var/log/elasticsearch/Elasticsearch 运行日志
数据文件/var/lib/elasticsearch/存储索引数据
服务单元文件/lib/systemd/system/elasticsearch.servicesystemd 服务文件,用于管理服务启动等
用户和用户组系统创建 elasticsearch 用户和组用于安全运行 Elasticsearch

Elasticsearch 服务相关命令

查看服务状态:sudo systemctl status elasticsearch

启动服务:sudo systemctl start elasticsearch

停止服务:sudo systemctl stop elasticsearch

重启服务:sudo systemctl restart elasticsearch

查看服务开机自启状态:sudo systemctl is-enabled elasticsearch

启动开机自启动:sudo systemctl enable elasticsearch

禁用开机自启动:sudo systemctl disable elasticsearch


修改 Elasticsearch 用户密码

使用如下命令:

/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

注意:这个命令只能重置密码为自动生成的随机密码,官方工具不支持直接指定你想设置的密码。


修改 Elasticsearch 9200 端口

编辑 /etc/elasticsearch/elasticsearch.yml 配置文件        // 没有权限操作,先使用 sudo -i 命令

sudo vim /etc/elasticsearch/elasticsearch.yml

找到 或 添加 如下配置,修改成你自己需要的端口

http.port: 9200

重启 elasticsearch 服务,使配置生效

sudo systemctl restart elasticsearch

修改 Elasticsearch 启动时 JVM 堆内存大小

编辑 /etc/elasticsearch/jvm.options 配置文件        // 没有权限操作,先使用 sudo -i 命令

sudo vim jvm.options

找到如下配置,修改成你自己需要的内存大小

# 建议两者设置成相同的值以避免堆内存动态调整带来的性能问题
# JVM 堆的初始内存大小(Minimum Heap Size)
-Xms8g
# JVM 堆的最大内存大小(Maximum Heap Size)
-Xmx8g

重启 elasticsearch 服务,使配置生效

sudo systemctl restart elasticsearch

使用下面命令查看 JVM 堆内存大小

curl -u elastic --insecure https://localhost:9200/_nodes/jvm?pretty


http://www.lryc.cn/news/616185.html

相关文章:

  • 【0基础PS】PS工具详解--缩放工具
  • 【python】import与include的区别
  • 运维学习Day20——MariaDB数据库管理
  • 生产环境中Spring Cloud Sleuth与Zipkin分布式链路追踪实战经验分享
  • LeetCode_哈希表
  • 【代码随想录day 16】 力扣 112. 路径总和
  • Java学习第一百二十三部分——HTTP/HTTPS
  • 一文学习nacos和openFeign
  • MariaDB 数据库管理
  • 【牛客刷题】小红的项链(字节跳动面试题)
  • Graham 算法求二维凸包
  • OpenEnler等Linux系统中安装git工具的方法
  • WGS84 与 ITRF 坐标系的差异及转换算法详解
  • Linux | i.MX6ULL移植 ssh 服务到开发板(第十五章)
  • 苍穹外卖-Day1 | 环境搭建、nginx、git、令牌、登录加密、接口文档、Swagger
  • 攻击实验(ARP欺骗、MAC洪范、TCP SYN Flood攻击、DHCP欺骗、DHCP饿死)
  • 【接口自动化】初识pytest,一文讲解pytest的安装,识别规则以及配置文件的使用
  • YOLOv11 模型轻量化挑战:突破边缘计算与实时应用的枷锁
  • Ollama+Deepseek+Docker+RAGFlow打造自己的私人AI知识库
  • C语言深度剖析
  • Docker 详细介绍及使用方法
  • 【东枫科技】 FR2 Massive MIMO 原型验证与开发平台,8*8通道
  • DBSACN算法的一些应用
  • 力扣-20.有效的括号
  • Design Compiler:布图规划探索(ICC II)
  • 【FPGA】初识FPGA
  • Jotai:React轻量级状态管理新选择
  • 密码学的数学基础2-Paillier为什么产生密钥对比RSA慢
  • 重学React(四):状态管理二
  • 机器学习第八课之K-means聚类算法