ES 8.x 系列教程:ES 8.0 服务安装(可能是最详细的ES 8教程)

简介: ES 8.x 系列教程:ES 8.0 服务安装(可能是最详细的ES 8教程)

1、开发环境操作系统

1.1 选择Windows、Mac or Linux

首先明确一点:我们的首要目的是要快速上手使用Elasticsearch(以下简称ES),安装和部署ES并非重点,企业中真正需要你去安装的可能性或者机会非常小。大家可以想一想,对于刚入职的你来说,公司内部一般来说都已经有了一套完整的技术架构,让你亲自动手搭建除非是公司架构重构或者你作为公司技术团队的核心或者运维。


所以关于ES的安装,我们在基础篇不多做介绍,如果的确有需要,我会在进阶篇和运维篇,分别讲解基于CentOS、K8S搭建ES集群、部署ELK等从零到一完整详细讲解。建议大家跟随课程大纲学习,效率更高。


结论:建议选择Windows或者MacOS,不推荐Linux图形化界面学习(极客除外)。当然这并非绝对,如果你钟爱Linux图形化界面,并非不可以。但须知道,服务器上使用Linux非图形界面,基于Linux的开发和生产环境的部署方式大相径庭,在开发环境中学习到的Linux安装部署完全不适用于生产环境(生产环境的安装部署在运维篇讲解)。


1.2 选择虚拟机还是本地安装

基础篇内容关于ES安装部署限于Elasticsearch的自动发现和基本配置,集群配置相关内容在进阶篇-Elastic分布式原理中讲解,因此为了更高效的学习,建议基于OS本地多节点的部署方式部署集群,或者单节点模式启动均可。


2、学习ES 8 Java版本如何选择

2.1 ES与JDK兼容性

以下位Elasticsearch各个版本和不同Java版本的兼容性列表

微信截图_20221119085124.png

微信截图_20221119085142.png

微信截图_20221119085158.png

微信截图_20221119085209.png


结论:

  • ES 7.x 及之前版本,选择 Java 8
  • Java 9、Java 10、Java 12 和 Java 13 均为短期版本,不推荐使用
  • 对于ES 8.x ,支持 Java 17 和 Java 18,推荐版本:
  • 对于ES 8.0:Java版本仅支持 Java 17,别无选择
  • 对于ES 8.1及以上版本:支持Java 17 以及 Java 18,建议 Java 17,因为对应版本的 Logstash 不支持 Java 18。
  • M1(Arm) 系列 Mac 用户建议选择 ES 7.8.x 以上版本,因为考虑到 ELK 不同产品自身兼容性,7.8.x以上版本原生支持 Arm 原生 JDK


2.2 Java下载

● 各大版本jdk国内镜像:https://www.injdk.cn/

● 程序员大礼包:https://www.programmer-box.com/?ref=jdk_1.8


2.3 不同系统下Java环境的安装

此处略过安装过程,如果无安装jdk基础,可自行百度

另外,从7.x开始,以后的版本ES均自带jdk,所以可即使不安装jdk也可正常运行ES。


3、下载和安装ES

3.1 SDK下载地址


3.2 Elasticsearch目录结构

bee361571f2b48c496dc3a421ea26210.png


4、单节点模式下启动ES服务

4.1 创建账号并赋予权限

ES不允许使用root账号启动服务,如果你当前账号是root,则需要创建一个专有账户(以下命令均在root账户下执行,windows系统在power shell下执行)。如果你的账号不是root账号,此步骤可以跳过


4.1.1 创建elastic账号

useradd elastic


4.1.2 设置elastic账号的密码:

passwd elastic


4.1.3 为账号赋予目录权限

chown -R elastic:elastic {{espath}}


4.2 启动命令

8462cfc2ff08483e9fde7549330b74cb.png


4.3 启动日志

ES在 7.x 版本时,控制台输出 started 时代表服务启动成功,和 7.x 版本不同,

ES 8.x 启动之后会输出以下信息,此时服务已经启动成功了。

a415905372434ae59264c9ef77c69f65.png


首次启动 Elasticsearch 时,会自动进行以下安全配置:


  • 为传输层和 HTTP 层生成 TLS 证书和密钥。
  • TLS 配置设置被写入elasticsearch.yml
  • 为 elastic 用户生成密码。
  • 为 Kibana 生成一个注册令牌。


红框1:ES为我们生成的elastic账户的默认密码,重要,需要复制记下来

红框2:CA证书的密钥信息,暂时先不管

红框3:ES为Kibana生成的访问令牌,Kibana访问ES服务需要用到。(有效期为 30 分钟)

红框4:ES位其他节点加入集群生成的访问令牌,当前集群中需要加入新节点时,需要携带此令牌(有效期为 30 分钟)


然后您可以启动 Kibana 并输入有效期为 30 分钟的注册令牌。此令牌自动应用 Elasticsearch 集群中的安全设置,使用内置kibana服务帐户向 Elasticsearch 进行身份验证,并将安全配置写入kibana.yml


4.4 修改默认密码

在 ES 8.x版本以后,elasticsearch-setup-passwords设置密码的工具已经被弃用删除,此命令为7.x之前第一次生成密码时使用,8.x在第一次启动的时候会自动生密码。


