当企业的业务发展到一定的阶段时,在系统中引入监控告警系统来对系统/业务进行监控是必备的流程。没有监控或者没有一个好的监控,会导致开发人员无法快速判断系统是否健康;告警的实质则是“把人当服务用”,用告警通知人的方式去干预系统达到修正的目的。

监控告警在企业保障系统的稳定性和事故快速恢复的全周期链路中都是至关重要的一环。在新版本的 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 的监控告警设计优化之路的更多相关文章

  1. Apache Flink 为什么能够成为新一代大数据计算引擎?

    众所周知,Apache Flink(以下简称 Flink)最早诞生于欧洲,2014 年由其创始团队捐赠给 Apache 基金会.如同其他诞生之初的项目,它新鲜,它开源,它适应了快速转的世界中更重视的速 ...

  2. 大数据计算引擎之Flink Flink CEP复杂事件编程

    原文地址: 大数据计算引擎之Flink Flink CEP复杂事件编程 复杂事件编程(CEP)是一种基于流处理的技术,将系统数据看作不同类型的事件,通过分析事件之间的关系,建立不同的时事件系序列库,并 ...

  3. 揭秘阿里云EB级大数据计算引擎MaxCompute

    日前,全球权威咨询与服务机构Forrester发布了<The Forrester WaveTM: Cloud Data Warehouse, Q4 2018>报告.这是Forrester ...

  4. 大数据计算引擎之Flink Flink状态管理和容错

    这里将介绍Flink对有状态计算的支持,其中包括状态计算和无状态计算的区别,以及在Flink中支持的不同状态类型,分别有 Keyed State 和 Operator State .另外针对状态数据的 ...

  5. 什么是大数据计算服务MaxCompute

    大数据计算服务(MaxCompute,原名ODPS)是一种快速.完全托管的EB级数据仓库解决方案. 当今社会数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(百 ...

  6. Facebook 正式开源其大数据查询引擎 Presto

    Facebook 正式宣布开源 Presto —— 数据查询引擎,可对250PB以上的数据进行快速地交互式分析.该项目始于 2012 年秋季开始开发,目前该项目已经在超过 1000 名 Faceboo ...

  7. 大数据计算框架Hadoop, Spark和MPI

    转自:https://www.cnblogs.com/reed/p/7730338.html 今天做题,其中一道是 请简要描述一下Hadoop, Spark, MPI三种计算框架的特点以及分别适用于什 ...

  8. 海胜专访--MaxCompute 与大数据查询引擎的技术和故事

    摘要:在2019大数据技术公开课第一季<技术人生专访>中,阿里巴巴云计算平台高级技术专家苑海胜为大家分享了<MaxCompute 与大数据查询引擎的技术和故事>,主要介绍了Ma ...

  9. 大数据计算平台Spark内核解读

    1.Spark介绍 Spark是起源于美国加州大学伯克利分校AMPLab的大数据计算平台,在2010年开源,目前是Apache软件基金会的顶级项目.随着 Spark在大数据计算领域的暂露头角,越来越多 ...

  10. 大数据计算:如何仅用1.5KB内存为十亿对象计数

    大数据计算:如何仅用1.5KB内存为十亿对象计数  Big Data Counting: How To Count A Billion Distinct Objects Using Only 1.5K ...

随机推荐

  1. Redis 相关

    高并发多机的时候,虽然有失效时间,但还是会有短时间内缓存和数据库数据不一致(读操作不需要特殊操作),更新操作的时候先删除缓存,再更新数据库先更新数据库,再删除缓存原子性破坏,增加队列重试 先删除缓存, ...

  2. 【Linux】3.5 实用指令

    实用指令 1. 指定运行级别(7个级别) 0.关机[一旦开机它就会执行关机] 1.单用户[找回丢失密码] 2.多用户状态没有网络服务 3.多用户状态有网络服务 4.系统未使用保留给用户 5.图形界面 ...

  3. Python字典及基本操作(超级详细)

    今天小张帮大家简单介绍下Python的一种数据结构: 字典,字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 比如有份成绩表数据,语文:79,数学:80,英语:92,这组 ...

  4. Clion配置Fortran环境

    1.安装CLion 下载链接:https://www.jetbrains.com/ 下载好后安装到指定目录即可 2.安装Fortran插件 3.编写程序 1)打开CLion,新建一个Fortran项目 ...

  5. PC端自动化测试实战教程-2-pywinauto 启动PC端应用程序 - 上篇(详细教程)

    1.简介 经过上一篇的学习.介绍和了解,想必小伙伴或者童鞋们,已经见识到pywinauto的强大了,今天继续介绍pywinauto,上一篇已经可以打开计算器了,这里宏哥在提供其他方法进行打开计算器和非 ...

  6. python爬虫,beatifulsop获取标签属性值(取值)案例

    前面的案例里,均采用正则匹配的方式取值 title = re.findall('">(.*?)</a>', i, re.S)[0]#标题 url = re.findall( ...

  7. symfony5初体验:doctrine、配置、文件上传、jwt登录/auth等常见问题

    之前用symfony3.4,最近上手symfony5发现加入了很多新特性,搭配easyadminBundle.api-platform这些用起来感觉简直如有神助,瞬间爱了. 不过api-platfor ...

  8. 【经验】Ubuntu20.04虚拟机的网络问题|在NAT模式没有网络连接图标,桥接模式正常

    我的版本:Ubuntu20.04.04,iso是清华镜像站的release版本. 问题:NAT模式没有网络连接图标,或者图标闪一下就消失不见,并且无法获取IP地址:但是桥接模式的网络服务却是正常的. ...

  9. 【MOOC】华中科技大学计算机组成原理慕课答案-第一章-计算机系统概论

    单选 1 计算机硬件能直接执行的是 B A. 高级语言 B. 机器语言 C. 汇编语言 D. 任何语言 用汇编语言编写的程序,计算机是不能直接识别和执行的:必须先把汇编语言源程序翻译成机器语言程序(即 ...

  10. T+常用数据表参考

    AA_表 基础档案     AA_Partner  客户   EAP_表    设置表 ST_表  库存 SA_表  销售 PU_表  采购     销售订单 销货单表 SA_SaleDelivery ...