Ubuntu服务器如何安装配置Elasticsearch?elasticsearch安装配置教程

在Ubuntu服务器上安装Elasticsearch,核心在于配置Java环境、下载官方包、修改内存限制并开放端口,建议优先使用官方APT源以确保版本兼容性与安全性。

Elasticsearch作为分布式搜索和分析引擎,近年来在日志处理、全文检索及数据分析领域占据了重要地位,许多开发者在初次接触时,往往被其复杂的配置劝退,只要理清依赖关系和基础配置逻辑,整个过程并不繁琐,本文将结合Ubuntu系统的特性,提供一套经过验证的实操方案,帮助你在生产环境中快速搭建稳定可靠的ES集群节点。

绿联云DH2600/DX4600使用Docker安装Ubuntu教程-折腾篇五
加载中
绿联云DH2600/DX4600使用Docker安装Ubuntu教程-折腾篇五

Ubuntu服务器安装Elasticsearch前的环境准备

在动手安装之前,必须明确Elasticsearch对运行环境的硬性要求,它基于Java开发,且对系统资源有一定消耗,忽略这些前置条件,往往会导致服务启动失败或运行不稳定。

Java运行环境的安装与验证

Elasticsearch内置了JDK,但在某些特定场景下,或者为了便于统一管理,手动安装Java仍是常见做法,业内专家指出,使用OpenJDK 11或17是目前的最佳实践,二者均能完美支持最新版本的ES。

更新系统软件包列表,确保获取最新的软件索引。

sudo apt update
sudo apt upgrade

安装OpenJDK,以Ubuntu 22.04或24.04为例,推荐安装OpenJDK 17。

sudo apt install openjdk-17-jdk

安装完成后,通过以下命令验证Java版本,确保版本符合ES要求(通常要求Java 11+)。

java -version

如果输出显示版本为17.x.x,则环境准备就绪,若系统默认安装了旧版本,可通过update-alternatives命令切换默认版本。

系统内核参数优化

Elasticsearch重度依赖文件系统缓存,因此需要调整Linux内核参数以支持更大的文件描述符数量和虚拟内存映射,这是许多新手容易忽略的关键步骤,直接导致ES启动时报错“max file descriptors”。

编辑/etc/sysctl.conf文件,添加或修改以下配置:

fs.file-max=65535
vm.max_map_count=262144

保存后,执行命令使配置立即生效:

Ubuntu服务器如何安装配置Elasticsearch?elasticsearch安装配置教程

sudo sysctl -p

需调整用户级别的文件限制,编辑/etc/security/limits.conf,添加以下内容:

 soft nofile 65535
 hard nofile 65535
 soft nproc 4096
 hard nproc 4096

这些配置确保ES进程能够打开足够的文件句柄,避免在高并发查询时出现资源瓶颈。

Ubuntu服务器安装Elasticsearch的具体步骤

目前主流的安装方式包括APT源安装、Docker容器化部署以及二进制包安装,对于追求稳定性和长期维护的用户,使用官方APT源是首选方案,这种方式能自动处理依赖关系,并方便后续通过包管理器进行升级。

导入官方GPG密钥与添加源

为了验证下载包的完整性,首先需要导入Elasticsearch官方的GPG密钥。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

添加Elasticsearch的APT源,这一步决定了你安装的是哪个版本,建议根据业务需求选择稳定版本(Stable)。

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

注意:若需安装Elasticsearch 7.x,请将上述命令中的x替换为x,不同版本间的配置语法存在差异,务必保持一致。

安装与启动服务

更新包索引后,即可执行安装命令。

sudo apt update
sudo apt install elasticsearch

安装完成后,ES服务并未自动启动,使用systemctl命令启动并设置开机自启。

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

可以通过curl命令检查服务状态,若返回JSON格式的系统信息,说明安装成功。

curl -X GET "localhost:9200/"

核心配置文件修改与安全加固

默认配置仅适用于测试环境,在生产环境中,必须对elasticsearch.yml进行针对性调整,否则将面临内存溢出或安全泄露风险。

内存限制与堆大小调整

Ubuntu服务器如何安装配置Elasticsearch?elasticsearch安装配置教程

Elasticsearch的堆内存(Heap Size)直接影响其性能,官方建议将堆内存设置为物理内存的50%,但不超过31GB,这是因为JVM在超过31GB时,指针压缩失效,反而降低性能。

编辑/etc/elasticsearch/jvm.options文件,找到-Xms-Xmx参数。

-Xms4g
-Xmx4g

假设你的服务器拥有8GB内存,将两者均设置为4GB是合理的选择,修改后,重启ES服务使配置生效。

