直击运维痛点,大数据计算引擎 EasyMR 的监控告警设计优化之路
当企业的业务发展到一定的阶段时,在系统中引入监控告警系统来对系统/业务进行监控是必备的流程。没有监控或者没有一个好的监控,会导致开发人员无法快速判断系统是否健康;告警的实质则是“把人当服务用”,用告警通知人的方式去干预系统达到修正的目的。
监控告警在企业保障系统的稳定性和事故快速恢复的全周期链路中都是至关重要的一环。在新版本的 EasyMR 中袋鼠云开发团队也对监控告警功能进行了全新的优化,通过本文和大家分享一下监控告警功能的设计思路以及碰到各类问题痛点的解决方法。
EasyMR 监控告警设计
对于 EasyMR 的监控告警设计思路,考虑到 Zabbix 后端数据库使用 MySQL 对监控数据进行存储,无法满足多维度化的告警。而 openfalcon 整体架构上吸取了 Zabbix 的经验,解决了 Zabbix 的不足之处,但是社区活跃度不高。
所以我们选择了集成 Prometheus+Grafana 的解决方案搭建 EasyMR 的监控系统,这套解决方案是目前主流的方案,使用的人群较多,在推广使用上会降低门槛而且容易维护,也适合袋鼠云平台的容器化部署。整体架构图如下:

首先我们在这套平台的基础上增加了一个 dt-alert 组件用来对接第三方的告警发送的处理,其次我们对 Grafana 进行了少量的二次开发。开发的内容主要在于打通 EasyMR 平台的告警通道和 Grafana 上的通道的对接,平台接入好主机和部署好服务后 Prometheus 就能通过服务发现的方式完成目标抓取作业的生成获取监控数据。
Grafana 从 Prometheus 中获取指标数据进行展示,同时触发告警时将告警内容发到 dt-alert 组件中,dt-alert 组件将告警信息发往第三方平台上。
EasyMR 监控告警痛点
基于上述告警监控的解决方案是否就是一个非常完美的方案呢,答案当然是否定的,接下来我们就讨论一下在使用此方案的过程中遇到的问题和痛点:
● 低版本 Grafana 漏洞频发
低版本 Grafana 漏洞频发,导致平台安全问题受到很大的挑战。漏洞是指计算机系统安全方面的缺陷,会使得系统或其应用数据的保密性、完整性、可用性、访问控制等方面面临威胁。由于早期版本的 EasyMR 是基于 Grafana5.3 版本做的二次开发,所以被扫描出来的漏洞非常多,遇到相应漏洞时只能想办法规避。
● 缺少分级告警
缺少分级告警,无法区分不同严重程度的告警。对于运维人员来说,监控告警是用来发现故障用的,但是存在一个问题,如果一个系统中所有的告警都是同一个级别,那么出现问题时,可能会同时出现很多的告警,告警没有分级不光会造成告警过多,还会让开发人员无法区分优先级,导致无法优先处理更紧急的问题。
● 无法对同一个仪表盘设置多条告警规则
由于我们是使用 Grafana 来设置告警规则,在老版本中同一个 panel 只能设置一条告警规则,如果我们想针对同一个监控指标设置多个告警规则的话只能新建一个相同指标的 panel 再设置新的告警规则,这在使用上来说是非常不便利的。
EasyMR 监控告警优化解决方案
基于以上三点痛点,袋鼠云开发团队在新版本的 EasyMR 中,将 Grafana 版本从 5.3.x 升级到了 8.5.x,新版本可以非常顺利地解决上述问题。基于新版本的二开前后端为了将 Grafana 很好的嵌入 EasyMR 产品页面中,做了很多的优化工作,包括但不限于隐藏侧边栏、隐藏 Grafana 一级菜单、取消 title 点击事件隐藏相关信息等等。
● 优化前

● 优化后

如何配置 EasyMR 新版本告警规则
接下来给大家详细介绍一下如何配置新版本 EasyMR 的告警规则。
● 选中仪表盘
选择仪表盘,以 cpu_usage 告警为例,选中 Host_Overview。

● 选中面板
在 System->cpu_usage 面板中点击下拉菜单,选中 Edit 选项。

● 创建告警
选中 Alert 项,点击创建告警规则。

编辑告警规则,告警参数参考如下模板,参数确认无误后点击保存。


● 自定义告警模板
以 Redis 告警为例,在 Prometheus 查询的值为:

自定义模板可以引用标签和值变量:

钉钉告警示例如下:

