李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
Elastic Stack简介
Leefs
2021-02-11 PM
2310℃
0条
# 01.Elastic Stack简介 ### 前言 ELK这个词被很多人所熟知,但是说到Elastic Stack就比较陌生,先说说ELK和Elastic Stack的关系。 ELK是三款软件的简称,分别是由Elasticsearch、Logstash、Kibana组成,在发展的过程中,又有新成员Beats的加入,在叫原来的名字有点不合适,所以就形成了Elastic Stack。 总结:ELK单指三个软件Elasticsearch、Logstash、Kibana,但是Elastic Stack是指包含ELK和Beats在内的整个生态。 ![01.Elastic Stack简介01.png](https://lilinchao.com/usr/uploads/2021/02/1110387156.png) ### 一、组件介绍 **1. Elasticsearch** 分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。通常被用作某些应用的基础搜索引擎,使其具有复杂的搜索功能; **2.Logstash** 数据处理引擎,它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到 ES; **3.Kibana** 数据分析和可视化平台。与 Elasticsearch 配合使用,对数据进行搜索、分析和以统计图表的方式展示; **4.Filebeat** ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,使用 golang 基于 Logstash-Forwarder 源代码开发,是对它的替代。在需要采集日志数据的 server 上安装 Filebeat,并指定日志目录或日志文件后,Filebeat 就能读取数据,迅速发送到 Logstash 进行解析。 ### 二、Elastic Stack常见架构 **2.1 All-In-One** 在这种架构中,只有一个 Logstash、Elasticsearch 和 Kibana 实例,集中部署于一台服务器。Logstash 通过输入插件从多种数据源(比如日志文件、标准输入 Stdin 等)获取数据,再经过滤插件加工数据,然后经 Elasticsearch 输出插件输出到 Elasticsearch,通过 Kibana 展示。 ![01.Elastic Stack简介02.png](https://lilinchao.com/usr/uploads/2021/02/2163209301.png) 这种架构非常简单,使用场景也有限。初学者可以搭建这个架构,了解 ELK 如何工作。 **2.2 Logstash 分布式采集** 这种架构是对上面架构的扩展,把一个 Logstash 数据搜集节点扩展到多个,分布于多台机器,将解析好的数据发送到 Elasticsearch server 进行存储,最后在 Kibana 查询、生成日志报表等。 ![01.Elastic Stack简介03.png](https://lilinchao.com/usr/uploads/2021/02/2788764405.png) 这种结构因为需要在各个服务器上部署 Logstash,而它比较消耗 CPU 和内存资源,所以比较适合计算资源丰富的服务器,否则容易造成服务器性能下降,甚至可能导致无法正常工作。 **2.3 Beats 分布式采集** 这种架构引入 Beats 作为日志搜集器。目前 Beats 包括四种: - Packetbeat(搜集网络流量数据); - Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据); - Filebeat(搜集文件数据); - Winlogbeat(搜集 Windows 事件日志数据) Beats 将搜集到的数据发送到 Logstash,经 Logstash 解析、过滤后,将其发送到 Elasticsearch 存储,并由 Kibana 呈现给用户。 ![01.Elastic Stack简介04.png](https://lilinchao.com/usr/uploads/2021/02/1842697470.png) 这种架构解决了 Logstash 在各服务器节点上占用系统资源高的问题。相比 Logstash,Beats 所占系统的 CPU 和内存几乎可以忽略不计。另外,Beats 和 Logstash 之间支持 SSL/TLS 加密传输,客户端和服务器双向认证,保证了通信安全。 **2.4 引入消息队列机制的 Logstash 分布式架构** 这种架构使用 Logstash 从各个数据源搜集数据,然后经消息队列输出插件输出到消息队列中。目前 Logstash 支持 Kafka、Redis、RabbitMQ 等常见消息队列。然后 Logstash 通过消息队列输入插件从队列中获取数据,分析过滤后经输出插件发送到 Elasticsearch,最后通过 Kibana 展示。 ![01.Elastic Stack简介05.png](https://lilinchao.com/usr/uploads/2021/02/1455801859.png) 这种架构适合于日志规模比较庞大的情况。但由于 Logstash 日志解析节点和 Elasticsearch 的负荷比较重,可将他们配置为集群模式,以分担负荷。引入消息队列,均衡了网络传输,从而降低了网络闭塞,尤其是丢失数据的可能性,但依然存在 Logstash 占用系统资源过多的问题。 **2.5 引入消息队列机制的 Filebeat + Logstash 分布式架构** Filebeat 已经支持 kafka 作为 ouput,5.2.1 版本的 Logstash 已经支持 Kafka 作为 Input,和上面的架构不同的地方仅在于,把 Logstash 日志搜集发送替换为了 Filebeat。这种架构是当前最为完美的,有极低的客户端采集开销,引入消息队列,均衡了网络传输,从而降低了网络闭塞,尤其是丢失数据的可能性。 ![01.Elastic Stack简介06.png](https://lilinchao.com/usr/uploads/2021/02/2824918408.png) *附:* *参考文章链接https://blog.51cto.com/wzlinux/2175796*
标签:
Elasticsearch
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1075.html
上一篇
Elasticsearch集群故障转移
下一篇
Beats简介
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
RSA加解密
BurpSuite
Scala
哈希表
SQL练习题
Flume
Spark RDD
Spark SQL
二叉树
前端
链表
Golang
Kafka
Git
JavaSE
设计模式
Netty
Docker
Kibana
散列
数据结构
Java工具类
CentOS
Stream流
Eclipse
Jenkins
gorm
Yarn
nginx
国产数据库改造
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