当前位置: 首页 > 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.dtcms.com/a/324362.html

相关文章:

  • Ubuntu 安装 Kibana
  • WGS84 与 ITRF 坐标系的差异及转换算法详解
  • 进程状态+进程优先级+进程上下文切换解读
  • 不同hash加密类型的hashfile.txt文件
  • C# 中常用集合以及使用场景
  • 强制类型转换
  • AI 对齐:让人工智能与人类价值同频共振
  • JavaWeb——maven高级(5/5)-私服(私服的概念与作用、Maven 依赖的查找顺序、上传资源到私服的配置步骤、下载依赖配置条件)
  • 单链表专题---暴力算法美学(2)(有视频演示)
  • actuary notes[2]
  • 单调栈——数位删减
  • Go语言中切片(Slice)的拷贝
  • 自创论述类文本阅读:论温泉
  • PWM波的频谱分析及matlab 验证[电路原理]
  • 【Linux】使用静态 BusyBox 解决操作系统“塌方”问题
  • Premiere准备工作
  • AQS的详细讲解
  • Java对接支付宝,回调验签失败
  • 活动策划(展会、年会),在线工具能快速出邀请函不?
  • [创业之路-537]:经营分析会 - 销售目标以及支撑、关键策略、主要行动措施、资源保障、人才储备
  • 在 JDK 17 上完整观察 synchronized 锁升级过
  • 嵌入式第二十四课!!linux应用软件编程与文件操作!!!
  • Java 基础编程案例:斐波拉契数与从输入交互到逻辑处理
  • NodeJs学习日志(4):路由合并_环境配置_常用文件目录
  • HarmonyOS之module.json5功能详解
  • AI测试助手如何让Bug无处可藏
  • 湖南(源点咨询)市场调研 如何在行业研究中快速有效介入 中篇
  • 深入浅出DBSCAN:基于密度的聚类算法详解与Python实战
  • github上传文件
  • Navicat 无限适用