## **初识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)                     扫一扫 关注我们