ES笔记一:周边工具

摘要:
ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。他发布了他的第一个开源项目Compass。后来Shay获得了一份工作,主要是高性能,分布式环境下的内存数据网格。第一个公开版本在2010年2月发布,从此以后,Elasticsearch已经成为了Github上最活跃的项目之一,他拥有超过300名contributors。基于Elasticsearch衍生出了一系列开源软件,统称为ElaticStack。

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。它用Java 编写的,它的内部使用 Lucene做索引与搜索,目的是使全文检索变得简单,设计用于云计算中,能够达到实时搜索,稳定,可靠,使用简单方便(使用JSON进行数据索引,通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API)。

目录

1. 诞生:回忆时光

2.发展历程及ELK

3. 应用场景

4.版本历程

5.最高效工具

1.Kibana

2.head

3.Cerebro

4.ElasticHD

5.中文分词工具

6. elasticsearch-SQL

7.测试工具profile

8.性能分析工具rally

6. 安装

1. 配置介绍

2. 主要配置


1. 诞生:回忆时光

许多年前,一个刚结婚的名叫 Shay Banon 的失业开发者,跟着他的妻子去了伦敦,他的妻子在那里学习厨师。 在寻找一个赚钱的工作的时候,为了给他的妻子做一个食谱搜索引擎,他开始使用 Lucene 的一个早期版本。

直接使用 Lucene 是很难的,因此 Shay 开始做一个抽象层,Java 开发者使用它可以很简单的给他们的程序添加搜索功能。 他发布了他的第一个开源项目 Compass。

后来 Shay 获得了一份工作,主要是高性能,分布式环境下的内存数据网格。这个对于高性能,实时,分布式搜索引擎的需求尤为突出, 他决定重写 Compass,把它变为一个独立的服务并取名 Elasticsearch。

第一个公开版本在2010年2月发布,从此以后,Elasticsearch 已经成为了 Github 上最活跃的项目之一,他拥有超过300名 contributors(目前736名 contributors )。 一家公司已经开始围绕 Elasticsearch 提供商业服务,并开发新的特性,但是,Elasticsearch 将永远开源并对所有人可用。

据说,Shay 的妻子还在等着她的食谱搜索引擎…

2.发展历程及ELK

Elasticsearch 后来作为一家公司(Elastic公司)进行运作,定位为数据搜索和分析平台。在2014年6月获得7000万美元融资,累积融资过亿美元。ES现在可以与Java、Ruby、Python、PHP、Perl、.NET等多种客户端集成。也可与Hadoop、Spark等大数据分析平台进行集成,功能十分强大。基于Elasticsearch衍生出了一系列开源软件,统称为Elatic Stack。

Elasticsearch最早期的最核心的ES
Logstash

可以把Logstash理解成流入、流出ES的传送带。

支持:不同类型的数据或实施数据流经过 Logstash写入ES或者从ES中读出写入文件或对应的实时数据流。

包括:

  • 本地或远程文件;
  • Kafka 实时数据流——核心插件有 logstashinputkafka/logstashoutputkafka;
  • MySQL、Oracle 等关系型数据库——核心插件有 logstashinputjdbc/logstashouputjdbc;
  • Mongo 非关系型数据库——核心插件有 logstashinputmongo/logstashoutputmongo;
  • Redis 数据流;
KibanaKibana是ES大数据的图形化展示工具。集成了DSL命令行查看、数据处理插件、继承了 x-pack(收费)安全管理插件等。
beats

Beats是一个开源的用来构建轻量级数据汇集的平台,可用于将各种类型的数据发送至Elasticsearch与Logstash。

