一、什么是ELK?
ELK 是 Elasticsearch、Logstash、Kibana 三大开源框架的首字母大写简称。市面上也被称为Elastic Stack。其中 Elasticsearch 是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用 Elasticsearch作为底层支持的框架,可见 Elasticsearch 提供的搜索能力确实强大,市面上很多时候我们称Elasticsearch 为 es。Logstash 是 ELK 的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/Redis/Elasticsearch/Kafka等)。Kibana 可以将 Elasticsearch 的数据通过友好的页面展示出来,提供实时分析的功能。
ELK 是三个软件的统称,即 Elasticsearch、Logstash 和 Kibana 三个开源软件的缩写。这三款软件都是开源软件,通常配合使用,并且都先后归于 Elastic.co 企业名下,故被简称为 ELK 协议栈。ELK 主要用于部署在企业架构中,收集多台设备上多个服务的日志信息,并将其统一整合后提供给用户。
市面上很多开发只要提到 ELK 能够一致说出它是一个日志分析架构技术栈总称,但实际上 ELK 不仅仅适用于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性,并非唯一性。
ELK官网:https://www.elastic.co/cn/
其页面如下所示:
二、ELK简介
2.1 E -- ElasticSearch
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。
2.2 L -- Logstash
集中、转换和存储数据
Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。
Logstash 能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用 Grok 从非结构化数据中派生出结构,从 IP 地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。
2.3 K -- Kibana
Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。
三、ELK优点
1、处理方式灵活: Elasticsearch 是全文索引,具有强大的搜索能力。
2、配置相对简单: Kibana 的配置非常简单,Elasticsearch 则全部使用Json接口,配置也不复杂,Logstash 的配置使用模块的方式,配置也相对简单。
3、检索性能高:ELK 架构通常可以达到百亿级数据的查询秒级响应。
4、集群线性扩展:Elasticsearch 本身没有单点的概念,自动默认集群模式,Elasticsearch 和Logstash 都可以灵活扩展。
5、页面美观: Kibana 的前端设计美观,且操作简单。
完结!