close

引用網址:http://www.jianshu.com/p/28063c8c4057

 

自己想学习Elasticsearch,但是又不懂Linux,按照同事给的Linux安装教程,也是搞不明白,于是想先在Windows上安装一下入门。可是百度的大部分都是ES 1.x,2.x版本的教程,5.x的教程也是搞不明白,很多步骤就直接跳过了。经过一步一步的尝试,最终还是成功了。记录下,希望对大家有所帮助。

一、JAVA环境配置

ElasticSearch是基于lucence开发的,也就是运行需要java jdk()支持。所以要先安装JAVA环境。
由于ElasticSearch 5.x 依赖于JDK 1.8的,所以现在我们下载JDK 1.8或者更高版本。
下载JDK1.8,下载完成后安装。
接下来就是环境变量配置。

1、右键 【我的电脑】→【属性】→【高级系统设置】→【环境变量】如图
 
2、在【系统变量】里【新建】,变量名为JAVA_HOME,变量值为JDK的安装路径。然后确定。
 

验证是否成功,打开cmd,输入echo %JAVA_HOME%显示你设置的JDK的路径即为正确。

3、在【系统变量】选项区域中查看PATH变量,如果不存在,则新建变量 PATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的最后位置追加【%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;】单击确定按钮。
 
4、在【系统变量】选项区域中查看CLASSPATH 变量,如果不存在,则新建变量CLASSPATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的最后位置追加【.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;】。
 
5、打开cmd,输入javac命令测试是否成功,出现下图则ok

注:配置完成之后需要在新的cmd窗口输入javac。

 

二、ElasticSearch配置

1、下载ElasticSearch

从官网下载ElasticSearch https://www.elastic.co/downloads/elasticsearch,下载zip。

这里我们下载最新版 ElasticSearch5.3

2、解压到指定的目录,这里我解压到了C盘根目录。
3、进入到C:\elasticsearch-5.3.0\bin执行elasticsearch.bat
4、本机就启动了一个ElasticSearch节点,启动后会显示如图所示
 
5、打开浏览器里测试一下
 

OK大功告成~~

三、安装ElasticSearch-head插件

网上很多教程都说用plugin命令去装es-head插件,跟开头说的一样都是1.x,2.x版本,我也下载看了,里面是有plugin的文件。可是我们是要用5.x的版本,es包里并没有提供plugin文件。

elasticsearch5不可以直接通过plugin -install mobz/elasticsearch-head安装,并且head需要在node环境下运行

1、安装node环境

网址:https://nodejs.org/en/download/ 下载Windows版msi的

安装完后打开cmd查看版本node -v

 
2、安装grunt
  • grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.x里的head插件就是通过grunt启动的。因此需要安装grunt.
  • 注意:路径切到nodejs安装目录下,[我安装在C:\Program Files\nodejs]。
  • npm install -g grunt-cli
  • -g代表全局安装。安装路径为C:\Users\{yourname}\AppData\Roaming\npm,并且自动加入PATH变量。
  • 查看版本号grunt -version
 
4、下载head插件

https://github.com/mobz/elasticsearch-head

5、配置head

由于head的代码还是2.6版本的,直接执行有很多限制,比如无法跨机器访问。因此需要用户修改两个地方:

① c:/elasticsearch-head-master/Gruntfile.js,增加hostname属性,设置为*,如图

 

②修改连接地址:C:\elasticsearch-head-master/_site/app.js,将表红线地址改为es服务器地址。

 

修改一下es使用的参数。编辑C:/elasticsearch-5.3.0/config/config/elasticsearch.yml:

cluster.name: es-5.2-test   #换个集群的名字,免得跟别人的集群混在一起

node.name: node-es-101     #换个节点名字

network.host: 0.0.0.0       #修改一下ES的监听地址,这样别的机器也可以访问
http.port: 9200             #端口号,默认就好


# 增加新的参数,这样head插件可以访问es
http.cors.enabled: true 
http.cors.allow-origin: "*"

@注意,设置参数的时候:后面要有空格!
6、安装head

