简介

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. JS 框架安全报告:jQuery 下载次数超过 1.2 亿次

    尽管 JavaScript 库 jQuery 仍被使用,但它已不再像以前那样流行.根据开源安全平台 Snyk 统计,目前至少十分之六的网站受到 jQuery XSS 漏洞的影响,甚至用于扩展 jQue ...

  2. ServletContextListener和ServletContext

    web开发中,每个人都必须要深刻掌握的技能——servlet,学习servlet,就必然要理解ServletContext(javax.servle.ServletContext)接口. 先让我们看下 ...

  3. 13、Spring Boot 2.x 多数据源配置

    1.13 Spring Boot 2.x 多数据源配置 完整源码: Spring-Boot-Demos

  4. C语言学习系列(一)开门首篇

    一.特辑 此次是我自己的学习之路,和大家一起分享(我现在是做Java),途中遇到什么问题大家也可以提出来一起讨论一起进步: 主要参考教程是菜鸟教程上面的C语言教程,以及大学课本C语言教程-第四版(谭浩 ...

  5. [USACO19OPEN]Snakes

    题目链接 题目简介:有n组,每组有若干个蛇的蛇队伍.(也可以理解为n条长度若干的蛇.)我们要用网捕捉,中途可以改变网的大小.目标是浪费空间最小. 解法:首先明确方法:DP.设f[i][t]为捕捉了n条 ...

  6. java 内部类简单总结

    在java中,一个类可以放在另一个类的内部,称之为内部类,相对而言,包含它的类称之为外部类.不过对于Java虚拟机而言,它是不知道内部类这回事的, 每个内部类最后都会被编译为一个独立的类,生成一个独立 ...

  7. 【概率论】3-4:二维分布(Bivariate Distribution)

    title: [概率论]3-4:二维分布(Bivariate Distribution) categories: Mathematic Probability keywords: Discrete J ...

  8. JavaWeb_(Spring框架)Spring中的aop事务

    1.事务相关知识 a)什么是事务:把多条数据库操作捆绑到一起执行,要么都成功,要么都失败: b)事务的原则ACID: i.原子性:事务包含的所有操作,要么全部成功,要么全部失败回滚,成功全部应用到数据 ...

  9. java课后实验性问题3

    一 .生成随机数 import java.util.*; public class Test1 { public static void main(String[] args) { //建立一个生产随 ...

  10. spring-boot学习 (Groovy与Spring Boot Cli)

    一.使用idea创建一个spring-boot项目,选择groovy语言 二.编写相应代码 1.创建实例类 package com.zhi.example class Man { Long id St ...