【阿里云MVP第五期】阿里云李靖威:Elasticsearch集群监控与报警原理解析

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文节选自阿里云MVP第五期嘉宾阿里云技术专家李靖威分享话题《使用X-Pack和Kibana实现Elasticsearch 的监控与报警》。以开源 Elasticsearch、阿里云 Elasticsearch和X-Pack的Demo show的形式, 对 Elasticsearch 集群监控和报警的内部原理进行讲解和使用方法演示。

嘉宾介绍

李靖威 阿里云技术专家
全栈程序员,精通前后端,在Web微服务系统架构上有深入研究。3年搜索产品相关经验,现负责阿里云Elasticsearch的产品业务部分的开发。

今天会对Elasticsearch集群监控原理介绍和Demo展示,包括集群运行状况、监控信息的搜集、分析和报警等。

我今天的主题主要会从三个方面来逐步介绍,第一个方面会从大家最广泛使用的开源Elasticsearch实现监控和报警相关的原理。第二个方面,从ES官方X-Pack里面的非常强大的Monitor插件,是来如何实现对ES进行的监控和报警。第三个方面是介绍一下在阿里云Elasticsearch里面如何更加方便的去使用ES的集群的监控和报警。

开源Elasticsearch如何实现监控和报警

为了保证一个ES集群的稳定运行,我们要从各个维度去对整个集群进行监控。我对这些不同维度的指标做了一个简单的分类。

_

  • 资源类,主要指ES集群所跑的物理机和操作系统相关所分配的一些资源,包括CPU、内存、网络、磁盘和操作系统的system log等指标。
  • 容器级,这里面就包含Java运行时的JVM等相关指标。
  • 最核心的ES应用级别指标,大概分为两个维度:
    节点级:因为ES是一个分布式的应用,所以在这个应用下可能会有一个维度是跟每一个节点相关的。我们知道,在每一个ES结点上会跑多个Lucene进程,进程相关的指标就属于这个级别。

索引级:一个索引会分布在不同的节点上,针对每一行索引的维度,可以观察到各种各样的行动指标,

  • 最后的就是在通过调用方的一些监控。今天我主要讲的是前面的一部分,不包含调用的部分。

ES集群监控原理

下面给大家介绍一下ES集群监控的一些原理。这个里面刚才我给大家介绍了那么多相关的指标的,看起来很复杂,有各种各样的维度,但实际上ES本身在这上面是做得比较健全,它把刚才提高的绝大部分的信息都已经集成到了RESTful API里面,给大家介绍几个跟ES监控相关的接口。

_

  • Node Stats API,顾名思义就是看集群内的每一个节点的状态信息,在每个节点上会有不同索引的一些分片,这个节点所涉及到的分片每一个单独的信息可以通过这个API观察到的。
  • Cluster Stats API,就是整个集群的比较选举性的信息,通过这个API包括插件节点输入,还有一些各个节点的统计信息的相加结果,都可以在这个API中可以看到。
  • Index_name Stats API,就是刚才提到维度索引级别的。这个API的调用是通过一个index_name斜杠,是指定每一个索引都可以去调用这个接口,去观察这个索引的相关统计信息。部分指标和Node Stats API相匹配。
  • Cluster Health API,这是大家非常了解的,ES绿、黄、红三个状态就是通过这个接口来拿到。这个接口包含整个集群的分片信息和监控状态,这个监控大家应该会用得非常广泛。
  • Pending Tasks API,ES里面有很多的异步任务,利用这个接口可以进行全局性观察。整个集群当中正在跑的一些任务,这些任务包括索引创建任务或者是shard均衡任务等。
    这个接口有一个很好用的一个特性,参数wait_for_completion=ture,可以就结合浏览器里面JS来实现浏览器端和服务器端的实时通信。众所周知http是无状态服务,通过这个参数可以在浏览器里边做到很多类似于实时通信的效果,因此可以给集群监控提供方便。

第三方监控系统

下面提一下第三方监控系统,大多不是开源的,大家可以下面去自己去了解一下。他们的基本原理都是类似的,通过刚才介绍的那几个接口,或者直接通过RestAPI获取信息。

_

X-Pack的Monitor组件

下面介绍X-Pack的监控组件Monitor,以前的名字叫做Marvel。下图界面是X-pack在Kibana安装了Monitor插件之后的功能截面。

_

在这里面能够看到,ES集群现在的监控状态里有很多实用的节点级指标。而下面这张图是索引级别的。

_

X-Pack Monitor的监控原理

Monitor的监控原理其实大部分的监控系统都是类似的。它通过collector,持续收集前面提到的监控API的历史信息。collector收集的时间周期是每10秒钟一次,10秒这个时间是可以通过xpack.monitoring.collection.interal配置项来进行调整。这个值调整得越小,集群监控的实时性就越高,但是集群监控所占用的系统资源也会越多。

