Elasticsearch是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析,采用Java语言编写。目前,官网最新的版本是Elasticsearch 7.6.0.那么同时,Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决越来越多的用例。它作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。要想获取最新的软件版本和文档支持。我们可以通过访问如下链接获取相关帮助。https://www.elastic.co/cn/downloads/elasticsearch
它有以下主要特点:
l 实时搜索,实时分析
l 分布式架构、实时文件存储,并将每一个字段都编入索引
l 文档导向,所有的对象全部是文档
l 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards和Replicas)
l 接口友好,支持JSON
l 可以扩展到上百台服务器,轻松处理PB级结构化或非结构化数据
l 基于Apache Lucene(TM)的开源搜索引擎,让全文搜索变得简单
正是如此,基于以上这些原因,让我们的Elasticsearch被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎。世界上众多知名互联网公司都将其作为自己的搜索引擎。
Logstash是一款轻量级的、开源的日志收集处理框架,它可以方便的把分散的、多样化的日志搜集起来,并进行自定义过滤分析处理,然后传输到指定的位置,比如某个服务器或者文件。Logstash采用JRuby语言编写,而Jruby的基础又是Java开发而来的。目前最新的版本是Logstash 7.6.0.我们可以通过访问如下链接获取相关帮助。https://www.elastic.co/cn/downloads/logstash它的主要特点如下:
Logstash的理念很简单,从功能上来讲,它只做三件事情:
l input:数据收集
l filter:数据加工,如过滤,改写等
l output:数据输出
别看它只做三件事,但通过组合输入和输出,可以变幻出多种架构实现多种需求。Logstash内部运行逻辑如下图所示:
其中,每个部分含义如下:
l Shipper:主要用来收集日志数据,负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来,然后经过加工、过滤,输出到Broker
l Broker:相当于日志Hub,用来连接多个Shipper和多个Indexer。
l Indexer:从Broker读取文本,经过加工、过滤,输出到指定的介质(可以是文件、网络、elasticsearch等)中。Redis服务器是logstash官方推荐的broker,这个broker起数据缓存的作用,通过这个缓存器可以提高Logstash shipper发送日志到Logstash indexer的速度,同时避免由于突然断电等导致的数据丢失。可以实现broker功能的还有很多软件,例如kafka等。这里需要说明的是,在实际应用中,LogStash自身并没有什么角色,只是根据不同的功能、不同的配置给出不同的称呼而已,无论是Shipper还是Indexer,始终只做前面提到的三件事。这里需要重点掌握的是logstash中Shipper和Indexer的作用,因为这两个部分是logstash功能的核心,后面会陆续介绍到这两个部分实现的功能细节。
Kibana是一个开源的数据分析可视化平台。使用Kibana可以为Logstash和ElasticSearch提供的日志数据进行高效的搜索、可视化汇总和多维度分析,还可以与Elasticsearch搜索引擎之中的数据进行交互。它基于浏览器的界面操作可以快速创建动态仪表板,实时监控ElasticSearch的数据状态与更改。我们可以通过访问如下链接获取相关帮助https://www.elastic.co/cn/downloads/kibana
一般都是在需要收集日志的所有服务上部署logstash,作为logstash shipper用于监控并收集、过滤日志,接着,将过滤后的日志发送给Broker,然后,Logstash Indexer将存放在Broker中的数据再写入Elasticsearch,Elasticsearch对这些数据创建索引,最后由Kibana对其进行各种分析并以图表的形式展示。
ELK工作流程说明:有些时候,如果收集的日志量较大,为了保证日志收集的性能和数据的完整性,logstash shipper和logstash indexer之间的缓冲器(Broker)也经常采用kafka来实现。
那么本节我主要先从开源框架ELK入手,逐一阐述了ELK的各软件组成以及其工作流程。从上面的阐述中我们要知道了ELK工作原理以及重点要去掌握Elastisearch到底能做什么?作为ELK生态的核心,后面我们将着重来讲ES的各特征以及腾讯云自己的ES产品的选择与使用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。