elasticsearch 安装教程详解 Linux 单机部署全流程

elasticsearch 简称 ES,是基于 Lucene 开发的分布式搜索分析引擎,单机安装核心前提是必须匹配对应版本的 JDK,新版 elasticsearch 自带内置 JDK,也可以选择使用系统独立 JDK,主流生产学习环境一般选择 Linux 系统部署,比如 CentOS7 RockyLinux Ubuntu,安装过程主要包含环境准备 下载安装包 系统参数调优 配置文件修改 启动服务 验证连通性这几个环节,很多新手安装失败,大多是因为没有关闭防火墙或者没有修改虚拟内存文件句柄这些系统参数,导致 ES 启动报错,ES 默认不能使用 root 用户直接启动,这个是非常关键的硬性限制,部署完成之后默认端口是 9200,通过浏览器或者 curl 请求 9200 端口,返回版本号节点信息就代表安装成功,本教程以单机单节点部署为主,适合学习测试使用,集群部署属于进阶内容,和单机安装底层原理一致,只是多节点配置发现模块需要额外调整。

安装前环境准备清单

项目要求说明
操作系统CentOS7 Ubuntu20.04 RockyLinux 8 推荐
内存最低建议 2G 内存,推荐 4G 以上,ES 默认堆内存占用较高
JDK7.x 版本需要 JDK11,8.x 版本需要 JDK17,新版 ES 自带 JDK 可以不用单独安装
用户必须新建普通用户,禁止 root 直接启动
端口默认 9200 为 http 访问端口,9300 为节点内部通信端口
内核参数需要修改 vm.max_map_count,文件打开数 ulimit

详细安装操作步骤

第一步 新建专用用户

因为 ES 安全机制限制,root 账号无法直接启动,执行命令创建 es 用户,设置登录密码,后续所有操作都切换到这个用户执行,不要全程 root 操作。

第二步 下载 elasticsearch 安装包

可以从官方站点下载对应版本 tar.gz 压缩包,学习环境可以选择 7.17 或者 8.x 稳定版,下载完成之后上传到服务器,解压到自定义目录,比如 opt 目录下,解压之后目录里面包含 bin config data logs plugins 这几个核心文件夹,bin 存放启动脚本,config 存放配置文件,data 是索引数据目录,logs 是运行日志。

第三步 修改系统内核参数

编辑 sysctl 配置文件,修改 vm.max_map_count 参数,这个参数默认数值很低,ES 启动会直接报错,修改之后执行 sysctl 命令让参数生效,同时修改 ulimit,提升单进程最大打开文件数,这个配置一般写在系统 limits 配置文件里面,重启会话之后生效。

第四步 修改 elasticsearch.yml 主配置文件

这个文件是 ES 核心配置,重点修改几项,节点名称 node.name,数据路径 path.data,日志路径 path.logs,网络绑定地址 network.host,默认是 127.0.0.1 只能本机访问,如果需要外部访问改成 0.0.0.0,http 端口 http.port 默认 9200,单机模式设置 discovery.type 为 single node,这个参数非常重要,单机如果不设置,ES 会默认等待集群主节点选举,出现启动卡住的问题,8.x 版本默认开启安全认证,会自动生成密码和证书,如果学习测试不需要安全校验,可以在配置文件关闭 xpack 安全相关选项。

第五步 调整 jvm 堆内存配置

修改 jvm.options 文件,设置 Xms 和 Xmx,也就是初始堆内存和最大堆内存,建议两个数值设置成一样,不要超过服务器物理内存一半,同时不要超过 31G,这个是 ES 官方推荐规则,内存设置过大容易触发指针压缩失效,性能反而下降。

第六步 启动 elasticsearch 服务

切换到 es 普通用户,进入 bin 目录,执行启动脚本,前台启动可以直接看到启动日志,后台启动需要加上后台参数,启动之后等待几十秒,观察日志是否出现报错信息。

第七步 验证安装是否成功

使用 curl 命令访问 9200 端口,curl http 服务器 ip 9200,如果返回 json 格式内容,里面包含 cluster_name version name 这些字段,代表 elasticsearch 安装成功,也可以使用浏览器访问这个地址查看返回信息,如果访问不通,优先排查防火墙是否放行 9200 端口,selinux 是否拦截,network.host 是否正确配置。

常见报错排查要点

第一类 报错提示不能 root 启动,解决方式就是切换普通用户运行。

第二类 vm.max_map_count 过低报错,检查 sysctl 参数是否生效。

