你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

【ELK】框架介绍

2021-11-9 9:16:20

1.核心组成

ELK是一个应用套件,由Elasticsearch、Logstach、Libana三部分组成,简称ELK;ELK可以将系统日志、网站日志、应用系统日志等各种日志进行收集、过滤、清晰,然后进行集中存放并可用于实时检索、分析。上述三款软件归于Elastic.co公司名下,故又简称ELK Stack
在这里插入图片描述

2.Elasticsearch介绍

Elasticsearch是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析,采用Java语言编写。它的主要特点如下:

  • 实时搜索,实时分析
  • 分布式架构、实时文件存储,并将每一个字段都编入索引
  • 文档导向,所有的对象全部是文档
  • 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards和Replicas)
  • 接口友好,支持JSON

Elasticsearch支持集群架构,典型的集群架构。
Elasticsearch集群中有Master Node和Slave Node两种角色,其实还有一种角色Client Node
在这里插入图片描述

3.LogStash介绍

Logstash是一款轻量级的、开源的日志收集处理框架,它可以方便的把分散的、多样化的日志搜集起来,并进行自定义过滤分析处理,然后传输到指定的位置,比如某个服务器、文件、ES、Kafka、Redis等。Logstash采用JRuby语言编写,它的主要特点如下:

  • input:数据收集
  • filter:数据加工,如过滤,改写等
  • output:数据输出

在这里插入图片描述
每个部分含义如下:

  • Shipper:主要用来收集日志数据,负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来,然后经过加工、过滤,输出到Broker。
  • Broker:相当于日志Hub,用来连接多个Shipper和多个Indexer,起到缓冲器的作用,所以使用Redis(官方推荐)或者Kafka
  • Indexer:从Broker读取文本,经过加工、过滤,输出到指定的介质(可以是文件、网络、elasticsearch等)中。

4.Kibana介绍

Kibana是一个开源的数据分析可视化平台。使用Kibana可以为Logstash和ElasticSearch提供的日志数据进行高效的搜索、可视化汇总和多维度分析,还可以与Elasticsearch搜索引擎之中的数据进行交互。它基于浏览器的界面操作可以快速创建动态仪表板,实时监控ElasticSearch的数据状态与更改。Kibana采用NodeJS编写。

5.ELK工作流程

一般都是在需要收集日志的所有服务上部署logstash,作为logstash shipper用于监控并收集、过滤日志,接着,将过滤后的日志发送给Broker,然后,Logstash Indexer将存放在Broker中的数据再写入Elasticsearch,Elasticsearch对这些数据创建索引,最后由Kibana对其进行各种分析并以图表的形式展示。
在这里插入图片描述
有些时候,如果收集的日志量较大,为了保证日志收集的性能和数据的完整性,logstash shipper和logstash indexer之间的缓冲器(Broker)也经常采用kafka来实现。