《数栈产品白皮书》:https://www.dtstack.com/resources/1004?src=szsm
《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001?src=szsm
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szbky
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:https://github.com/DTStack
直击运维痛点,大数据计算引擎 EasyMR 的监控告警设计优化之路的更多相关文章
- Apache Flink 为什么能够成为新一代大数据计算引擎?
众所周知,Apache Flink(以下简称 Flink)最早诞生于欧洲,2014 年由其创始团队捐赠给 Apache 基金会.如同其他诞生之初的项目,它新鲜,它开源,它适应了快速转的世界中更重视的速 ...
- 大数据计算引擎之Flink Flink CEP复杂事件编程
原文地址: 大数据计算引擎之Flink Flink CEP复杂事件编程 复杂事件编程(CEP)是一种基于流处理的技术,将系统数据看作不同类型的事件,通过分析事件之间的关系,建立不同的时事件系序列库,并 ...
- 揭秘阿里云EB级大数据计算引擎MaxCompute
日前,全球权威咨询与服务机构Forrester发布了<The Forrester WaveTM: Cloud Data Warehouse, Q4 2018>报告.这是Forrester ...
- 大数据计算引擎之Flink Flink状态管理和容错
这里将介绍Flink对有状态计算的支持,其中包括状态计算和无状态计算的区别,以及在Flink中支持的不同状态类型,分别有 Keyed State 和 Operator State .另外针对状态数据的 ...
- 什么是大数据计算服务MaxCompute
大数据计算服务(MaxCompute,原名ODPS)是一种快速.完全托管的EB级数据仓库解决方案. 当今社会数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(百 ...
- Facebook 正式开源其大数据查询引擎 Presto
Facebook 正式宣布开源 Presto —— 数据查询引擎,可对250PB以上的数据进行快速地交互式分析.该项目始于 2012 年秋季开始开发,目前该项目已经在超过 1000 名 Faceboo ...
- 大数据计算框架Hadoop, Spark和MPI
转自:https://www.cnblogs.com/reed/p/7730338.html 今天做题,其中一道是 请简要描述一下Hadoop, Spark, MPI三种计算框架的特点以及分别适用于什 ...
- 海胜专访--MaxCompute 与大数据查询引擎的技术和故事
摘要:在2019大数据技术公开课第一季<技术人生专访>中,阿里巴巴云计算平台高级技术专家苑海胜为大家分享了<MaxCompute 与大数据查询引擎的技术和故事>,主要介绍了Ma ...
- 大数据计算平台Spark内核解读
1.Spark介绍 Spark是起源于美国加州大学伯克利分校AMPLab的大数据计算平台,在2010年开源,目前是Apache软件基金会的顶级项目.随着 Spark在大数据计算领域的暂露头角,越来越多 ...
- 大数据计算:如何仅用1.5KB内存为十亿对象计数
大数据计算:如何仅用1.5KB内存为十亿对象计数 Big Data Counting: How To Count A Billion Distinct Objects Using Only 1.5K ...
随机推荐
- SpringBoot应用调用Linkis进行任务调度执行SQl;进行数据质量分析
基于Linkis的Rest-API调用任务 官网示例:"https://linkis.apache.org/zh-CN/docs/1.3.2/api/linkis-task-operator ...
- 简单实现Android的本地文件读写,暨将List数据保存到Json文件中并读出
一.让我们从引入依赖开始 //将这两行代码添加到以上位置,其他的一般不用管 implementation 'com.google.code.gson:gson:2.8.5' implementatio ...
- ubuntu 22.04安装docker
一.安装 更新软件包索引: sudo apt-get update 允许APT使用HTTPS: sudo apt-get install -y apt-transport-https ca-certi ...
- 老生再谈 IoC
IoC,Spring的核心理念之一,确实这是一个老生常谈的东西.但是今天呢!又重新温习之后,想再说说自己对IOC的一些想法. IoC--Inversion of Control,控制反转.要想理解Io ...
- restTemplate 使用问题小记
使用restTemplate在后端进行接口转发, 期间包括文件上传, 预览和下载. 还有一些字符串或css/js文件的读取. 1. 文件上传 参考: RestTemplate转发MultipartFi ...
- MySQL 中有哪些锁类型?
MySQL 中有哪些锁类型? 在 MySQL 中,锁是用于管理并发访问的机制,以保证数据一致性和完整性.MySQL 支持多种类型的锁,按照其粒度和用途可以分为以下几类. 1. 按粒度分类 表锁(Tab ...
- Linux 给用户 赋某个文件夹操作的权限(实现三权分立)
Linux 给用户 赋某个文件夹操作的权限 这里用的ubuntu16.04 一.配置网站管理员 linux文件或目录的权限分为,读.写.可执行三种权限.文件访问的用户类别分为,文件创建者.与文件创建者 ...
- jsp页面的跳转
服务器端和客户端跳转 服务器端跳转不改变URL,服务器的行为 客户端跳转改变URL,客户端的行为 项目目录 index.jsp <%@ page language="java" ...
- springboot加载配置文件的优先级
如果springboot有多个配置文件,则加载顺序为项目根路径下的/config > 项目根路径 > resources/config > resources目录下 图示: 如果两个 ...
- C#/.NET/.NET Core优秀项目和框架2025年4月简报
前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的详细介绍.功能特点.使用方式以及部分功能 ...