Beats目前有官方支持的多个子产品,如下:

  • Packetbeat:用于监控局域网内服务器之间的网络流量信息;
  • Filebeat:收集服务器上的日志信息——它是用来替代Logstash Forwarder的下一代Logstash收集器,是为了更快速稳定轻量低耗地进行收集工作,它可以很方便地与 Logstash还有直接与Elasticsearch进行对接。
  • Metricbeat:新推出的 可以定期获取外部系统的监控指标信息
  • Winlogbeat:Windows事件日志轻量级工具
  • Auditbeat:审计数据的轻量级工具
  • Heartbeat:用于时间监控的轻量级工具

当然了,它官方产品远不止这些,还有更多

ES笔记一:周边工具第1张

3. 应用场景

  • 站内搜索
  • Nosql数据库
  • 日志分析
  • 数据分析

4.版本历程

当前版本为ES 6.x(最高6.4,使用Lucene7.4),ES大的版本主要以2.x、5.x、6.x系列为主。可以通过http://localhost:9200/?pretty,查看ES集群版本信息。

1. 历史版本更迭:

  1. 2010年2月8日推出了 V0.4.0 的发行版本,2010年2月12日推出 V1.0.0 版本,2016年2月2日推出 V1.7.5版本,此为1.X最终版本,不再更新
  2. 2015年10月28日推出 V2.0.0 版本,2017年7月25日推出 V2.4.6 版本,此为 2.X 最终版本,不再更新。
  3. 2016年10月26日推出 V5.0.0 版本,2018年2月20日推出 V5.6.8 版本,此并不是 5.X 的最终版本,还在更新中……
  4. 2017年11月14日推出 V6.0.0 版本,2018年2月20日推出 V6.2.2 版本。

2. ELK版本:

在Elasticsearch5.X 之前的版本中,Kibana和Logstash 各有自己的一套版本管理体系(如:Kibana4.X 对应 Elasticsearch2.3.X)。为统一规范化版本管理,Elasticsearch 跃过 3.X 大版本、4.X 大版本,直接和 Kibana、Logstash、Feat 升级为相同的 5.X、6.X 乃至以后的 7.X 版本。

3. 版本兼容情况:

★ ES 6.x可以使用在ES 5.x中创建的索引,但不能使用在Elasticsearch 2.x或之前创建的索引
★ ES 5.x可以使用在ES 2.x中创建的索引,但不能使用在1.x或之前创建的索引
★ ES 2.X 不建议再以2.X、1.X或更早的版本进行学习

  • 1.从版本历史可以看出,近7年多的 ELK Stack 得到长足的发展
  • 2.早期版本的一些设计缺陷历史问题、一些开源社区 Bug,在新版本都已经纠正
  • 3.新版本在性能方面也得到较大幅度的提升。

4. 5.X 哪个版本相对稳定?

为何专门强调5.x版本呢?据调查这个系列在生产环境大规模使用(也很多还是2.x),根据一位携程架构师wood于2017年11月29日表示的,生产环境 5.3.2 有大规模部署,稳定性还不错。测试环境也有部署 5.6.4,目前也没发现什么不稳定的问题。

5. 我是新手该从哪个版本开始?

个人建议新手从最新的版本6.x开始学,主要原因是:

★ 由于ELK都是开源的,历史版本发现的问题,GitHub 上的 issue 都已经得到解决
★ 新的大版本往往都做过比较大的改动
★ 社区里有很多文章都太旧了,已结不适用了(研究的价值不大),比如这里分享点

  • ES 5.X新增keyword和text,已经没有string类型
  • ES 6.X不再支持1个index下有多个type,而是变成严格意义的一对一的关系,因此修改_mapping只能新建一个index,更多

缺点也有:最新版本ES插件的支持可能没有那么好、新特性未被实际的生产环境做过最充分验证,其实这些也不是什么问题。

5.最高效工具

学习es掌握最高效工具是非常必要的,下面将分享一些

1.Kibana

推荐理由:除了支持各种数据的可视化之外,最重要的是支持 Dev Tool 进行 RESTFUL API 增删改查操作。比 Postman 工具和 cURL 都要方便

2.head

