ELK是elastic公司提供的一套完整的收集日志并分析展示的产品,分别表示Elasticsearch、Logstash和kibana。
(官网截个图)
先来一段个人粗浅的认识:
Elasticsearch简称ES,是一个建立在全文搜索引擎Apache Lucene基础上的实时的分布式搜索及分析引擎。
Logstash是一个具有实时传输能力的数据收集引擎,由三个组件构成,其中input组件负责收集数据,常用的数据源包括文件类型、数据库类型;filter组件是用来用来过滤数据;output组件是Logstash的输出组件,可以输出到指定的文件,指导的网络端口或者输出到ES。
Kibana为Elasticsearch提供了一个分析和可视化的web平台,通过Kibana可以对Elasticsearch的索引的数据进行查询,聚合,删除等各种操作。
最近,手里的项目要用的这套框架,便着手研究一下,将一些自己的认识总结记录下来,也算是充实自己(都是被逼的)。由于项目数据量稍大(大概五百万左右),业务逻辑有点复杂等因素的存在,单纯的连表查询实在是不能满足甲方需求,(一个统计40秒,搞个卵,我都受不了) 。
个人使用ELK框架的需求是比较简单,可能只需要用到一点皮毛就解决了,主要就是为了提高统计的速率,大概的想法是这个样子:
采用Logstash将数据库中的业务数据导入到ES中,通过ES提供的方法以及java Api来完成统计,借助ES搜索引擎的特性来提高统计的效率。