首页 > 其他分享 >ES 8.0 服务安装

ES 8.0 服务安装

时间:2024-01-26 20:56:01浏览次数:54  
标签:8.0 Java elastic -- Elasticsearch 版本 安装 ES

 

文章目录

 

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版本的兼容性列表

 Oracle/OpenJDK**/AdoptOpenJDK 1.8.0Oracle/OpenJDK** 9Oracle/OpenJDK** 10Oracle/OpenJDK** 11AdoptOpenJDK 11Oracle/OpenJDK** 12Oracle/OpenJDK**/AdoptOpenJDK 13Oracle/OpenJDK**/AdoptOpenJDK 14Oracle/OpenJDK**/AdoptOpenJDK 15Oracle/OpenJDK**/AdoptOpenJDK/Temurin 16Oracle/OpenJDK**/Temurin 17Oracle/OpenJDK**/Temurin 18Oracle/OpenJDK**/Temurin 19IBM J9 (any version)
Elasticsearch 5.0.x X X X X X X X X X X X X X
Elasticsearch 5.1.x X X X X X X X X X X X X X
Elasticsearch 5.2.x X X X X X X X X X X X X X
Elasticsearch 5.3.x X X X X X X X X X X X X X
Elasticsearch 5.4.x X X X X X X X X X X X X X
Elasticsearch 5.5.x X X X X X X X X X X X X X
Elasticsearch 5.6.x X X X X X X X X X X X X X
Elasticsearch 6.0.x X X X X X X X X X X X X X
Elasticsearch 6.1.x X X X X X X X X X X X X X
Elasticsearch 6.2.x X X X X X X X X X X X X
Elasticsearch 6.3.x X X X X X X X X X X X X
Elasticsearch 6.4.x X X X X X X X X X X X X
Elasticsearch 6.5.x X X X X X X X X X X X X
Elasticsearch 6.6.x X X X X X X X X X X X X
Elasticsearch 6.7.x X X X X X X X X X X X
Elasticsearch 6.8.x X X X X
Elasticsearch 7.0.x X X X X X X X X X X X
Elasticsearch 7.1.x X X X X X X X X X X X
Elasticsearch 7.2.x X X X X X X X X X X X
Elasticsearch 7.3.x X X X X X X X X X X X
Elasticsearch 7.4.x X X X X X X X X X X
Elasticsearch 7.5.x X X X X X X X X X X
Elasticsearch 7.6.x X X X X X X X X X X
Elasticsearch 7.7.x X X X X X X X X X X
Elasticsearch 7.8.x X X X X X X X X X X
Elasticsearch 7.9.x X X X X X X X X X
Elasticsearch 7.10.x X X X X X X X X X
Elasticsearch 7.11.x X X X X X X X X X X
Elasticsearch 7.12.x X X X X X X X X X
Elasticsearch 7.13.x X X X X X X X X X X
Elasticsearch 7.14.x X X X X X X X X X X
Elasticsearch 7.15.x X X X X X X X X X
Elasticsearch 7.16.x X X X X X X X X X X
Elasticsearch 7.17.x X X X X X X X X
Elasticsearch 8.0.x X X X X X X X X X X X X X
Elasticsearch 8.1.x X X X X X X X X X X X X
Elasticsearch 8.2.x X X X X X X X X X X X X
Elasticsearch 8.3.x X X X X X X X X X X X X
Elasticsearch 8.4.x X X X X X X X X X X X X
Elasticsearch 8.5.x X X X X X X X X X X X

结论:

  • 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/
● ARM JDK:https://www.azul.com/downloads/?version=java-8-lts&os=macos&package=jdk
● 程序员大礼包:https://www.programmer-box.com/?ref=jdk_1.8

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

此处略过安装过程,如果无安装jdk基础,可自行百度
另外,从7.x开始,以后的版本ES均自带jdk,所以可即使不安装jdk也可正常运行ES。

3、下载和安装ES

3.1 SDK下载地址

  • 官方下载: https://www.elastic.co/cn/downloads/past-releases#elasticsearch
  • 开源社区下载站:http://www.elastic.org.cn/download

3.2 Elasticsearch目录结构

在这里插入图片描述

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 启动命令

