ES生态和场景
生态
Beats + Logstash + ElasticSearch + Kibana
官方生态图
Beats
Beats是一个面向轻量型采集器的平台,这些采集器可以从边缘机器向Logstash、ElasticSearch发送数据,它是由Go语言进行开发的,运行效率方面比较快。
特性
-
轻量 —— Beats 是数据采集的得力工具。将这些采集器安装在你的服务器中,它们就会把数据汇总到 Elasticsearch。如果需要更加强大的处理性能,Beats 还能将数据输送到 Logstash 进行转换和解析。
-
可拓展 —— 每款开源采集器都是以用于转发数据的通用库 libbeat 为基石。需要监控某个专用协议?可以自己构建采集器。
beat套件
-
Filebeat 日志文件
-
Metricbeat 指标
-
Packetbeat 网络数据
-
Winlogbeat Windows 事件日志
-
Auditbeat 审计数据
-
Heartbeat 运行时间监控
Logstash
Logstash是动态数据收集管道,拥有可扩展的插件生态系统,支持从不同来源采集数据,转换数据,并将数据发送到不同的存储库中。其能够与ElasticSearch产生强大的协同作用。
特性
-
实时解析和转换数据;
-
可扩展,具有200多个插件;
-
可靠性、安全性。Logstash会通过持久化队列来保证至少将运行中的事件送达一次,同时将数据进行传输加密;
-
监控;
图示
ElasticSearch
ElasticSearch对数据进行搜索、分析和存储,其是基于JSON的分布式搜索和分析引擎,专门为实现水平可扩展性、高可靠性和管理便捷性而设计的。
实现步骤
-
首先用户将数据提交到ElasticSearch数据库中;
-
再通过分词控制器将对应的语句分词;
-
将分词结果及其权重一并存入,以备用户在搜索数据时,根据权重将结果排名和打分,将返回结果呈现给用户;
Kibana
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
作用
-
Kibana可以提供各种可视化的图表;
-
可以通过机器学习的技术,对异常情况进行检测,用于提前发现可疑问题;
ELK概念
Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在Elasticsearch中的数据。
ES Stack 发展状况
架构变化
-
beats+elasticsearch+kibana
-
beats+logstath+elasticsearch+kibana
应用场景
-
日志收集系统
-
性能监控
-
多数据中心方案