注意:上述(4.3截图)内容仅在第一次启动时显示,如果需要修改账户密码,需进行以下操作

bin/elasticsearch-reset-password
[-a, --auto] [-b, --batch] [-E <KeyValuePair]
[-f, --force] [-h, --help] [-i, --interactive]
[-s, --silent] [-u, --username] [--url] [-v, --verbose]


使用此命令重置本地领域中的任何用户或任何内置用户的密码。默认情况下,系统会为您生成一个强密码。要显式设置密码,请使用 以交互模式运行该工具-i。该命令在 文件领域中生成(并随后删除)一个临时用户,以运行更改用户密码的请求。

-a, --auto
将指定用户的密码重置为自动生成的强密码。(默认)
-b, --batch
运行重置密码过程而不提示用户进行验证。
-E <KeyValuePair>
配置标准 Elasticsearch 或 X-Pack 设置。
-f, --force
强制命令针对不健康的集群运行。
-h, --help
返回所有命令参数。
-i, --interactive
提示输入指定用户的密码。使用此选项显式设置密码。
-s --silent
在控制台中显示最小输出。
-u, --username
本机领域用户或内置用户的用户名。
--url
指定工具用于向 Elasticsearch 提交 API 请求的基本 URL(本地节点的主机名和端口)。默认值由 elasticsearch.yml文件中的设置确定。如果xpack.security.http.ssl.enabled设置为true,则必须指定 HTTPS URL。
-v --verbose
在控制台中显示详细输出。


比如

elastic账号自动生成新的随机密码,输出至控制台

bin/elasticsearch-reset-password -u elastic


手工指定elastic的新密码

bin/elasticsearch-reset-password --username elastic -i


指定服务地址和账户名

bin/elasticsearch-reset-password --url "https://172.0.0.3:9200" --username elastic -i


4.5 验证服务启动

4.5.1 访问服务

在7.x的版本是通过如下地址访问ES服务:http://localhost:9200/

但是在 8.x 的版本访问会看到如下页面:

591879ff5f1e492ca8cffd7839dd610d.png


4.5.2 原因解释

这是正常现象,因为 Elastic 8 默认开启了 SSL,将默认配置项由true改为false即可

ba85153035814d339abbefb12fc32a6a.png


4.5.3 推荐做法

关闭SSL虽然可以访问服务了,但这本质上是在规避问题而非解决问题,更推荐的做法是使用https协议进行访问:

https://localhost:9200/,此时如果你的浏览器版本是比较新的版本会出现以下弹窗提示,即:

fc619f2a6a334ac39c732e08058f987c.png


4.5.4 解决方案

在chrome该页面上,直接键盘敲入thisisunsafe这11个字符(鼠标点击当前页面任意位置,让页面处于最上层即可输入,输入时是没有任何提示也不显示任何字符的,直接输入即可按回车即可),然后你会看到如下提示:


4.5.5 输入账号密码验证

此时输入账号,也就是在2.5.4的启动日志中,红框一内的内容,确定即可访问ES服务,至此,单节点ES服务启动成功。

a0a72da6e0a54b96a568f81793f60f00.png


总结

ES 8 默认启动Security,这对新手学习很不友好,实际上违背了Elastic官方设置开发模式的初衷,安全固然重要,但是没必要把门槛设置这么高,建议官方在后续更新中,把Security开发模式中默认关闭,在生产模式下,默认开启。这样更加合理。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
安全 Java Linux
ElasticSearch下载与安装
ElasticSearch下载与安装
3663 0
ElasticSearch下载与安装
|
9月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
4778 0
|
数据可视化 Java Windows
Elasticsearch入门-环境安装ES和Kibana以及ES-Head可视化插件和浏览器插件es-client
本文介绍了如何在Windows环境下安装Elasticsearch(ES)、Elasticsearch Head可视化插件和Kibana,以及如何配置ES的跨域问题,确保Kibana能够连接到ES集群,并提供了安装过程中可能遇到的问题及其解决方案。
Elasticsearch入门-环境安装ES和Kibana以及ES-Head可视化插件和浏览器插件es-client
|
自然语言处理 应用服务中间件 nginx
一文教会你 分词器elasticsearch-analysis-ik 的安装使用【自定义分词库】
这篇文章是关于如何在Elasticsearch中安装和使用ik分词器的详细教程,包括版本匹配、安装步骤、分词测试、自定义词库配置以及创建使用ik分词器的索引的方法。
一文教会你 分词器elasticsearch-analysis-ik 的安装使用【自定义分词库】
|
10月前
|
安全 Java Linux
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
1879 64
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
1342 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
存储 监控 安全
Elasticsearch 8.X 集群 SSL 证书到期了,怎么更换?
Elasticsearch 8.X 集群 SSL 证书到期了,怎么更换?
|
自然语言处理 负载均衡 安全
保姆级Elasticsearch集群部署指导
保姆级Elasticsearch集群部署指导
1062 0
|
存储 安全 网络协议
云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南
云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南
|
安全 Linux 网络安全
Kibana 最常见的“启动报错”或“无法连接ES集群服务”的故障原因及解决方案汇总
Kibana 最常见的“启动报错”或“无法连接ES集群服务”的故障原因及解决方案汇总
Kibana 最常见的“启动报错”或“无法连接ES集群服务”的故障原因及解决方案汇总