![在这里插入图片描述](/i/ll/?i=6d8ce50732344d22b571e6ac22392791.png?,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWxhc3RpY-W8gOa6kOekvuWMug==,size_20,color_FFFFFF,t_70,g_se,x_16

4.3 启动日志

ES在 7.x 版本时,控制台输出 started 时代表服务启动成功,和 7.x 版本不同,
ES 8.x 启动之后会输出以下信息,此时服务已经启动成功了。
在这里插入图片描述
首次启动 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 的版本访问会看到如下页面:
在这里插入图片描述

4.5.2 原因解释

这是正常现象,因为 Elastic 8 默认开启了 SSL,将默认配置项由true改为false即可
在这里插入图片描述

4.5.3 推荐做法

关闭SSL虽然可以访问服务了,但这本质上是在规避问题而非解决问题,更推荐的做法是使用https协议进行访问:
https://localhost:9200/,此时如果你的浏览器版本是比较新的版本会出现以下弹窗提示,即:
在这里插入图片描述

4.5.4 解决方案

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

4.5.5 输入账号密码验证

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

总结

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

推荐阅读

  • ES 8.x 集群环境搭建

你的三连是对作者极大的支持,感谢您的关注!

标签:8.0,Java,elastic,--,Elasticsearch,版本,安装,ES
From: https://www.cnblogs.com/-hz01/p/17990690

相关文章

  • php session反序列化
    关于SessionSession,在汉语中表示通话、会话、对话(期)、话路[对谈时间]的意思,其本来的含义一个终端用户与交互系统进行通信的时间(间隔),通常是指从注册(进入系统)到注销(退出系统)之间所经过的时间。比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个Session......
  • Gradle下载安装与配置过程
    下载Gradle:镜像链接https://mirrors.cloud.tencent.com/gradle/,找到所需版本,这里下载gradle-8.2-all.zip,如不知道该下载哪个版本,请往下翻查看注部分。配置环境变量:解压到D盘,我这里解压目录为D:\Android\Gradle\gradle-8.2。添加该目录到系统环境变量,新建变量名为GR......
  • 在springboot中controller控制器的crud语句@RequestBody遗落的报错
    在进行java练习的过程中,对一个单链表进行增删改查时发现了如下错误:对编译器的控制台进行检查之后,发现了报错语句如下:2024-01-2619:43:52.551ERROR18544---[p-nio-80-exec-5]o.a.c.c.C.[.[.[/].[dispatcherServlet]:Servlet.service()forservlet[dispatcherSe......
  • Pytest 源码解读 [1] - [pluggy] 插件框架介绍
    Pluggy(https://github.com/pytest-dev/pluggy)Pytest的核心实际的基于 Pluggy 这个pluginframework的,实际上pytest本身就是由一个一个插件组成的本来pluggy的代码是在pytest的repo里,后来迁移了出来,作为一个独立的项目。Pluggy作为一个独立的pluginframework......
  • esp8266 no matching function for call to 'Ticker::Ticker()'
    这个错误表明在尝试创建一个Ticker对象时,编译器找不到适合当前调用的构造函数。Ticker可能是Arduino框架中的一个类,用于处理定时事件。解决方法:确认你已经包含了正确的头文件。例如,对于ArduinoESP8266核心库,你需要包含Ticker.h#include<Ticker.h> 确认......
  • iMessage群发软件开发源代码段分享
    随着科技的飞速发展,人们对于信息传递的需求越来越高,而iMessage作为苹果公司推出的即时通讯工具,因其便捷、安全和高效而备受用户喜爱。然而,对于一些开发者和企业来说,如何实现iMessage群发功能成为了他们面临的一大难题,为此,本文将分享一些iMessage群发软件开发的源代码段,帮助大家快速......
  • Codeforces Round 912 (Div
    AHalloumiBoxes题目大意给定一个数组A,我们可以对数组惊醒多次操作,操作如下:我们可以将数组中的某一段倒置,但是长度不能超过K,例如:反转子数组意味着选择两个索引i和j(其中1<=i<=j<=n)并将数组\[a_1,a_2,…,a_n\]改为\[a_1,a_2,…,a_{i−1},a_{j},a_{j−1},…......
  • Codeforces Round 913 (Div
    ARook题目大意给一个国际象棋棋盘,有t次询问,每次询问给定一个棋子坐标s例如d4.问:输出这个棋子上下左右四个方向的坐标解题思路两个for循环暴力求解代码#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'constintINF=0x3f3f3f3f;voidso......
  • Codeforces Round 914 (Div
    AForked!题目大意给定王后和国王的位置,马可以先朝一个方向走a步,再朝另一个方向走b步问:马有多少个位置可以同时走到皇后和国王解题思路就无脑遍历一下马能走到国王和皇后的位置然后再判断下有没有相同的位置代码#include<bits/stdc++.h>#defineintlonglong......
  • Codeforces Round 916 (Div
    AProblemsolvingLog题目描述给一个整数n,字符串s,字符串中s[i]表示第i分钟解决第s[i]题.问题A需要1分钟解决,问题B需要2分钟解决,以此类推.问:可以解决多少题?解题思路遍历字符串,统计问题A--Z用了多少时间解决.最后在遍历数组,判断问题A--Z是否满足解决时间.代......