ELK使用系列-1.1分布式全文搜索引擎架构

  随着网络信息流量的不断增大,使得处理海量数据的分布式应用系统规模日益庞大,复杂性不断提高,给了解系统中的数据流向、服务之间的关系、系统运行状态带来了困难,进而使得分布对象的开发、调试和维护变得负责且难于处理。同时,如此庞大的海量数据库应用系统在启动、运行、关闭时会产生大量的信息。若不将这些信息记录下来,系统出现故障时想对故障进行分析就无从着手。

  利用日志的优势,对过个节点上的服务对象提供高性能的日志功能,支持服务对象的分布式调试,对集群中各类服务对象进行有效管理,将系统的伸缩性和可靠性最大化,迫切要求一个高可用的日志服务的支持。

  此外,日志分析是每个互联网公司业务流中不可缺少的一部分,从海量数据中,可以分析用户的使用行为,从而运用到智能预测或者异常检测当中去。相比与传统的大数据分析(如用户物品评分预测),日志分析具有这么几个特征:

l 数据是动态的。传统的大数据分析,往往是基于已有的数据去进行处理,这些数据都是固定不变的。而对于日志分析,只要产品还在运营,日志就会源源不断的产生,很难去规定一个节点去进行静态的处理分析。因此,以Hadoop为代表的批量式处理的分布式系统是无法运用的。对应的,流式系统才是日志分析的首选。

l 数据是多方面的。公司的产品往往不止一个,同一个产品也可以分为web、android和IOS。因此,所需要处理的日志往往是从多个端口同时产生的。如何对这些日志去进行集中处理,统一分析,同时又要做好防灾备份处理,也是日志分析的一个关键点。

l 数据结构是多源的。以往日志分析针对的是单个系统或若干服务器系统,管理系统的日志数据结构也局限于几种。而集群服务、若干应用环境下,要实现系统统一监控管理,就面临日志数据结构多源化问题,不同支撑系统日志结构不同,不同开发组织提供的应用系统日志存储环境和数据结构也不同。

因此,充分利用日志数据,实现集中式日志管理,就需要搭建分布式日志搜索系统,实现多源数据结构、动态数据变化、跨系统的日志收集、存储、检索、分析。而传统的日志管理系统已无法应对复杂环境下的系统监控管理和运维服务需求。

本章节内容包括分布式日志搜索系统的原理介绍,几种常见的开源分布式日志系统,ELK分布式日志系统组成,以及ELK架构浅析。

1.1    分布式日志搜索系统

分布式日志搜索系统的目的是实现分布式软件调试、监控、故障定位以及各节点的高可用性。为了实现各节点的高可用性,系统要求可以对整个分布式软件系统的运行状况进行跟踪以及故障定位,可以通过分析各个节点的发送过来的日志记录来重现故障发生前的状态。所以说,分布式日志搜索系统的核心技术在于搜索,如何高效、全面、准确的搜索是评价该类型系统的技术标准。

分布式日志搜索系统使用的搜索技术类型属于全文检索搜索引擎,区别于目录分类搜索引擎(最具有代表性的就是互联网搜索引擎,比如百度、谷歌、雅虎),目录分类搜索引擎的资料库中保存的是现有互联网各网站的站名、网址和内容摘要,而全文搜索引擎的资料库中,保存的是各网站的每一个具体网页的所有信息。全文检索搜索引擎以是全文搜索的方式工作,其查询的内容涵盖网站点名、网址名和内容摘要,以及与输入的关键词相关的所有网页的地址列表和内容列表,索引程序通过扫描文件中的每一个词,对每一个词建立一个索引,指明该词在文件中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。    

基于全文检索搜索引擎,分布式日志搜索系统可实现对日志文件的精准查询、分析,帮助用户构建企业级的百度搜索引擎,从而实现分布式系统的集中管理、用户习惯分析和运维管理。

1.1.1    分布式全文搜索引擎架构

分布式全文搜索系统的技术基础是全文搜索引擎,一个搜索引擎通常是由采集器/搜索器、分析及索引器、检索器和用户接口四部分组成。具体如下:

(1).    内容采集器/搜索器

通常也被称为网络蜘蛛、网络机器人、网络爬行者或网络蠕虫(Worm)等工具,其实质是一种自动化网络程序,按照工作人员制定的某种策略自动地在互联网上获取、下载、收集相应的网络信息。该工具能够尽可能快速高效地搜集各种网站类型的最新内容,同时由于网上的内容更新很快,需要自动地定时更新已经搜集过的网站内容。

(2).    分析器及索引器

分析器主要功能是数据分析,即处理搜索器所获取的信息。它通过一些特有算法,从采集器程序中返回的网页源文件内容中抽取出索引信息。同时,分析程序还将此网页内容中的链接信息抓取出来,然后返回给搜索程序,以便采集器进一步深入搜索内容。同时,还将生成从关键词到URL的索引关系表。索引表一般采用倒排索引技术(Inversion List),即由索引项返回相应的URL地址。一个搜索引擎的可用性在很大程度上取决于倒排索引的质量,即是否要快速定位该信息出处。

全文搜索引擎架构

 

(3).         检索器

检索器的主要功能是根据用户输入的查询关键词,在索引器形成的倒排索引中获取相应的索引项,同时获取页面与查询关键字之间的相关度信息。

分布式搜索引擎是在前述搜索引擎的基础上,增加了分布式系统的概念。主要应用于日志文件的分布式采集、分布式存储管理和索引,实现海量级日志数据的持久化采集、持久化存储和全文内容检索,特别是在存储均衡、负载均衡方面对提升日志查询效率提升显著。

 互联网全文检索引擎架构

 

posted @ 2021-05-27 10:52  Geocean  阅读(281)  评论(0)    收藏  举报