其实下载elasticsearch-head的时候,github的链接上有介绍安装方式,如下:

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
open http://localhost:9100/

进入到我们下载好的elasticsearch-head包里,然后执行npm install

 

安装完成之后npm run startgrunt server

 
 

浏览器访问 http://localhost:9100/

 

到此,Elasticsearch和ElasticSearch-head已经装好了。

四、安装分词

以下是安装的官方插件,个别插件需要配置才能使用,可根据需要删除 plugins 目录无关的插件,重启 elasticsearch 生效。

bin/elasticsearch-plugin install discovery-multicast
bin/elasticsearch-plugin install analysis-icu
bin/elasticsearch-plugin install analysis-kuromoji
bin/elasticsearch-plugin install analysis-phonetic
bin/elasticsearch-plugin install analysis-smartcn
bin/elasticsearch-plugin install analysis-stempel
bin/elasticsearch-plugin install analysis-ukrainian
bin/elasticsearch-plugin install discovery-file
bin/elasticsearch-plugin install ingest-attachment
bin/elasticsearch-plugin install ingest-geoip
bin/elasticsearch-plugin install ingest-user-agent
bin/elasticsearch-plugin install mapper-attachments
bin/elasticsearch-plugin install mapper-size
bin/elasticsearch-plugin install mapper-murmur3
bin/elasticsearch-plugin install lang-javascript
bin/elasticsearch-plugin install lang-python
bin/elasticsearch-plugin install repository-hdfs
bin/elasticsearch-plugin install repository-s3
bin/elasticsearch-plugin install repository-azure
bin/elasticsearch-plugin install repository-gcs
bin/elasticsearch-plugin install store-smb
bin/elasticsearch-plugin install discovery-ec2
bin/elasticsearch-plugin install discovery-azure-classic
bin/elasticsearch-plugin install discovery-gce

 

x-pack 安装注意事项

x-pack 是什么,有什么用?自行访问官网了解即可。

x-pack的安装过程很简单,如下几步即可:

1、elsaticsearch 安装 x-pack

 
1
 
es_home/bin/elasticsearch-plugin install x-pack

2、kibana 安装 x-pack

 
1
 
kibana_home/bin/kibana-plugin install x-pack

就这么两步,耐心等待安装完重启即可。这篇文章重点讲的不是安装过程,而是安装之后带来的几个坑。

未安装前,使用elasticsearch-head、kibana、客户端连接时都不要用户名/密码验证。而安装之后,统统需要用户名/密码验证才能访问。

默认用户名/密码

x-pack 安装完后,提供了几个默认的用户名/密码可以使用,如下:

 
1
2
3
 
elastic/changeme
kibana/changeme
logstash_system/changeme

elastic 用户拥有全部的权限,显然需要更改掉默认密码,通过如下的接口可以更改密码,示例:

 
1
2
3
 
curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/{username}/_password' -H "Content-Type: application/json" -d '{
"password" : "newpassword"
}'

{username} 占位符代表需要修改密码的用户。

head 插件配置

之前的访问都是通过http://127.0.0.1:9100即可,安装x-pack之后,首先需要更改elasticsearch.yml的配置:

 
1
2
3
 
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,Content-Type

前两个配置没什么注意的,很多人都知道。关键是第三个,官方描述上面也只是说了添加http.cors.allow-headers: Authorization即可,其实不然,访问会出现如下的问题:

所以这里应该如下配置才能保证正常访问:

 
1
 
http.cors.allow-headers: Authorization,Content-Type

新的访问形式如:http://127.0.0.1:9100/?auth_user=elastic&auth_password=changeme

客户端连接

Spring Data Elasticsearch为例,参考我的这篇文章《Spring Data Elasticsearch 和 x-pack 用户名/密码验证连接》了解即可。

arrow
arrow
    文章標籤
    elk elasticsearch
    全站熱搜
    創作者介紹
    創作者 龍之家族 的頭像
    龍之家族

    龍之家族

    龍之家族 發表在 痞客邦 留言(0) 人氣()