一、下载源码
Elasticsearch官网地址:https://www.elastic.co/cn/ ,网上的教程用得比较多是2.x版本的,直到 2016-12 推出了5.x 版本 ,将版本号调为 5.X ,这是为了和Kibana、Beats、Logstash等产品版本号进行统一,Elasticsearch5.x加入了一些新特性,
具体可参考这:http://www.cnblogs.com/zlslch/p/6619089.html
官网首页如下:
点击"Dowloads"选择Elasticsearch
选择发行版,默认当前版本为5.5.1然后进行下载
二、进行安装
下载下来之后,进行解压
进入bin目录下
执行elasticsearch.bat进行启动
启动成功,访问地址为:127.0.0.1:9200,输出信息如下
然后访问这个地址查看版本等一些信息,这不是图形化的界面,操作起来不是很方便,所以希望能有一个可视化的环境来操作它,可以通过安装Elasticsearch Head这个插件来进行管理。
三、插件安装
名词解释
在刚接触Elasticsearch的时候,会有很多名词不能理解,或者不知道其中的关系。其中很多是为不同版本的Elasticsearch而存在的。
Marvel
Marvel插件:在簇中从每个节点汇集数据。这个插件必须每个节点都得安装。
Marvel是Elasticsearch的管理和监控工具,在开发环境下免费使用。它包含了Sense。
Sense
交互式控制台,使用户方便的通过浏览器直接与Elasticsearch进行交互。
Head
在学习Elasticsearch的过程中,必不可少需要通过一些工具查看es的运行状态以及数据。如果都是通过rest请求,未免太过麻烦,而且也不够人性化。此时,Head插件可以实现基本信息的查看,rest请求的模拟,数据的检索等等。
X-pack
x-pack是elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,也是官方推荐的。
Kibana
kibana是一个与elasticsearch一起工作的开源的分析和可视化的平台。使用kibana可以查询、查看并与存储在elasticsearch索引的数据进行交互操作。使用kibana能执行高级的数据分析,并能以图表、表格和地图的形式查看数据。
kibana使得理解大容量的数据变得非常容易。它非常简单,基于浏览器的接口使我们能够快速的创建和分享显示elasticsearch查询结果实时变化的仪表盘。
在Elasticsearch 5版本之前,一般都是通过安装Kibana,而后将Marvel、Hand等各种功能插件添加到Kibana上使用。在Elasticsearch 5版本之后,一般情况下只需要安装一个官方推荐的X-pack扩展包即可。
1)Elasticsearch Head
Elasticsearch Head是集群管理、数据可视化、增删改查、查询语句可视化工具,在最新的ES5中安装方式和ES2以上的版本有很大的不同,在ES2中可以直接在bin目录下执行plugin install xxxx 来进行安装,但是在ES5中这种安装方式变了,要想在ES5中安装Elasticsearch Head必须要安装NodeJs,然后通过NodeJS来启动Head。具体安装步骤如下:
首页去github下载源码:https://github.com/mobz/elasticsearch-head
下载下来之后,要安装NodeJS,安装方式可参考我这篇文章: http://blog.csdn.net/u011781521/article/details/53519225
安装NodeJS之后,使用npm安装grunt
npm install -g grunt -cli
然后在目录下执行
cnpm install
安装好之后,还要修改Elasticsearch配置文件,编辑elasticsearch-5.5.1/config/elasticsearch.yml,加入以下内容:
编辑elasticsearch-head-master文件下的Gruntfile.js,修改服务器监听地址,增加hostname属性,将其值设置为*。
以下两种配置都是OK的
# Type1
connect: {hostname: '*',server: {options: {port: 9100,base: '.',keepalive: true}}
}
# Type 2
connect: {server: {options: {hostname: '*',port: 9100,base: '.',keepalive: true}}
}
编辑elasticsearch-head-master/_site/app.js,修改head连接es的地址,将localhost修改为es的IP地址
# 原配置
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://YOUR-ES-IP:9200";
注意:如果ES是在本地,就不要修改,默认就是localhost
在启动elasticsearch-head之前要先启动elasticsearch,在elasticsearch-head-master/目录下,运行启动命令:
grunt server
然后访问:127.0.0.1:9100这个地址
2)安装Kiabna
Kibana是一个为 ElasticSearch 提供的数据分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。
Kiabna的介绍可查考官方的说明:https://www.elastic.co/cn/products/kibana
下载地址为:https://www.elastic.co/cn/downloads/kibana
下载下来,解压如下
修改config / kibana.yml文件,加入以下内容:
server.port: 5601
server.name: "kibana"
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"
然后执行bin目录下的kibana.bat启动服务
浏览器访问地址:http://127.0.0.1:5601/
出现警告
Unable to fetch mapping. Do you have indices matching the pattern?
不管怎么弄,都是提示上面的错误!!!最后在网上找到中说法是,没有往Elasticsearch中插入数据所引起的:
https://discuss.elastic.co/t/unable-to-fetch-mapping-do-you-have-indices-matching-the-pattern/73791/4
https://www.elastic.co/guide/en/kibana/current/tutorial-define-index.html
https://www.elastic.co/guide/en/kibana/current/tutorial-load-dataset.html
在上面的两个网址中找到了解决方法:
在Sense中执行以下数据就可以了
PUT /logstash-2017.08.13
{"mappings": {"log": {"properties": {"geo": {"properties": {"coordinates": {"type": "geo_point"}}}}}}
}
然后在返回到kibana首页,就会发现不会出现警告了!!!
然后点击"Create"
3)安装Logstash
Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。
官网下载地址为:https://www.elastic.co/downloads/logstash
下载下来之后,解压如下
然后添加配置文件
添加如下内容:
input {log4j {host => "127.0.0.1"port => 8801}
}
output {elasticsearch {hosts => [ "127.0.0.1:9200" ]}
}
然后启动服务
logstash.bat -f first-pipeline.conf
4)安装x-pack
x-pack是elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,虽然x-pack被设计为一个无缝的工作,但是你可以轻松的启用或者关闭一些功能,X-Pack主要是添加身份权限的验证,以及原先需要安装其他各种Marvel、Head等各种功能插件添加到Kibana上使用才能使用的功能。
X-PACK详细介绍可查看:https://www.elastic.co/products/x-pack
安装的两种方式:
1.离线安装
xxx(路径)\bin>.\elasticsearch-plugin.bat install file:/G:\Developer\Elasticsearch5\x-pack-5.5.1.zip (Windows下file:/或者 file:///都行)
2.在线安装
xxx(路径)\bin>.\elasticsearch-plugin.bat install x-pack
注意的是能在线安装的插件和早先版本有所区别,可通过cmd cd至ES 的bin目录下elasticsearch-plugin.bat install -h 命令查看
5.5.1版本可在线安装的插件列表如下:
在线安装如下:
.\elasticsearch-plugin.bat install x-pack
然后在Kibana中也安装x-pack,安装方式如下:
.\kibana-plugin.bat install x-pack
安装好X-PACK之后,启动Elasticsearch就提示:
[2017-08-13T23:28:10,458][DEBUG][o.e.a.ActionModule ] Using REST wrapper from plugin org.elasticsearch.xpack.XPackPlugin
[2017-08-13T23:28:21,144][ERROR][o.e.b.Bootstrap ] Exception
org.elasticsearch.ElasticsearchException: Failed to create native process factories for Machine Learningat org.elasticsearch.xpack.ml.MachineLearning.createComponents(MachineLearning.java:289) ~[?:?]at org.elasticsearch.xpack.XPackPlugin.createComponents(XPackPlugin.java:288) ~[?:?]at org.elasticsearch.node.Node.lambda$new$7(Node.java:411) ~[elasticsearch-5.5.1.jar:5.5.1]at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267) ~[?:1.8.0_131]at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) ~[?:1.8.0_131]at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_131]at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_131]at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_131]at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_131]at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_131]at org.elasticsearch.node.Node.
Caused by: java.io.FileNotFoundException: \\.\pipe\controller_log_4992 (系统找不到指定的文件。)at java.io.FileInputStream.open0(Native Method) ~[?:1.8.0_131]at java.io.FileInputStream.open(FileInputStream.java:195) ~[?:1.8.0_131]at java.io.FileInputStream.
Caused by: java.io.FileNotFoundException: \\.\pipe\controller_log_4992 (系统找不到指定的文件。)在网上找了半天才找到解决方法:
https://discuss.elastic.co/t/unable-to-start-elasticsearch-5-4-0-in-docker/84800
在Elasticsearch/config/elasticsearch.yml加入以下参数:
action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*
xpack.security.enabled: false
xpack.monitoring.enabled: true
xpack.graph.enabled: false
xpack.watcher.enabled: false
xpack.ml.enabled: false
再次启动
成功运行
5)IK分词器和拼音分词器的安装
分词顾名思义,就是把一句话分成一个一个的词。
安装中文分词器IK
https://github.com/medcl/elasticsearch-analysis-ik
执行以下命令:
.\elasticsearch-plugin.bat install https://github.com/medcl/elas
ticsearch-analysis-ik/releases/download/v5.5.1/elasticsearch-analysis-ik-5.5.1.zip
安装拼音分词器pinyin
https://github.com/medcl/elasticsearch-analysis-pinyin
pinyin分词器可以让用户输入拼音,就能查找到相关的关键词。比如在某个商城搜索中,输入shuihu,就能匹配到水壶。这样的体验还是非常好的。
执行以下命令:
.\elasticsearch-plugin.bat install https://github.com/medcl/elas
ticsearch-analysis-pinyin/releases/download/v5.5.1/elasticsearch-analysis-pinyin-5.5.1.zip
6)Elasticsearch SQL查询插件
Elasticsearch-sql 是给予es的提供sql查询服务。你可以很方便的用sql的方式查询es的数据。不必困扰于ES变态的查询表达式,同时提供了超越sql的功能。Github地址: https://github.com/NLPchina/elasticsearch-sql/
5.5.1插件的安装方式如下
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.5.1.0/elasticsearch-sql-5.5.1.0.zip
然后下载客户端https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/es-sql-site-standalone.zip
解压,进入site-server目录
执行以下命令
npm install express --save
node node-server.js
进行安装与启动,然后访问:
http://localhost:8080/index.html
输入一个存在的索引,然后点击Search进行查询。
注意:
右上脚的连接地址,要改成你要连接的那个ES地址。