## **初识ELK**
ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana。这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK 协议栈。
## **一、 Elasticsearch**
Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。
主要特点
* 实时分析
* 分布式实时文件存储,并将每一个字段都编入索引
* 文档导向,所有的对象全部是文档
* 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)。
* 接口友好,支持 JSON
## **二、Logstash**
Logstash 是一个具有实时渠道能力的数据收集引擎,使用 JRuby 语言编写。
主要特点
* 几乎可以访问任何数据
* 可以和多种外部应用结合
* 支持弹性扩展
它由三个主要部分组成
* Shipper-发送日志数据
* Broker-收集数据,缺省内置 Redis
* Indexer-数据写入
## **三、Kibana**
Kibana 是一款基于 Apache 开源协议,使用 JavaScript 语言编写,为 Elasticsearch 提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。
## **ELK 协议栈**
基本流程是 Shipper 负责从各种数据源里采集数据,然后发送到 Broker,Indexer 将存放在 Broker 中的数据再写入 Elasticsearch,Elasticsearch 对这些数据创建索引,然后由 Kibana 对其进行各种分析并以图表的形式展示。
ELK 三款软件之间互相配合使用,完美衔接,高效的满足了很多场合的应用,并且被很多用户所采纳,诸如脸书(Facebook),StackOverFlow 等等。
>[danger] # 推荐阅读
<i class="thumbs outline up icon"></i> [ThinkPHP 6.0企业最佳实践](https://www.kancloud.cn/zhangqi/electron-vue)
<i class="thumbs outline up icon"></i> [tp6 & ElasticSearch7全文检索架构](https://www.kancloud.cn/zhangqi/tp6_thinkphp6_es_es7_elasticsearch7)
*****
更多精彩内容,请关注公众号:**ThinkPHP6 企业最佳实践**
![](https://img.kancloud.cn/d3/48/d348470253ae51fff79159b8e1cc2285_258x258.png)
扫一扫 关注我们