ElasticStack分布式引擎技术栈(ELK)介绍

   刚入职不久,就在公司跟前辈导师了解到Elastic技术栈,让我着手准备负责部门ELK-Stack(云计算)的相关工作,于是开始整理学习与总结。

由于本人所在的是某大型央企银行的信息科技部门,与各大数据库交往比较密切,故本人对Elastic十分感兴趣。

一、简介

Elastic-Stack早期也称为ELK,现统一叫ELK stack。这一套技术栈解决的是企业级的业务需求,能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。

使用此产品的客户闻名全球,有Google、Microsoft等等。现在国内的大厂也基本在投入Elastic服务。

      (1)、Wikipedia 使用 Elasticsearch 提供带有高亮片段的全文搜索,还有 search-as-you-type 和 did-you-mean 的建议。
        (2)、卫报 使用 Elasticsearch 将网络社交数据结合到访客日志中,实时的给它的编辑们提供公众对于新文章的反馈。
        (3)、Stack Overflow 将地理位置查询融入全文检索中去,并且使用 more-like-this 接口去查找相关的问题与答案。
        (4)、GitHub 使用 Elasticsearch 对1300亿行代码进行查询。

然而 Elasticsearch 不仅仅为巨头公司服务。它也帮助了很多初创公司,像 Datadog 和 Klout, 帮助他们将想法用原型实现,并转化为可扩展的解决方案。Elasticsearch 能运行在你的笔记本电脑上,或者扩展到上百台服务器上去处理PB级数据。

ELastic的官网为:https://www.elastic.co/。

其核心由这四个组件构成:Elasticsearch(核心,开源搜索引擎)、Kibana、Beats和 Logstash。

二、组件介绍

  1、ElasticSearch 是一个基于 Apache Lucene 的开源搜索引擎。它通过RESTful API 来隐藏Lucene的复杂性,从而让全文搜索变得简单。不过,Elasticsearch 不仅仅是 Lucene 和全文搜索,我们还能这样去描述它:

  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎
  • 可以扩展到上百台服务器,处理PB级结构化或非结构化数据

  ElasticSearch对数据进行搜索、分析和存储,其是基于JSON的分布式搜索和分析引擎,专门为实现水平可扩展性、高可靠性和管理便捷性而设计的

它的实现原理主要分为以下几个步骤:

    1)首先用户将数据提交到ElasticSearch数据库中;

    2)再通过分词控制器将对应的语句分词;

    3)将分词结果及其权重一并存入,以备用户在搜索数据时,根据权重将结果排名和打分,将返回结果呈现给用户;

  2、Kibana实现数据可视化,其作用就是在ElasticSearch中进行民航。Kibana能够以图表的形式呈现数据,并且具有可扩展的用户界面,可以全方位的配置和管理ElasticSearch。

    Kibana最早的时候是基于Logstash创建的工具,后被Elastic公司在2013年收购。

    1)Kibana可以提供各种可视化的图表;

    2)可以通过机器学习的技术,对异常情况进行检测,用于提前发现可疑问题;

  3、Beats是一个面向轻量型采集器的平台,这些采集器可以从边缘机器向Logstash、ElasticSearch发送数据,它是由Go语言进行开发的,运行效率方面比较快。从下图中可以看出,不同Beats的套件是针对不同的数据源。

  4、Logstash是动态数据收集管道,拥有可扩展的插件生态系统,支持从不同来源采集数据,转换数据,并将数据发送到不同的存储库中。其能够与ElasticSearch产生强大的协同作用,后被Elastic公司在2013年收购。

    它具有如下特性:

    1)实时解析和转换数据;

    2)可扩展,具有200多个插件;

    3)可靠性、安全性。Logstash会通过持久化队列来保证至少将运行中的事件送达一次,同时将数据进行传输加密;

    4)监控;

    对于日志的解决方案一般分为:日志搜索、格式化分析、全文检索、风险告警;

三、学习ElasticSearch的层面:

 1、开发层面

    1)了解ElasticSearch有基本功能;2)底层分布式工作原理;3)针对数据进行数据建模;

  2、运维层面

    1)进行集群的容量规划;2)对集群进行滚动升级;3)对性能的优化;4)出现问题后,对问题的诊断与解决;

  3、方案层面

    1)学习ElasticSearch后,可以针对实际情况,解决搜索的相关问题;2)可以将ELK运用到大数据分析场景中;

四、ElasticSearch的主要功能与应用场景:

  1、主要功能:

    1)、海量数据的分布式存储以及集群管理,达到了服务与数据的高可用以及水平扩展;

    2)、近实时搜索,性能卓越。对结构化、全文、地理位置等类型数据的处理;

    3)、海量数据的近实时分析(聚合功能)

  2、应用场景:

    1)网站搜索、垂直搜索、代码搜索;

    2)日志管理与分析、安全指标监控、应用性能监控、Web抓取舆情分析;

五、ElasticSearch与数据库BD集成:

  

  针对上图,可以分为两种情况:

  1、将ElasticSearch当成数据库来存储数据,好处是架构比较简单;

  2、若数据更新比较频繁,同时需要考虑数据事务性时,应该先将数据存入数据库,然后建立一个合适的同步机制,将数据同步到ElasticSearch中;

日志处理:

Keep moving forwards~
原文地址:https://www.cnblogs.com/-X-peng/p/15038411.html