还有一个非常重要的实践经验,尽量将你的ES集群的监控做成独立的监控。X-Pack默认开启Monitor监控,它会把监控信息直接存储到当前集群内的。但这样会有出现一个问题,生产环境对监控信息要求非常高的情况下,如果集群挂掉,集群监控也就挂了,因为他们是放在一起的。所以最佳实践是,做成一个dedicated cluster,也就是一个独立的集群。在ES5.0里面可以通过xpack.monitoring.elasticsearch.url配置dedicated cluster。在ES6.0里面,这个功能更加强大,可通过xpack.monitoring.exporters配置到多个目标里面去。

下图是Monitor Collector收集的主要信息:

_

X-Pack报警功能的实现原理
X-Pack的报警功Watcher是一个工作流的配置引擎,通过Rest API可以配置它的触发器,包括数据的输入、触发条件和最后执行的动作,来实现特定条件下触发某个特定动作。

_

X-Pack的监控功能应该是市面上第三方监控系统中功能最强大的了。在国内大家可能更希望使用国内的一些服务进行接受报警的通知,比如邮件、短信、钉钉等。

阿里云Elasticsearch的监控报警

最后分享阿里云Elasticsearch如何做监控报警。基于阿里云云监控和X-Pack的Monitor功能实现集群监控,并配置旺旺接收告警信息。配置DEMO,如下所示:

阿里云MVP介绍

阿里云最有价值专家,简称 MVP(Most Valuable Professional),是专注于帮助他人充分了解和使用阿里云技术的意见领袖。点击了解更多产品信息
阿里云 MVP Meetup 第5期活动视频回顾。点击观看

加入钉钉技术讨论群

dingQR

阿里云Elasticsearch已正式发布啦,Elastic开源官方联合开发,集成5.5商业版本XPack功能,欢迎开通使用。
点击了解更多产品信息

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2天前
|
负载均衡 算法
Dubbo-负载均衡原理解析(1),一个本科渣渣是怎么逆袭从咸鱼到Offer收割机的
Dubbo-负载均衡原理解析(1),一个本科渣渣是怎么逆袭从咸鱼到Offer收割机的
|
2天前
|
Android开发
Flutter完整开发实战详解(六、 深入Widget原理),2024百度Android岗面试真题收录解析
Flutter完整开发实战详解(六、 深入Widget原理),2024百度Android岗面试真题收录解析
|
3天前
|
Android开发 Java Kotlin
阿里P8大佬亲自讲解,android面试题解析
阿里P8大佬亲自讲解,android面试题解析
|
3天前
|
JSON 搜索推荐 API
使用Elasticsearch进行全文搜索:技术深度解析
【5月更文挑战第16天】本文深入解析了使用Elasticsearch进行全文搜索的技术细节。Elasticsearch是一个基于Lucene的开源搜索引擎,支持全文、结构化搜索和数据分析,具备优秀的扩展性。文中介绍了其核心功能,包括全文搜索、结构化搜索、分析和可扩展性。详细步骤涉及安装配置、数据准备、创建索引、导入数据、构建查询及结果处理。Elasticsearch凭借其高效性能和灵活性,成为企业全文搜索的首选解决方案。
|
4天前
|
Web App开发 开发框架 前端开发
Open UI5 前端开发框架配套的 Mock Server 工作原理解析
Open UI5 前端开发框架配套的 Mock Server 工作原理解析
11 0
|
4天前
|
存储 Java Go
Go 语言切片如何扩容?(全面解析原理和过程)
Go 语言切片如何扩容?(全面解析原理和过程)
13 2
|
4天前
|
机器学习/深度学习 存储 算法
卷积神经网络(CNN)的数学原理解析
卷积神经网络(CNN)的数学原理解析
33 1
卷积神经网络(CNN)的数学原理解析
|
4天前
|
传感器 数据采集 存储
岩土工程监测仪器之一:振弦采集仪的工作原理解析
岩土工程监测仪器之一:振弦采集仪的工作原理解析
岩土工程监测仪器之一:振弦采集仪的工作原理解析
|
4天前
|
XML JavaScript 数据格式
Beautiful Soup 库的工作原理基于解析器和 DOM(文档对象模型)树的概念
【5月更文挑战第10天】Beautiful Soup 使用解析器(如 html.parser, lxml, html5lib)解析HTML/XML文档,构建DOM树。它提供方法查询和操作DOM,如find(), find_all()查找元素,get_text(), get()提取信息。还能修改DOM,添加、修改或删除元素,并通过prettify()输出格式化字符串。它是处理网页数据的利器,尤其在处理不规则结构时。
38 2
|
4天前
|
存储 缓存 搜索推荐
深入理解Elasticsearch倒排索引原理与优化策略
总之,Elasticsearch的倒排索引是其高效全文搜索的核心。为了提高性能和可伸缩性,Elasticsearch采用了多种优化策略,包括压缩、分片、合并、位集合和近实时搜索等。这些策略使Elasticsearch成为处理大规模文本数据的强大工具。
13 0

相关产品

  • 检索分析服务 Elasticsearch版
  • 推荐镜像

    更多