Elastic Stack 概述

一、Elastic Stack简介

“ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。

Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。

在 ELK Stack 这个生态圈慢慢发展过程中,加入了一个新成员 Beats(Beats是负责单一用途数据采集并推送给Logstash或Elasticsearch的轻量级产品),就更名为 Elastic Stack

Elastic Stack 是 ELK Stack 的更新换代产品。

所以,Elastic Stack技术栈的功能为,将系统、网络、应用系统日志等各种日志及相关数据进行收集、过滤、转换、然后进行集中存放并可用于实时检索、分析和展示。

在这里插入图片描述

全系的Elastic Stack技术栈包括:

在这里插入图片描述

二、elasticsearch

ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

Elasticsearch 是用 Java 开发的,并作为 Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

elasticsearch是一个采用Restful API标准的高扩展的和高可用的实时数据分析的全文搜索工具

相关概念

在这里插入图片描述
集群(cluster):集群就是一个或多个节点组成。其中一个节点为主节点,这个节点是可以通过选举产生的,并提供跨节点的联合索引和搜索的功能。集群有一个唯一性标识的名字,每个节点是基于集群名字加入到其集群中的。因此,确保在不同环境中使用不同的聚群名字。

节点(node):节点就是一台单一的服务器,单个ElasticSearch实例。是集群的一部分,存储数据并参与集群的索引和搜索功能。像集群一样,节点也是通过名字来标识,默认是在节点启动时随机分配的字符名。

索引(index):索引是有相似属性的系列文档的集合,是Elasticsearch对逻辑数据的逻辑存储。可以把索引看成关系型数据库的表,索引的结构是为快速有效的全文索引准备的,特别是它不存储原始值。Elasticsearch可以把索引存放在一台机器或者分散在多台服务器上,每个索引有一或多个分片(shard),每个分片可以有多个副本(replica)。

文档(Document):文档是存储信息的基本单元,可以被索引。文档是以JSON格式表现的。用关系型数据库来类比的话,一个文档相当于数据库
表中的一行记录。

分片(shards):因为ES是个分布式的搜索引擎, 所以索引通常都会分解成不同部分,而这些分布在不同节点的数据就是分片。ES自动管理和组织分片, 并在必要的时候对分片数据进行再平衡分配, 所以用户基本上不用担心分片的处理细节,一个分片默认最大文档数量是20亿。

副本(Replicas):一个副本分片只是一个主分片的拷贝。ES默认为一个索引创建5个主分片, 并分别为其创建一个副本分片. 也就是说每个索引都由5个主分片成本, 而每个主分片都相应的有一个副本。

分片(shards)和副本(replicas):

在实际情况下,索引存储的数据可能超过单个节点的硬件限制。如一个十亿文档需 1TB空间可能不适合存储在单个节点的磁盘上,或者从单个节点搜索请求太慢了。

为了解决这个问题, elasticsearch提供将索引分成多个分片的功能。当在创建索引时,可以定义想要分片的数量。每一个分片就是一个全功能的独立的索引,可以位于集群中任何节点上。

分片的两个最主要原因:

a、水平分割扩展,增大存储量 b、分布式并行跨分片操作,提高性能和吞吐量。

分布式分片的机制和搜索请求的文档如何汇总完全是有elasticsearch 控制的,这些对用户 而言是透明的。网络问题等等其它问题可以在任何时候不期而至,为了健壮性,强烈建议要有一个故障切换机制,无论何种故障以防止分片或者节点不可用。 为此,elasticsearch 让我们将索引分片复制一份或多份,称之为分片副本或副本。

副本也有两个最主要原因:

a. 高可用性,以应对分片或者节点故障。出于这个原因,分片副本要在不同的节点上。
b. 提高性能,增大吞吐量。

搜索可以并行在所有副本上执行,总之,每一个索引可以被分成多个分片。索引也可以有0个或多个副本。复制后,每个索引都有主分片(母分片)和复制分片(复制于母分片)。分片和副本数量可以在每个索引被创建时定义。索引创建后,可以在任何时候动态的更改副本数量,但是,不能改变分片数。默认情况下,elasticsearch为每个索引分片5个主分片和1个副本,这就意味着集群至少需要2个节点。索引将会有5个主分片和5个副本(1个完整副本),每个索引总共有10个分片。

说明:

对于分布式搜索引擎来说,分片及副本的分配将是高可用及快速搜索响应的设计核心。主分片与副本都能处理查询请求,它们的唯一区别在于只有主分片才能处理索引请求。

我们往 Elasticsearch 添加数据时需要用到 索引 —— 保存相关

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值