简介

ElasticSearch是一个高度可扩展的开源全文搜索和分析引擎。它允许您快速、近实时地存储、搜索和分析大量数据。它通常被用作驱动具有复杂搜索功能和需求的应用程序的底层引擎/技术。适用于需要大量存储、快速检索、智能分析、复杂聚合查询和可视化要求的业务。

架构

ES 在架构上主要分为 集群、节点、索引、分片、段 这五层结构。集群(cluster)包含了若干个 ES 节点,节点(node)角色分为 master 与 slave;一个节点包含了若干个索引的部分数据,索引(index)可类比于关系型数据库中的表;一个索引包含若干个分片,ES 7.X 之前默认为5个分片,ES 7.X之后默认为1个分片;一个分片(shard)是一个完整的 lucene Index , 其中包含了若干个段(segment);段中则包含着 ES 最底层的数据结构如 倒排索引、docValue、stored field、cache 等 。架构图如下所示:
 

生产中设计方案

采用 ES 生态的方法根据不同的应用场景会有不尽相同的方案,但是大体上的模式为 数据源+中间件+数据传输+ES 的方案,比如在集中式日志平台中通常会采用 Filebeat+Kafka+Logstash+ES 的方案。为了保证集群的高可用,通常在集群的规划上会构建主备两个集群,利用中间件将数据双写到两个集群,这样一旦主集群出现故障可以立马切换到备用集群,保证服务不被中断。历史数据的不断增加,会导致集群的存储成本不断增长和搜索性能的下降,而在实际应用中通常近期数据访问频繁,而过去数据很少访问,因此在数据的存储上会根据时间将数据区分为冷数据和热数据,采用不同的配置方案达到提高搜索性能并且降低存储成本的目的。如下图所示:

对集群的监控

为了实时掌控 ES 集群的健康状况,需要能够对 ES 集群进行监控,监控的层面包括 集群、节点、索引、分片以及segment,ES 本身提供了什么全面的监控 API,通过调用这些 API 可以很直观的了解到集群是否健康,节点内存使用是否过高,索引的文档数量是否达到极限等。但是这些通常无法满足实际的需求,比如某个索引文档写入是否出现突峰或者低谷,文档是否出现了新增字段等。这是我们需要自主开发或者引入第三方开源的监控组件,比较主流的有 Yelp 开发的 Elastalert,其设计的告警规则如下:
frequency: 在 Y 时间里匹配事件高于 X 个;
spike:事件的增长率与下降率是否在阈值范围内;
flatline: 在 Y 时间内匹配事件低于 X 个;
blacklist/whitelist: 匹配字段是否属于黑名单或白名单;
change: 匹配字段在一段时间内是否改变;
new_term:匹配新出现的字段
cardinality:匹配某一字段在一段时间内出现不同值是否在一定的阈值范围内
metric_aggregation:匹配一段时间窗口内的聚合指标是否在阈值范围内
这些规则通常能够满足大部分的监控场景需求,对于个性化的需求,也可以通过其提供的开发文档进行定制化开发。
 

