简介
顾名思义ELK是由Elasticsearch Logstash Kibana三大组件构成的一个基于web页面的日志分析工具。
日志分析是运维工程师解决系统故障,发现问题的主要手段。日志包含多种类型,包括程序日志,系统日志以及安全日志等。通过对日志分析,预发故障的发生,又可以在故障发生时,寻找到蛛丝马迹,快速定位故障点。及时解决。
组件结构
Elasticsearch:是一个开源分布式时实分析搜索引擎,建立在全文搜索引擎库Apache Lucene基础上,同时隐藏了Apache Lucene的复杂性。Elasticsearch将所有的功能打包成一个独立的动画片,索引副本机制,RESTful风格接口,多数据源。自动搜索等特点。
Logstash :是一个完全开源的工具,主要用于日志收集,同时可以对数据处理,并输出给Elasticarch
Kibana:也是一个完全开源的工具,kibana可以为Logstash和Elasticsearch提供图形化的日志分析。Web界面,可以汇总,分析和搜索重要数据日志。
Elasticsearch介绍
Elasticsearch:是基于Lucene的搜索服务器,它稳定、可靠、快速,而且具有比较好的水平扩展能力,为分布式环境设计,在云计算应用很广泛。
Elasticsearch的基础核心概念。
接近实时(NRT):Elasticsearch是一个搜索速度接近实时的搜索平台,响应速度非常的快,从索引一个文档直到能够被搜索到只有一个轻微的延迟(通常是1s)
群集(cluster):群集就是由一个或多个节点组织在一起,在所有的节点上存放用户数据,并一起提供索引和搜索功能。通过选举产生节点,并提供跨节点的联合索引和搜索的功能。每个群集都有一个唯一的表示名称,默认是Elasticsearch,每个节点是基于群集名字加入到其群集中的。一个群集可以只有一台节点,为了具备更好的容错性,通常配置多个节点,在配置群集时,建议配置成群集模式。
节点(node):是指一台单一的服务器,多个节点组织为一个群集,每个节点都存储数据并参与群集的索引和搜索功能。和群集一样,节点也是通过名字来标识的。默认情况下,节点名字是随机的,也可以自定义。
索引(index):类似于关系型数据库中的“库”,当索引一个文档后,就可以使用elasticsearch搜索到该文档,也可以简单地将索引理解为存储数据库的地方,可以方便地进行全文索引。
分片和副本(shards&replicas):elasticsearch将索引分成若干个部分,每个部分称为一个分片,每个分片就是一个功能的独立索引。分片的数量一般在索引创建前指定,且创建索引后不能更改。
Logstash介绍
Logstash由JRuby语言编写,运行在Java虚拟机上,是一款强大的数据库处理工具,可以实施数据传输,格式处理,格式化输出。Logstash具有强大的插件功能,常用于日志处理。Logstash可配置单一的代理端,与其他开源软件结合,以实现不同的功能。
Logstash的理念很简单,它只做三件事:数据输入;数据输出;数据加工(如加工、更改等)。
Logstash的主要组件都有:
Shipper:日志收集者。负责监控本地日志文件的变化,及时收集最新的日志文件内容。
Indexer:日志存储者。负责接收日志并写入到本地文件。
Broker:日志Hub。负责连接多个Shipper和多个Indexer。
Search and Storage:允许对事件进行搜索和存储。
Web Interface:基于Web的展示界面。
Kibana介绍
Kibana是一个针对Elasticsearch的开源分析及可视化平台,主要设计用来和Elasticsearch一起工作,可以搜索,查看存储在Elasticsearch搜索中的数据,并通过各种表进行高级数据分析及展示。
Kibana可以让数据看起来一目了然。他操作简单,基于浏览器的用户界面管理方式,用户可以在任何地点任何时间都可以实时监控。
Kibana的主要功能
Elasticsearch无缝之集成,kibana架构是为Elasticsearch定制的,可以将任何(结构化和非结构化)数据加入Elasticsearch索引。
整合数据:Kibana可以让海量数据变得更容易理解,根据数据内容可以创建形象的柱形图,折线图、散点图、直方图等以便用户查看。
复杂数据分析:Kibana提升了Elasticsearch的分析能力,能够更加智能地分析数据,执行数学转换并根据要求对数据切割分块。
接口灵活:使用Kibana可以更加方便地创建、保存、分享数据,并将可视化数据快速交流。
|