ELKstack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合,logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),三者通常配合使用,并且都来源于 Elastic.co 公司,所以简称为 ELK。
ELKstack 通过以下三个软件的有机结合实现了非常强大的灵活性与可扩展性:
Logstash -- 提供简易、分布式、可扩展的日志收集功能,适配目前业界最通用的配置语法,支持消息队列中收集各种各样的日志,然后进行过滤分析,并可将日志输入到Elasticsearch
Elasticsearch -- 是一个采用 http + json 接口的实时全文分布式存储/搜索引擎,提供高效的数据查询,支持集群功能,可以将指定时间的日志生成一个索引,加快日志查询和访问。
Kibana -- 提供了绚丽可视化的Web绚丽的前端展示操作界面,只需点点鼠标,就可以完成搜索、聚合等功能,还可以生成绚丽的仪表
通用架构图如下:
和传统的日志处理方案相比,ELKStack 具有如下几个优点:
处理方式灵活:Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
配置简易上手:Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
检索性能高效:虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
集群线性扩展:不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
前端操作炫丽:Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。
Elasticsearch部署
Elasticsearch首先需要Java环境,所以需要提前安装好JDK,可以直接使用yum安装。开始之前要确保JDK正常安装并且环境变量同时配置正确:
YUM安装JDK
YUM安装ElasticSearch
LogStash部署
LogStash部署和Elasticsearch类似,先安装配置好JDK,然后yum安装。
Kibana部署
使用Cobbler创建ELKStack仓库
当然生产环境,肯定不能使用外网的YUM仓库,可以使用Cobbler来创建自己的yum仓库。