ELK由ElasticSearch,Logstash和Kiabana三个开源工具组成。
一,ELK概述
1 ,ELK 简介
ElasticSearch:是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful风格接口,多数据源,自动搜索负载等。
Logstash: 是一个完全开源的工具,他可以对你的日志进行收集,分析,并将其存储供以后使用。
Kibana:也是一个开源和免费的工具, Kibana可以为Logstash
和 ElasticSearch提供的日志分析友好的Web界面,可以帮助汇总,分析和搜索重要数据日志。
2 ,ELK 协议栈及体系结构
ELK其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash和Kibana。这三款软件都是开源软件,通常是配合使用,而且又先后归于弹性.co公司名下,故被简称为ELK协议栈。
在需要收集日志的所有服务上部署logstash,Logstash收集应用服务器产生的日志,将日志收集在一起交给全文搜索服务ElasticSearch,而Kibana则从ES集群中查询数据生成图表,再返回给客户端浏览器。
二,ElasticSearch
2.1 ElasticSearch概述
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎,用于设计云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
Elasticsearch是一个实时分布式搜索和分析引擎与数据库对比来说:。现在大部分数据库在提取可用知识方面显得异常无能的确,它们能够通过时间戳或者精确匹配做过滤查询,但是它们不能够进行全文搜索,不能处理同义词,以及根据相关性给文档打分。而Elasticsearch能根据同一份数据生成分析和聚合的结果,最重要的是,它们在没有大量工作进程(线程)的情况下能做到对数据的实时处理。
2.2 ElasticSearch应用场景
互联网的时代,建立一个网站或应用程序,要添加搜索功能,实现站内搜索和站外搜索,但是想要完成搜索工作并保证运行的功能和性能是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用 JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台应用,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题以及可能出现的更多其它问题。
2.3 ElasticSearch安装部署
参考文档
ELK官网:https://www.elastic.co/