版权声明

本文为Elastic开源社区版权所有,保证独立性和原创性,未获得授权和允许,任何组织和个人不得以任何方式传播或复制或分享,如若转发,请标注原创链接。否则必将追究法律责任。

知识内容输出不易,请尊重他人劳动成果。严禁随意传播、复制和盗用他人成果或文章内容用以商业或盈利目的!

课程资料获取:

关注微信公众号:Elasticsearch之家,回复关键字“课程资料”即可获取。

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、Java版本选择

2.1 ES与JDK兼容性

Oracle/OpenJDK**/AdoptOpenJDK 1.8.0 Oracle/OpenJDK** 9 Oracle/OpenJDK** 10 Oracle/OpenJDK** 11 AdoptOpenJDK 11 Oracle/OpenJDK** 12 Oracle/OpenJDK**/AdoptOpenJDK 13 Oracle/OpenJDK**/AdoptOpenJDK 14 Oracle/OpenJDK**/AdoptOpenJDK 15 Oracle/OpenJDK**/AdoptOpenJDK/Temurin 16 Oracle/OpenJDK**/Temurin 17 Oracle/OpenJDK**/Temurin 18 IBM J9 (any version)
Elasticsearch 5.0.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
Elasticsearch 5.2.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
Elasticsearch 5.4.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
Elasticsearch 5.6.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
Elasticsearch 6.1.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
Elasticsearch 6.3.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
Elasticsearch 6.5.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
Elasticsearch 6.7.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
Elasticsearch 7.1.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
Elasticsearch 7.3.x X X X X X X X X X X
Elasticsearch 7.4.x X X X X X X X X X
Elasticsearch 7.5.x X X X X X X X X X
Elasticsearch 7.6.x X X X X X X X X X
Elasticsearch 7.7.x X X X X X X X X X
Elasticsearch 7.8.x X X X X X X X X X
Elasticsearch 7.9.x X X X X X X X X
Elasticsearch 7.10.x X X X X X X X X
Elasticsearch 7.11.x X X X X X X X X X
Elasticsearch 7.12.x X X X X X X X X
Elasticsearch 7.13.x X X X X X X X X X
Elasticsearch 7.14.x X X X X X X X X X
Elasticsearch 7.15.x X X X X X X X X
Elasticsearch 7.16.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
Elasticsearch 8.1.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
Elasticsearch 8.3.x X X X X X X X X X X X

Java 9、Java 10、Java 12 ** Java 13 ************。**********。**** JVM ****,**** Oracle ********,******:http://www.oracle.com/technetwork/java/eol-135779.html

Elastic ******** OpenJDK ************:

  1. ** IcedTea ********;
  2. ****************“**************”**************** TCK **********;
  3. Azul Zulu ** Elasticsearch 6.6.0 ******。

****:

  • ****ES 8.0 ****,JDK****************,** JDK 17
  • ****ES 8.1 **************,**** JDK 17、JDK 18

JDK******:https://www.elastic.co/cn/support/matrix#matrix_jvm

**************:https://www.elastic.co/cn/support/matrix

**********:https://www.elastic.co/cn/support/matrix#matrix_compatibility

2.2 Java****

2.3 **********Java**********

****************,**********jdk****,**********

****,**7.x****,**********ES******jdk,****************jdk************ES。

3、****Elastic********

3.1 **************

********:Win、Mac ****** Elasticsearch********(************)************

4、**********ES

4.1 SDK********

4.2 Elasticsearch********

******** ****
bin **************,********elasticsearch****、********、**********。
config ************,**elasticsearch****、********、jvm******。
lib elasticsearch********java**。
data ******************,********、****、****、**************,********************。
logs **********************,****************。
modules **********Elasticsearch****,**Cluster、Discovery、Indices**。
plugins ********************。
jdk/jdk.app 7.x ********,****** java ****,8.x******** jdk 17

5、********

  • cluster.name:********,************************************。********** elasticsearch,************************************。************************************。****,************************
  • node.name:********,**********,************。,**************************
  • network.host: **************************************ip****,****127.0.0.1** [::1]。
  • http.port:********************,**** 9200
  • transport.port:**************,**** 9300

6、******************

  • ********:******************(******************),************************,******************************,****ES****************discovery.type=single-node。********************************************。
  • ********:********************************************,************,**************ES************************(bootstrap checks),********************************************************,************************。**************JVM****、******、********、**********、****************************,******************************,ES**************,**************************************************。****************,********************************************************ES******************************************************************************。**********************************,************************************,********************************,ES**************************************,********************************************(Error)。********************************,****************************。

7、****************(****Security****)

****

  • ES 8 ********Security,********************,************Elastic**********************,************,**************************,********************,**Security********************,************,********。************。

  • ********************Security**********************,****************,**************************************,************,********************,******************************,************。**********ES**********,**************************************ES,************************。**********,**************************ES********。**ES**************,************************。******************************************(**************)**********(****Security************)******。

  • ****************:********************ES************、**********************,**********:ES******************ES**************************************,************,****************7********。**

7.1 ****ES********

ES**********root************,****************root,**********************(************root**********,windows******power shell******)。****************root****,**************

useradd elastic
passwd elastic
chown -R elastic:elastic {{espath}}

