热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Elasticsearch系列(三)Elasticsearch5.5.1与插件安装

一、下载源码Elasticsearch官网地址:https:www.elastic.cocn,网上的教程用得比较多是2.x版本的,直到2016-12推出了5.x版本,

一、下载源码


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";




# 将localhost修改为ES的IP地址



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这个地址




注意:

① 此时elasticsearch-head为前台启动,如果终端退出,那么elasticsearch-head服务也会随之关闭。

② 在非elasticsearch-head目录中启动server会失败!因为grunt需要读取目录下的Gruntfile.js。



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.(Node.java:413) ~[elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.node.Node.(Node.java:244) ~[elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.bootstrap.Bootstrap$5.(Bootstrap.java:232) ~[elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:232) ~[elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:351) [elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123) [elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114) [elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67) [elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122) [elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.cli.Command.main(Command.java:88) [elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) [elasticsearch-5.5.1.jar:5.5.1]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) [elasticsearch-5.5.1.jar:5.5.1]
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.(FileInputStream.java:138) ~[?:1.8.0_131]at java.io.FileInputStream.(FileInputStream.java:93) ~[?:1.8.0_131]at org.elasticsearch.xpack.ml.utils.NamedPipeHelper$PrivilegedInputPipeOpener.run(NamedPipeHelper.java:297) ~[?:?]at org.elasticsearch.xpack.ml.utils.NamedPipeHelper$PrivilegedInputPipeOpener.run(NamedPipeHelper.java:286) ~[?:?]at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_131]at org.elasticsearch.xpack.ml.utils.NamedPipeHelper.openNamedPipeInputStream(NamedPipeHelper.java:139) ~[?:?]at org.elasticsearch.xpack.ml.utils.NamedPipeHelper.openNamedPipeInputStream(NamedPipeHelper.java:106) ~[?:?]at org.elasticsearch.xpack.ml.job.process.ProcessPipes.connectStreams(ProcessPipes.java:140) ~[?:?]at org.elasticsearch.xpack.ml.job.process.NativeController.(NativeController.java:67) ~[?:?]at org.elasticsearch.xpack.ml.job.process.NativeControllerHolder.getNativeController(NativeControllerHolder.java:50) ~[?:?]at org.elasticsearch.xpack.ml.MachineLearning.createComponents(MachineLearning.java:279) ~[?:?]... 21 more


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地址。


推荐阅读
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 大家好,我是李白。本文将分享一个从零开始的全栈项目,涵盖了设计、前端、后端和服务端的全面学习过程。通过这个项目,我希望能够帮助初学者更好地理解和掌握全栈开发的技术栈。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • 基于Node.js、EJSExcel、Express与Vue.js构建Excel转JSON工具:首阶段——Vue.js项目初始化及开发环境配置
    在近期的一个H5游戏开发项目中,需要将Excel数据转换为JSON格式。经过调研,市面上缺乏合适的工具满足需求。因此,决定利用Node.js、EJSExcel、Express和Vue.js自行构建这一工具。本文主要介绍项目的第一阶段,即Vue.js项目的初始化及开发环境的配置过程,详细阐述了如何搭建高效的前端开发环境,确保后续功能开发的顺利进行。 ... [详细]
  • 如何在MAC上配置Python和Appium开发环境
    一、需要安装的软件二、下载安装步骤2.1、安装jdk2.1.1JDK下载地址:https:www.oracle.comjavatechnologiesjavase-download ... [详细]
  • Logstash安装配置
    阅读此文请先阅读上文:[大数据]-Elasticsearch5.3.1IK分词,同义词联想搜索设置,前面介绍了ES,Kiba ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • ELK stack 学习记录
    ELK日志分析平台学习记录首先ELK主要指elasticsearch、logstash和kibana,三个开源软件组合而成的一套日志平台解决方案。可以将平时收集到的日志,通过前台展 ... [详细]
  • 在Eclipse中提升开发效率,推荐使用Google V8插件以增强Node.js的调试体验。安装方法有两种:一是通过Eclipse Marketplace搜索并安装;二是通过“Help”菜单中的“Install New Software”,在名称栏输入“googleV8”。此插件能够显著改善调试过程中的性能和响应速度,提高开发者的生产力。 ... [详细]
author-avatar
沉醉在温柔箱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有