网络绑定与跨域设置

默认情况下,ES仅绑定localhost,外部无法访问,若需远程连接,需修改/etc/elasticsearch/elasticsearch.yml

network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: ""

network.host设置为0.0.0允许所有IP访问。http.cors.enabled开启跨域支持,允许前端浏览器直接发起请求。http.cors.allow-origin设置为表示允许所有来源,生产环境中建议替换为具体的域名,以增强安全性。

身份认证与安全基础

随着网络安全意识提升,无密码访问已成为重大隐患,Elasticsearch 7.0+引入了X-Pack安全功能,虽然完整的安全套件需要商业许可,但基础的安全功能如SSL/TLS加密和内置用户管理,在基础版中可用。

启用安全功能需修改配置:

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

重启服务后,系统会提示设置内置用户密码,包括elastic超级管理员、kibana_systemlogstash_system等,务必妥善保管elastic用户的密码,它是后续所有操作的管理入口。

Ubuntu服务器安装Elasticsearch常见问题排查

在实际部署过程中,可能会遇到各种异常情况,以下是几种高频问题的解决方案。

服务启动失败,日志显示权限错误

ES严禁使用root用户运行,若手动启动报错,请检查文件所有者。

sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch
sudo chown -R elasticsearch:elasticsearch /var/log/elasticsearch

Ubuntu服务器如何安装配置Elasticsearch?elasticsearch安装配置教程

确保数据目录和日志目录的所有者为elasticsearch用户。

内存溢出(OOM)导致服务崩溃

若服务器内存较小,ES可能因堆内存不足被系统杀死,此时需检查/var/log/elasticsearch/下的日志文件,寻找OutOfMemoryError关键字,解决方法是进一步减小jvm.options中的堆大小,或增加服务器物理内存。

外部无法连接9200端口

若配置无误但仍无法访问,需检查Ubuntu防火墙。

sudo ufw allow 9200/tcp
sudo ufw reload

确保防火墙放行了9200端口,若使用云服务商(如阿里云、腾讯云),还需在安全组规则中添加入站规则。

Q&A:Ubuntu服务器安装Elasticsearch常见疑问

Ubuntu服务器安装Elasticsearch时,如何选择版本?

版本选择应基于业务需求与兼容性,若使用Kibana或Logstash,建议保持版本一致以避免兼容性问题,对于新部署,推荐选择最新的稳定版(如8.x),因其包含最新的安全补丁和性能优化,若现有应用依赖旧版API,则需降级至7.x或6.x,但需注意旧版本已停止官方安全更新。

Ubuntu服务器安装Elasticsearch后,如何监控运行状态?

可通过CURL命令查看集群健康状态,执行curl -X GET "localhost:9200/_cluster/health?pretty",若返回"status" : "green",表示集群健康,所有主分片和副本分片均正常,若为yellow,通常意味着副本分片未分配,可能是单节点集群的正常现象,若为red,则存在数据丢失风险,需立即检查日志,可安装Kibana作为可视化监控面板,直观展示节点负载、索引速率及查询性能。

Ubuntu服务器安装Elasticsearch是否必须购买商业许可?

Elasticsearch采用双许可模式,基础功能如搜索、聚合、索引创建等,在Basic许可下免费使用,无需付费,只有高级功能如基于角色的访问控制(RBAC)、细粒度字段级权限、机器学习及SQL查询等,才需要商业许可,对于大多数中小型企业的基础搜索和日志分析场景,免费版本已完全够用。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/409499.html

(0)
WordPress特色图片不显示怎么办?wp文章图片不显示怎么解决
上一篇 2026年6月22日 03:58
搜狗石破算法上线为何打击采集?搜狗搜索算法更新对SEO有什么影响
下一篇 2026年6月22日 04:01