7.2 **********

7.2.1 ********

Windows MacOS Linux
****** # cd elasticsearch\bin # .\elasticsearch -d # cd elasticsearch/bin # ./elasticsearch -d # cd elasticsearch/bin # ./elasticsearch -d
******** **bin**********elasticsearch.bat **bin**********elasticsearch
Shell start \bin\elasticsearch.bat open bin/elasticsearch

7.2.2 ********

ES** 7.x ******,********** started ******************,** 7.x ********,

ES 8.x **********************,**********************。

image

******** 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

7.2.3 ************

** ES 8.x********,elasticsearch-setup-passwords****************************,********7.x************************,8.x******************************。

****:****(2.5.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

********user1********

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

********************

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

7.3 ************

********

**7.x************************ES****:http://localhost:9200/

****** 8.x ************************:
image-1666861613492

********

************,**** Elastic 8 ********** SSL,**************true****false****

image-1666861626390

********

****SSL******************,**********************************,******************https************:

https://localhost:9200/,******************************************************,**:

image-1666861702374

********:

**chrome********,************thisisunsafe**11******(************************,************************,**************************************,**********************),********************。

****************:

************,********2.5.4************,**************,************ES****,****,******ES************。

image-1666861657802

7.4 ********Security**********

******************

**********,******************,********************************,**********************,********************(2.5.3 ****************4****Token),**************

bin/elasticsearch --enrollment-token {token} 

//**************{token},************ ****:
bin/elasticsearch --enrollment-token eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjMuMTAwOjkyMDEiXSwiZmdyIjoiMWJkMTE0OWMzMTJjYzc5MGU1ZWU1YTgzZjlhZWRjMmU2MDkyN2Y2MWVkZDA0ZWU0YTAxZTk2MTVlYzJkODhlYiIsImtleSI6Ilo3elc0bjhCVk1ESEdsMmFzdDVNOkZTWVhrMHV3UjgyUzNlTFFERFlkdncifQ==

****************ES 8.x ************:

image-1666861846429

7.5 ****Kibana

********Kibana****,******************

image-1666861857502

************************Kibana**********,**************** 7.2.2 ******************,********。

8、****************(****Security****)

********************Security********,****Elasticsearch**********,******************************************。********************************,**************************************,********。

8.1 ****Security

********************,ES 8 **********Security**,**********************************Security。**** Config ****,**** elasticsearch.yml ****,******************,************:

xpack.security.enabled: false

****,********************:

image-1666861870811

8.2 ************

ES**********root************,****************root,**************ES**********,************ 7.1 ********。****************root****,**************。

8.2.1 ********:** 7.2.1

Windows MacOS Linux
****** # cd elasticsearch\bin # .\elasticsearch -d # cd elasticsearch/bin # ./elasticsearch -d # cd elasticsearch/bin # ./elasticsearch -d
******** **bin**********elasticsearch.bat **bin**********elasticsearch
Shell start \bin\elasticsearch.bat open bin/elasticsearch

8.2.2 ********

************,****************elected-as-master,********************,****http://127.0.0.1:9200****http://localhost:9200****,************************http://,************https

************,******************。

image-1666861888226

8.3 ************

********,**********Linux、docker**K8S************,************************************,**********************************,************

**************************************,**************************,******************** Discover **********,************************************************,****************、************。********************。

8.3.1 ****************

******** ****
LinuxMacOS ****1:./elasticsearch -E path.data=data1 -E path.logs=log1 -E node.name=node1 -E cluster.name=elastic.org.cn****2:./elasticsearch -E path.data=data2 -E path.logs=log2 -E node.name=node2 -E cluster.name=elastic.org.cn****N:… …
Windows ****1:.\elasticsearch.bat -E path.data=data1 -E path.logs=log1 -E node.name=node1 -E cluster.name=elastic.org.cn****2:.\elasticsearch.bat -E path.data=data2 -E path.logs=log2 -E node.name=node1 -E cluster.name=elastic.org.cn****N:… …

8.3.2 ****************

******** ****
MacOS open /node1/bin/elasticsearch open /node2/bin/elasticsearch open /node3/bin/elasticsearch
windows start D:\node1\bin\elasticsearch.bat start D:\node2\bin\elasticsearch.bat start D:\node3\bin\elasticsearch.bat

8.4 **** Kibana

******:****************3********,******************SDK****

image-1666861915114

**************:************ http://localhost:9200/_cat/nodes****,************************

****:********,********

****:****************,**************************SDK****,********MB。

9、************************Q

******** ******** ******** ********
Elasticsearch Head image **********************************、********************** Chrome****
Github****
********
Elasticsearch Tools image-1677761829554 ********************************** Chrome****
Elasticvue image-1677761848792 ****************** Chrome****Edge****

10、****************(**********,************!)

  1. ******,******:****************************Linux**************,****Linux********ES****************,******************,******************************。**********,**************************,**********************。************************,********************。
  2. **************:**************************,**************************ES,********************,****、****、**************************。****************************,******************,**********。**********************“****”****,********************,********************。********************,****************************,****************,**************,****************************。****************“**20%**************80%****”******,************20%,********100********,******20********************,****************80************************。
  3. ****