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

Ubuntu部署Elasticsearch教程

Ubuntu 22.04 部署 Elasticsearch 8.15.2 教程

一、引言

Elasticsearch 是一款开源的分布式搜索和分析引擎,广泛应用于日志分析、全文检索、监控告警等场景。本文基于 Ubuntu 22.04 系统,详细介绍 Elasticsearch 8.15.2 的部署过程,包含环境准备、安装配置、安全设置及常见问题解决,全程提供可直接执行的脚本命令。

二、环境准备

2.1 系统要求

  • 操作系统:Ubuntu 22.04 LTS
  • Java 环境:OpenJDK 11 及以上
  • 内存:至少 2GB(生产环境建议 4GB+)

2.2 依赖安装

# 更新系统包
sudo apt update && sudo apt upgrade -y# 安装依赖(Java、HTTPS支持等)
sudo apt install -y openjdk-11-jdk apt-transport-https wget

2.3 验证Java环境

java -version
# 输出应包含 "openjdk version 11.0.x"

三、安装 Elasticsearch

3.1 添加 Elastic 仓库

3.1.1 导入 GPG 密钥
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
3.1.2 配置仓库源
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

3.2 安装 Elasticsearch

# 更新仓库并安装
sudo apt update && sudo apt install -y elasticsearch=8.15.2

四、系统优化(必做)

4.1 调整文件句柄限制

# 为 elasticsearch 用户设置文件句柄和进程数限制
sudo tee -a /etc/security/limits.conf <<EOF
elasticsearch - nofile 65535
elasticsearch - nproc  4096
elasticsearch - memlock unlimited
EOF

4.2 配置虚拟内存

# 设置虚拟内存映射数(永久生效)
sudo tee -a /etc/sysctl.conf <<EOF
vm.max_map_count=262144
EOF# 立即生效
sudo sysctl -p

五、配置 Elasticsearch

5.1 修改主配置文件

sudo vim /etc/elasticsearch/elasticsearch.yml

关键配置(按需修改):

# 集群名称(自定义)
cluster.name: my-es-cluster# 节点名称(自定义)
node.name: node-1# 允许远程访问(生产环境建议指定具体IP)
network.host: 0.0.0.0# HTTP端口(默认9200)
http.port: 9200# 单节点模式(测试环境用)
discovery.type: single-node# 数据和日志路径(默认已配置)
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

5.2 调整 JVM 内存

sudo vim /etc/elasticsearch/jvm.options

修改以下参数(根据服务器内存调整,建议为物理内存的50%):

-Xms1g  # 初始堆内存(如2GB内存设为1g)
-Xmx1g  # 最大堆内存(与初始值保持一致)

六、启动与验证

6.1 启动服务并设置开机自启

# 重载systemd配置
sudo systemctl daemon-reload# 启动服务
sudo systemctl start elasticsearch# 设置开机自启
sudo systemctl enable elasticsearch

6.2 验证服务状态

# 检查服务状态
sudo systemctl status elasticsearch# 测试API连接(需输入elastic用户密码)
curl -u elastic:your_password https://localhost:9200

七、安全配置(8.x 必做)

7.1 设置超级用户密码

Elasticsearch 8.x 默认启用安全功能,首次启动后需设置 elastic 用户密码:

sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
# 按提示输入新密码(建议包含大小写、数字和特殊字符)

7.2 禁用HTTPS(仅测试环境)

生产环境请勿禁用!

sudo vim /etc/elasticsearch/elasticsearch.yml

添加:

xpack.security.enabled: false
xpack.security.http.ssl.enabled: false

重启服务:sudo systemctl restart elasticsearch

八、常见问题解决

8.1 启动失败:内存不足

解决:调整 jvm.options 中的 -Xms-Xmx,设为系统内存的50%(最大不超过31GB)。

8.2 权限错误:无法写入数据目录

解决:检查目录权限:

sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch
sudo chmod -R 750 /var/lib/elasticsearch

8.3 虚拟内存不足:max_map_count

解决:执行 sudo sysctl -w vm.max_map_count=262144,并确保 /etc/sysctl.conf 中已添加配置。

九、总结

通过以上步骤,您已在Ubuntu 22.04上成功部署Elasticsearch 8.15.2。后续可安装Kibana进行可视化(版本需与ES一致),或通过API导入数据测试搜索功能。生产环境中建议配置集群模式,并启用备份策略。

参考文档:Elasticsearch官方文档

http://www.dtcms.com/a/393593.html

相关文章:

  • 61.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--提取金额
  • 一款基于 .NET 开源、免费、命令行式的哔哩哔哩视频内容下载工具
  • Win Semi宣布推出线性优化的GaN工艺
  • 考研408计算机网络2025年第38题真题解析
  • C++编写的经典贪吃蛇游戏
  • 风险预测模型原理
  • PS练习5:利用翻转制作图像倒影
  • 平替Jenkins,推荐一款国产开源免费的CICD工具 - Arbess
  • aws 实战小bug
  • NumPy 系列(一):numpy 数组基础
  • VSCode 的 launch.json 配置
  • OpenLayers地图交互 -- 章节六:范围交互详解
  • 分布式专题——15 ZooKeeper特性与节点数据类型详解
  • 分布式专题——16 ZooKeeper经典应用场景实战(上)
  • Torch-Rechub学习笔记-task2
  • Hadoop分布式计算平台
  • hive调优系列-1.调优须知
  • 爆炸特效:Unity+Blender-01
  • 解决切换 Node 版本后 “pnpm 不是内部或外部命令”问题
  • flag使用错误出现bug
  • 【Kafka面试精讲 Day 20】集群监控与性能评估
  • SQL 注入攻防:绕过注释符过滤的N种方法
  • 微软常用运行库
  • 在Kubernetes(k8s)环境中无法删除持久卷(PV)和持久卷声明(PVC)的解决方案
  • 【连载7】 C# MVC 跨框架异常处理对比:.NET Framework 与 .NET Core 实现差异
  • 芯脉:面向高速接口的SoC架构与完整性设计<3>
  • ArrayList与LinkedList深度对比
  • AI IDE 综合评估:代码能力与上下文连续性深度分析
  • OceanBase备租户创建(一):通过CREATE STANDBY TENANT
  • C++ 多态:从概念到实践,吃透面向对象核心特性