Elastic.stack集群部署课程一·基本介绍

Elastic stack 是指由Elasticsearch、Logstash、Kibana和Kafka、Filebeat组成的日志分析平台,即传统的ELK加上Kafka和Filebeat,可以将系统、网站、应用等日志进行收集、过滤、清洗,然后进行集中存放,最终用于实时检索和分析。

前端

通过由GO语言编写的Filebeat采集数据,轻量级且资源消耗少,优势是无需像Logstash需要依赖Java(资源消耗比较大),尤其在数据量大的时候,能明显降低对业务系统的压力。

由filebeat采集的数据都将被转为json格式。

Beats家族包括:

名称 介绍
Packerbeat 搜集网络流量数据。
Topbeat 搜集系统、进程和文件系统级别的CPU和内存使用情况等数据。
Filebeat 搜集文件数据。
Winlogbeat 搜集windows事件日志数据。

缓冲

Kafka集群的主要目的是实现削峰、异步通信的功能,避免突发数据对Elasticsearch造成的压力,保障数据安全,提高平台的稳定性。

一个典型的Kafka集群包含若干Producer、若干broker、若干Consumer Group,以及一个Zookeeper集群。Zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行rebalance,Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息。

后端

Logstash和Elasticsearch部署集群模式,实现 Elastic stack 平台的高效和高可用,同时提升吞吐量。

Logstash是数据收集处理引擎,提供数据处理pipeline,通过插件形式实现其各个功能,它可以接收多个源的数据、然后对它们进行转换、最终将它们发送到指定类型的目的地。数据处理过程主要包括:Inputs, Filters, Outputs 三部分, 另外在Inputs和Outputs中可以使用Codecs对数据格式进行处理。

功能 介绍
Inputs 从数据源获取数据,插件有file、syslog、kafka、beats等。
Filters 对数据进行格式转换、派生等,插件有grok、mutate、drop、clone、geoip等。
Outputs 输出数据,插件有elastcisearch、file、graphite、statsd等。
Codecs 对数据进行编码处理,插件有json、multiline等。

ElasticSearch是分布式搜索引擎,有三类角色,分别是Client Node、Data Node和Master Node,搜索查询的请求一般是经过Client Node来向Data Node获取数据,而索引查询首先请求Master Node节点,然后Master Node将请求分配到多个Data Node节点完成一次索引查询。

节点 介绍
Master Node 主节点,主要用于元数据(metadata)的处理,比如索引的新增、删除、分片分配等,以及管理集群各个节点的状态。
Data Node 数据节点,这些节点上保存了数据分片。负责数据相关操作,比如分片的CRUD、搜索和整合等操作。数据节点对CPU、内存和磁盘性能需求较高。
Client Node 客户端节点,分担数据节点的一部分压力。Elasticsearch的查询需经过两层汇聚,第一层是在数据节点上做查询结果汇聚,并把结果发给客户端节点,客户端节点接收到数据后进行二次汇聚,最后后把查询结果返回给用户。

可视化

Kibana是一个JavaScript语言编写的开源的分析和可视化平台,用于搜索、查看存储在Elasticsearch索引中的数据,甚至进行交互。

原创文章禁止转载:技术学堂 » Elastic.stack集群部署课程一·基本介绍

精彩评论

5+1=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