【ES 系列1】介绍与方案设计的更多相关文章

  1. ES系列十七、logback+ELK日志搭建

    一.ELK应用场景 在复杂的企业应用服务群中,记录日志方式多种多样,并且不易归档以及提供日志监控的机制.无论是开发人员还是运维人员都无法准确的定位服务.服务器上面出现的种种问题,也没有高效搜索日志内容 ...

  2. ES系列十六、集群配置和维护管理

    一.修改配置文件 1.节点配置 1.vim elasticsearch.yml # ======================== Elasticsearch Configuration ===== ...

  3. FrameBuffer系列 之 介绍

    1.     来由 FrameBuffer是出现在2.2.xx内核当中的一种驱动程序接口.Linux工作在保护模式下,所以用户态进程是无法象 DOS 那样使用显卡 BIOS里提供的中断调用来实现直接写 ...

  4. windows下mongodb基础玩法系列一介绍与安装

    windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...

  5. ES系列目录

    ES系列一.CentOS7安装ES 6.3.1 ES系列二.CentOS7安装ES head6.3.1 ES系列三.基本知识准备 ES系列四.ES6.3常用api之文档类api ES系列五.ES6.3 ...

  6. openssl之EVP系列之13---EVP_Open系列函数介绍

    openssl之EVP系列之13---EVP_Open系列函数介绍     ---依据openssl doc/crypto/EVP_OpenInit.pod翻译和自己的理解写成     (作者:Dra ...

  7. OpenGL ES 系列教程

    http://www.linuxgraphics.cn/graphics/opengles_tutorial_index.html 本文收集了一套 OpenGL ES 系列教程. www.play3d ...

  8. Intel 5 6 7 8系列芯片组介绍

    Intel 5 6 7 8系列芯片组介绍 Iknow.2015-11-05 22:40|知识编号:122257 操作步骤: [Inetl 5.6.7.8系列芯片组介绍] 芯片组是主板电路的核心.一定意 ...

  9. openssl之EVP系列之12---EVP_Seal系列函数介绍

    openssl之EVP系列之12---EVP_Seal系列函数介绍     ---依据openssl doc/crypto/EVP_SealInit.pod翻译和自己的理解写成     (作者:Dra ...

  10. openssl之EVP系列之11---EVP_Verify系列函数介绍

    openssl之EVP系列之11---EVP_Verify系列函数介绍     ---依据openssl doc/crypto/EVP_VerifyInit.pod翻译和自己的理解写成     (作者 ...

随机推荐

  1. c#调用

    一.基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是 ...

  2. 将 Python 程序打包成 .exe 文件

    1.简介 做了一个excel的风控模板,里面含有宏,我用python的第三方xlwings部署到linux后发现,linux环境并不支持xlwings. Python 程序都是脚本的方式,一般是在解析 ...

  3. 钉钉中设置代码提交提醒--Github机器人(转)

    生成GitHub机器人webhook 从PC端或者手机端的群机器人入口进入到机器人管理页面,选择“GitHub机器人”,按照设置流程生成GitHub机器人,即可获取到相应群的webhook,其格式如下 ...

  4. python以下划线开头的变量和函数的作用

    在python中,我们经常能看到很多变量名以_下划线开头,而且下划线的数量还不一样,那么这些变量的作用到底是什么? 变量名分类: # 以数字.字母开头: 正常的公有变量名a = 1def aa(): ...

  5. P3355 骑士共存问题【洛谷】(二分图最大独立集变形题) //链接矩阵存图

    展开 题目描述 在一个 n*n个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些方格设置了障碍,骑士不得进入 对于给定的 n*n 个方格的国际象棋棋盘和障碍标志,计算棋盘上最多可 ...

  6. Oracle 11g关闭用户连接审计

    sys.aud$表数据量增长较快.这时,不想关闭数据库的审计,但是又不想频繁的清理sys.aud$表.可进行如下操作关闭数据库连接的审计 noaudit connect;

  7. 【线性代数】7-2:线性变化的矩阵(The Matrix of a Linear Transformation)

    title: [线性代数]7-2:线性变化的矩阵(The Matrix of a Linear Transformation) categories: Mathematic Linear Algebr ...

  8. 提交项目到Github

    create a new repository on the command line git init git add README.md git commit -m "first com ...

  9. 7月清北学堂培训 Day 5

    今天是钟皓曦老师的讲授~ 动态规划 动态规划的三种实现方法: 1.递推: 2.递归: 3.记忆化: 举个例子: 斐波那契数列:0,1,1,2,3,5,8…… Fn = Fn-1 + Fn-2 1.我们 ...

  10. 内存管理2-@class关键字

    Review: 给对象发送消息,进行相应的计数器操作. Retain消息:使计数器+1,改方法返回对象本身 Release消息:使计数器-1(并不代表释放对象) retainCount消息:获得对象当 ...