目录
好了,今天的内容就到这里了,下期我们来实战ElasticK Stack的架构
ELK Stack简介
ELK stack 是以Elasticsearch(收集)、Logstash(处理)、Kibana(展示)三个开源软件为主的数据处理工具链,在于实时数据检索和分析场合,三个通常是配合使用,而且又先后归于Elastic.co公司名下,故有此简称在5.0版本之后又加入Elastic公司的Beats工具,改名叫Elastic Stack。
ELK Stack优点
处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计; 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应; 集群线性扩展。。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。 而ELK Stack加入Beats中的filebeat之后更加优秀,filebeat是一个轻量级的日志收集处理工具Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
ELK Stack组成
通常情况下的ELK是由Elasticsearch、Logstash和Kibana组成。 ELK之间的合作机制: L(logstash)作为作为信息收集者,主要是用来对日志的搜集、分析、过滤,支持大量的数据获取方式,一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。 E(Elasticsearch)作为数据的保存者,保存来自L(Logstash)收集的系统日志数据,并建立索引,以及提供之后对数据的检索。 K(Kibana)作为展示者,主要是将ES上的数据通过页面可视化的形式展现出来。包括可以通过语句查询、安装插件对指标进行可视化等。
Elasticsearch
Elasticsearch简介
Elasticsearch 来源于作者 Shay Banon 的第一个开源项目 Compass 库,而这个Java 库最初的目的只是为了给 Shay 当时正在学厨师的妻子做一个菜谱的搜索引擎2010 年,Elasticsearch 正式发布。至今已经成为 GitHub 上最流行的 Java 项目,不过 Shay 承诺给妻子的菜谱搜索依然没有面世.
2015 年初,Elasticsearch 公司召开了第一次全球用户大会 Elastic{ON}15。诸多 IT巨头纷纷赞助,参会,演讲。会后,Elasticsearch 公司宣布改名 Elastic,公司官网也变成 Elasticsearch Platform — Find real-time answers at scale | Elastic。这意味着 Elasticsearch 的发展方向,不再限于搜索业务,也就是说,Elastic Stack 等机器数据和 IT 服务领域成为官方更加注意的方向。随后几个月,专注监控报警的 Watcher 发布 beta 版,社区有名的网络抓包工具Packetbeat、多年专注于基于机器学习的异常探测 Prelert 等 ITOA 周边产品纷纷被Elastic 公司收购。
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。
1)2013年初,GitHub抛弃了Solr,采取ElasticSearch 来做PB级的搜索。“GitHub使用ElasticSearch搜索20TB的数据,包括13亿文件和1300亿行代码“
2)维基百科:启动以elasticsearch为基础的核心搜索架构。“SoundCloud使用ElasticSearch为1.8亿用户提供即时而精准的音乐搜索服务”
3)SoundCloud:百度:百度目前广泛使用ElasticSearch作为文本数据分析,采集百度所有服务器上的各类指标
4)数据及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常或业务层面异关·目前覆盖百度内部20多个业务线(包括casio、云分析、文库、直达号、钱包、网盟、预测、风控等),单集群最大100台机器,200个ES节点,每天导入30TB+数据。
Elasticsearch主要特点
•实时分析
•分布式实时文档存储,并将每一个字段都编入索引
•文档导向,所有的对象全是文档
•高可用性,易扩展,支持集群(cluster)、分片和复制(Shards和Replicas)
•接口友好,支持JSON
Elasticsearch核心概念
cluster
代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。
node
代表集群中的一个节点,节点也有一个名称(默认是随机分配的),默认节点会去加入一个名称为“elasticsearch的集群,如果直接启动一堆节点,那么它们会自动组成一个elasticsearch集群,当然一个节点也可以组成一个elasticsearch集群,集群中一个节点会被选举为主节点(master),它将临时管理集群级别的一些变更,例如新建或删除索引、增加或移除节点等。主节点不参与文档级别的变更或搜索,这意味着在流量增长的时候,该主节点不会成为集群的瓶颈。
document&field
一个文档是一个可被索引的基础信息单元,比如:一个docu