相关推荐

  • html开发树形结构怎么做?前端开发常用组件有哪些

    “`这种结构虽然功能正常,但DOM层级过深,且缺乏语义化标签,优化后的方案优化后,使用语义化标签并减少嵌套:<article class="product-item"> <figure class="product-image"> <img……

    服务器宽带 2026年6月7日
    3000
  • 广州800g高防dns解析租用,高防DNS解析多少钱一年

    在广州地区寻求800G级别的超大带宽防护,选择专业的DNS解析服务是保障业务连续性与数据安全的最佳解决方案,面对日益复杂的DDoS攻击和CC攻击,单纯增加服务器硬件已无法抵御流量洪峰,唯有通过高防DNS集群的智能调度与清洗能力,才能实现毫秒级响应与T级攻击防御的完美平衡,确保业务在极端网络环境下依然坚如磐石……

    2026年4月1日
    9400
  • OpenLiteSpeed是什么?OpenLiteSpeed和Nginx哪个性能更好

    OpenLiteSpeed是一个免费开源的高性能Web服务器软件,它是商业版LiteSpeed Enterprise的开源版本,主要优势在于极高的并发处理能力、与WordPress等主流CMS的无缝集成以及相比Nginx更低的资源占用,非常适合中小型企业和个人开发者构建快速、稳定的网站环境,在Web服务器领域……

    2026年6月21日
    2310
  • WordPress网站白屏怎么解决?WordPress白屏原因及修复方法

    WordPress网站出现白屏通常是由PHP内存不足、插件冲突或主题文件损坏引起的,建议优先通过修改wp-config.php增加内存限制,并逐一禁用插件来排查具体冲突源,白屏现象背后的核心成因分析当你的WordPress站点突然变成一片空白,没有任何错误提示时,这通常被称为“白屏死机”(White Scree……

    2026年6月19日
    2200
  • 互联网区块链数据连接应用系统是什么?区块链数据连接应用系统有哪些

    互联网区块链数据连接应用系统通过去中心化协议打破信息孤岛,实现跨链数据的安全共享与实时验证,是构建可信数字生态的核心基础设施,为什么传统数据连接方式正在失效过去十年,企业间的数据交换主要依赖中心化数据库或API接口,这种模式在早期确实提高了效率,但随着业务复杂度增加,其弊端日益凸显,数据所有权模糊、传输过程易被……

    2026年6月3日
    3500
  • 网站打开慢是服务器带宽不够吗?如何提升网站加载速度

    网站访问速度直接影响用户体验与业务转化,当面临访问迟延时,网站打开慢是服务器带宽不够吗?这一疑问常被首先提出,核心结论在于:带宽不足仅是潜在原因之一,在绝大多数实际场景中,服务器资源配置不当、网站程序代码冗余、数据库查询效率低下以及前端资源未优化,才是导致网站加载缓慢的“真凶”,单纯增加带宽往往无法根治问题,甚……

    2026年3月3日
    13200
  • WordPress上传SVG图片失败怎么办?如何开启SVG格式支持

    WordPress站点上传SVG图片失败,核心原因是出于安全考虑,默认配置禁止了SVG格式的直接上传,解决方法是通过插件启用支持或修改代码允许特定用户组上传,创作和网站运营的日常场景中,SVG(可缩放矢量图形)因其无损放大、文件体积极小以及代码可控等优势,已成为许多设计师和开发者的首选格式,当你在WordPre……

    2026年6月25日
    1200
  • 如何用HTML写接口API?前端如何调用后端接口

    使用HTML编写API接口通常指通过前端页面调用后端API,或生成API文档,而非直接以HTML作为API协议;现代开发中,HTML主要用于展示层,API交互依赖HTTP协议与JSON数据格式,很多初学者容易混淆“前端页面”与“后端接口”的概念,HTML本身是一种标记语言,负责网页的结构和展示,它不具备处理业务……

    2026年6月10日
    3100
  • 网站打开慢是服务器带宽不够吗?如何提升网站加载速度

    网站打开速度慢,服务器带宽不足仅是原因之一,绝非唯一决定因素,根据长期运维经验与数据分析,带宽因素在网站访问延迟中的占比通常不足30%,更多时候,问题根源在于服务器性能瓶颈、网页代码臃肿、数据库查询低效或网络链路波动,解决访问速度问题,必须建立“服务器-网络-前端-程序”的全链路排查思维,单纯升级带宽往往治标不……

    2026年3月6日
    13400
  • 广州gpu服务器内存1G是什么意思,gpu服务器1g内存够用吗

    广州gpu服务器内存1G是什么意思?这并非指整台服务器的系统内存仅为1GB,而是特指GPU显存容量为1GB,这种配置通常出现在入门级显卡或特定计算场景中,代表该服务器在图形处理与并行计算能力上属于基础层级,适用于轻量级任务,而非深度学习模型训练等高负载场景,核心结论:GPU显存决定数据处理上限,在服务器硬件架构……

    2026年3月30日
    9900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


Warning: file_put_contents(): Only -1 of 209 bytes written, possibly out of free disk space in /www/wwwroot/idctop/wp-content/plugins/powered-cache/includes/dropins/page-cache.php on line 402

Warning: file_put_contents(): Only -1 of 27231 bytes written, possibly out of free disk space in /www/wwwroot/idctop/wp-content/plugins/powered-cache/includes/dropins/page-cache.php on line 412