推荐理由:可实现ES集群状态查看、索引数据查看、ES DSL 实现(增、删、改、查操作),比较实用的地方是 JSON 串的格式化

3.Cerebro

推荐理由:用于实现 ES 集群状态查看(堆内存使用率、CPU使用率、内存使用率、磁盘使用率)

4.ElasticHD

推荐理由:其强势功能包括支持SQL转DSL,不要完全依赖,可以借鉴用

5.中文分词工具

推荐理由:有 IK分词、ANSJ分词、结巴分词,建议使用选用 IK 分词,了解更多

6. elasticsearch-SQL

推荐理由:类SQL查询工具,其支持的 SQL,极大缩小了复杂 DSL 的实现成本

7.测试工具profile

推荐理由:在原来执行的 DSL 的基础上新增 profile参数,如"profile": true,我把它称作“测试工具”。profile API的目的是,将 ES 高层的 ES 请求拉平展开,直观的让你看到请求做了什么,每个细分点花了多少时间。

8.性能分析工具rally

推荐理由:推荐rally。相比传统的发包请求测试工具,rally 更加直观和准确、且指标很丰富

6. 安装

首先下载ES安装包,接下来解压(tar -xvf elasticsearch-6.2.4.tar.gz),启动并指定参数(./elasticsearch -Ecluster.name=my_cluster -Enode.name=my_node1),非常简单,了解更多

访问地址:http://localhost:9200/

注:必须JDK1.8版本

1. 配置介绍

  • elasticsearch.ymlfor configuring Elasticsearch
  • jvm.optionsfor configuring Elasticsearch JVM settings
  • log4j2.propertiesfor configuring Elasticsearch logging

2. 主要配置

免责声明:文章转载自《ES笔记一:周边工具》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt Creator- Beautifier插件代码格式化,使用 Clang Code Modelethtool查看网卡以及修改网卡配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

logstash grok正则调试

logstash 正则调试; nginx 配置; log_format main '$remote_addr [$time_local] "$request" '; logstash: "message" =>"%{IPORHOST:clientip} [%{HTTPDATE:time}] "%{WORD:verb} %{URIPATHPA...

Elasticsearch部署清单---前期准备工作

1.了解ES集群拓扑结构 当我们启动Elasticsearch的实例,就会启动至少一个节点。相同集群名的多个节点的连接组成一个集群, 在默认情况下,集群中的每个节点都可以处理Http请求和集群节点的数据传输。 集群中的所有的节点都知道集群中其他所有的节点,可以将客户端请求转发到适当的节点。 默认情况下,节点同时是主节点和数据节点,这适合小集群(3个节点);...

【ES】Head插件操作ElasticSearch增删改查(转载记录)

ES以RESTFul风格来命名API的, 其API的基本格式如下 http://<ip>:<port>/<索引>/<类型>/<文档id> ES的动作是以http方法来决定的: 常用的http方法: GET/PUT/POST/DELETE 启动ES后,打开 D:ProgramFilesESelast...

记录k8s安装es

apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: elasticsearch-pdb namespace: test spec: selector: matchLabels: app: elasticsearch maxUnavail...

对ElasticSearch主副分片的理解

ES索引中主副分片的分布: 1:当新建一个索引库时,可以预先设置其会被分为N个分片(主分片),同时可以为每个主分片产生N个备份分片(副分片)。 2:N个主分片随机分布在集群的多个节点中;N个副分片也是随机的分布在集群的多个节点中,但是副分片和其主分片不会在一个节点上。 ES索引中主副分片的作用: 1:当在该索引库中新增一个文档时,会通过计算该文档ID的哈希...

Elasticsearch入门和基本使用

1. 什么是Elasticsearch? Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统;Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。用于快速存储,搜索和海量数据分析; 2. Elasticsearch的优点 1)横向可扩展性:只需要增加一台机器,添加一些配置即可; 2)分片机制提供...