知识内容输出不易,请尊重他人劳动成果。严禁随意传播、复制和盗用他人成果或文章内容用以商业或盈利目的!
课程资料获取:
关注微信公众号: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 ************:
- ** IcedTea ********;
- ****************“**************”**************** TCK **********;
- 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****
- ********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、****Elastic********
3.1 **************
********:Win、Mac ****** Elasticsearch********(************)************
-
Zeal(************):
-
Elastic********************:
- Windows:https://t.zsxq.com/bmayvZB
- Mac:https://t.zsxq.com/6UjmqjI
-
Zeal************(********):https://zealdocs.org/
-
-
8.3 **********:
- Elastic********************:https://t.zsxq.com/fYvfeaY
4、**********ES
4.1 SDK********
- ********: https://www.elastic.co/cn/downloads/past-releases#elasticsearch
- **************:http://www.elastic.org.cn/download
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 **********************,**********************。
******** 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 ************************:
********
************,**** Elastic 8 ********** SSL,**************true
****false
****
********
****SSL******************,**********************************,******************https
************:
https://localhost:9200/
,******************************************************,**:
********:
**chrome********,************thisisunsafe
**11******(************************,************************,**************************************,**********************),********************。
****************:
************,********2.5.4************,**************,************ES****,****,******ES************。
7.4 ********Security**********
******************
**********,******************,********************************,**********************,********************(2.5.3 ****************4****Token),**************
bin/elasticsearch --enrollment-token {token}
//**************{token},************ ****:
bin/elasticsearch --enrollment-token eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjMuMTAwOjkyMDEiXSwiZmdyIjoiMWJkMTE0OWMzMTJjYzc5MGU1ZWU1YTgzZjlhZWRjMmU2MDkyN2Y2MWVkZDA0ZWU0YTAxZTk2MTVlYzJkODhlYiIsImtleSI6Ilo3elc0bjhCVk1ESEdsMmFzdDVNOkZTWVhrMHV3UjgyUzNlTFFERFlkdncifQ==
****************ES 8.x ************:
7.5 ****Kibana
********Kibana****,******************
************************Kibana**********,**************** 7.2.2 ******************,********。
8、****************(****Security****)
********************Security
********,****Elasticsearch**********,******************************************。********************************,**************************************,********。
8.1 ****Security
********************,ES 8 **********Security
**,**********************************Security
。**** Config ****,**** elasticsearch.yml ****,******************,************:
xpack.security.enabled: false
****,********************:
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
。
************,******************。
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****
**************:************ http://localhost:9200/_cat/nodes
(****,************************)
****:********,********
****:****************,**************************SDK****,********MB。
9、************************Q
******** | ******** | ******** | ******** |
---|---|---|---|
Elasticsearch Head | **********************************、********************** | Chrome**** Github**** ******** |
|
Elasticsearch Tools | ********************************** | Chrome**** | |
Elasticvue | ****************** | Chrome****Edge**** |
10、****************(**********,************!)
- ******,******:****************************Linux**************,****Linux********ES****************,******************,******************************。**********,**************************,**********************。************************,********************。
- **************:**************************,**************************ES,********************,****、****、**************************。****************************,******************,**********。**********************“****”****,********************,********************。********************,****************************,****************,**************,****************************。****************“**20%**************80%****”******,************20%,********100********,******20********************,****************80************************。
- ****