第三类 启动卡在主节点选举,检查 discovery.type 是否设置 single node。

第四类 外部无法访问 9200,检查防火墙放行端口,network.host 是否改成 0.0.0.0。

第五类 JDK 版本不匹配,确认 ES 版本对应的 JDK 版本,使用自带 JDK 就不需要额外安装系统 JDK。

elasticsearch 单机安装本质就是满足系统底层参数要求,规避 root 启动限制,正确修改主配置文件,启动之后验证 9200 接口,学习测试单机部署完成之后,后续可以安装 kibana 可视化插件,实现图形化查询索引,生产环境还需要规划数据备份 集群多节点 安全权限 磁盘水位这些进阶配置,单机教程只适合入门学习,生产正式部署不能直接照搬单机配置。

【常见问题】

问题 1,elasticsearch 安装的时候为什么不能使用 root 用户启动

回答 1,elasticsearch 内置安全防护机制,禁止 root 用户直接启动 elasticsearch 服务,主要是防止进程权限过高带来安全风险,所以 elasticsearch 安装流程必须新建普通用户,使用普通用户执行启动脚本。

问题 2,elasticsearch 安装完成之后 9200 端口访问失败怎么处理

回答 2,elasticsearch 安装后 9200 访问失败,优先检查 network.host 是否修改为 0.0.0.0,然后检查防火墙是否放行 9200 端口,同时查看 logs 日志,确认 elasticsearch 进程是否正常启动,是否存在启动报错。

问题 3,elasticsearch 安装时 vm.max_map_count 这个参数是必须修改吗

回答 3,elasticsearch 安装之后启动对 vm.max_map_count 有硬性要求,默认系统参数值达不到 ES 要求,绝大多数情况都需要修改这个内核参数,否则 elasticsearch 启动会直接抛出错误无法正常运行。

问题 4,elasticsearch 7.x 和 8.x 安装配置差别大吗

回答 4,elasticsearch 7.x 和 8.x 安装主体流程基本一致,主要差别是 8.x 默认开启 xpack 安全认证,7.x 默认安全模块是关闭状态,所以 elasticsearch 安装的时候,8.x 版本需要额外处理证书和账号密码相关配置。

【免责申明】

本文为 elasticsearch 安装学习教程,仅用于技术学习参考,官方版本持续迭代,不同版本配置项可能存在变动,生产环境部署需要结合官方文档 业务容量 安全规范进行规划,本文内容不替代官方正式文档,不保证所有特殊操作系统兼容场景全部覆盖,生产部署风险自行承担。

本文来自作者[生活求真科普]投稿,不代表万里行信息网立场,如若转载,请注明出处:https://www.wlx315.cn/zsfx/202611/7664.html

赞 (24)

今日大家都在搜的词:

发表回复

本站作者后才能评论

评论列表(4条)

  • 生活求真科普
    生活求真科普 2026年11月06日

    我是万里行信息网的签约作者“生活求真科普”!

  • 生活求真科普
    生活求真科普 2026年11月06日

    希望本篇文章《elasticsearch 安装教程详解 Linux 单机部署全流程》能对你有所帮助!

  • 生活求真科普
    生活求真科普 2026年11月06日

    本站[万里行信息网]内容主要涵盖:生活百科,小常识,生活小窍门,知识分享

  • 生活求真科普
    生活求真科普 2026年11月06日

    本文概览:elasticsearch 简称 ES,是基于 Lucene 开发的分布式搜索分析引擎,单机安装核心前提是必须匹配对应版本的 JDK,新版 elasticsearch 自带内置 JDK,也可以选择使用系统独立 JDK,主流生产学习环境一般选择 Linux 系统部署,比如 CentOS7 RockyLinux Ubuntu,安装过程主要包含环境准备 下载安装包 系统参数调优 配置文件修改 启动服务 验证连通性这几个环节,很多新手安装失败,大多是因为没有关闭防火墙或者没有修改虚拟内存文件句柄这些系统参数,导致 ES 启动报错,ES 默认不能使用 root 用户直接启动,这个是非常关键的硬性限制,部署完成之后默认端口是 9200,通过浏览器或者 curl 请求 9200 端口,返回版本号节点信息就代表安装成功,本教程以单机单节点部署为主,适合学习测试使用,集群部署属于进阶内容,和单机安装底层原理一致,只是多节点配置发现模块需要额外调整。

联系我们

联系:143 0457 151

工作时间:周一至周五,9:30-18:30,节假日休息

关注我们