通过云监控CloudMonitor实时捕获EMR集群的状态变化

1

引言

开源大数据平台 E-MapReduce(简称“EMR”)是云原生开源大数据平台,向客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎。

云监控(简称“CloudMonitor”)是一项针对阿里云资源和互联网应用进行监控的服务,为云上用户提供开箱即用的企业级开放型一站式监控解决方案。

函数计算(简称“FC”)是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码或镜像。函数计算为您准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。

通过结合CloudMonitor以及FC,可以实时捕获EMR集群的生命周期变化,如集群的创建和停止,扩容和缩容以及其他类型的集群状态变更等。

本文演示如何捕获EMR集群状态变更(我们以杭州区域为例)并发送到当前常用的“钉钉”手机客户端,其他服务场景请酌情参考。

2

关键字

E-MapReduce,CloudMonitor,函数计算,事件通知,钉钉

3

处理流程:

这是我们设计的EMR实时状态在各个产品之间传递链路图,从图上可以看出,当EMR发生状态变更时(如启动集群,停止集群,创建节点组,对节点组进行扩缩容操作等)系统会产生事件,事件消息送到CMS后会触发告警,CMS支持函数计算FC,告警触发后会触发我们准备好的FC函数,从而解析JSON格式的消息内容并发送给“钉钉”手机客户端(客户也可以基于公司内部的聊天工具进行集成,或者定义下一步的操作,从而实现基于事件的自动化告警处理和运维等,关于这一块,本文章暂不做延展说明)。

53a1c251b65ffc1e46d53969fa3cd405.png

4

钉钉配置

配置钉钉群机器人必须使用电脑版的钉钉,登录电脑版钉钉创建钉钉群(此过程略,例如创建后的群名为!!!APM告警),然后点击群右上角的“设置”,然后点击“智能群助手”,如下图所示:

19835c9660278dd721462d704460a2b3.png

然后选择“添加机器人”,如下图所示:

4b68d7b0c01d702a8a1d86632f7c0d41.png

添加关键字“E-MapR”,其他关键字可自行添加,如下图所示:

0f9d4c04a6c77b83f6e72b260d2b4b78.png

在接下来的页面中会出现一个Webhook调用的URL,点击“复制”,类似如下

https://oapi.dingtalk.com/robot/send?access_token=aabbccdd

后面我们设置环境变量的时候将用到这一串aabbccdd

75699cddad74a9eb1eab0b43bdf61cc4.png

5

函数计算配置

打开函数计算FC的控制台(https://common-buy.aliyun.com/package?planCode=package_activatefc_cn),选择左侧菜单的“服务与函数”,然后在右边的窗口中选择“创建服务”,如下图所示:

81378d6bec1e2b8447cb29bacd34f973.png38bdba1aa521d5d9ba30964157251605.png

创建后点击进入服务,随后点击右侧窗口“创建函数”,如下图所示:

2a5b793bb819ebd20ee7cab1f098f76a.png

选择“通过zip包上传代码”,其中代码的详细地址如下(也可以手工下载此文件,然后从本地上传):

https://emr.oss-cn-hangzhou.aliyuncs.com/best_practice/cms/function_ding.zip

上传后,在代码TOKEN处填写创建的钉钉机器人token,如下图所示:

a9a95ebbca368138156b1a2c1afd390a.png

保存后点击部署代码,如果没有报错,表示部署成功。

6

云监控配置

打开云监控的控制台(https://cloudmonitor.console.aliyun.com/system-events?spm=a2c6h.12873639.article-detail.7.a1dc31043FWjNl),选择左侧菜单的“系统事件”,然后在右边的窗口中选择“创建报警规则”,如下图所示:

2ca74dfa9fc4ce095d9e18231b113ad3.png

弹出创建窗口后,在产品类型处填写“E-MapReduce”,事件名称填写“节点组扩缩容成功、集群创建成功、集群释放成功、节点组升配成功”为例,资源范围选择“全部资源”(也可以选择应用分组选择您想要监控的集群id),选择函数计算并选择之前配置的服务和函数名,如下图所示:


b7a9743506fb6ad7440e2854f2345ca3.png

点击确认后,完成配置,并确保规则生效,如图所示:

38a5bdde5eefdca0f452f1df982a5b75.png

7

测试验证

打开EMR的控制台(https://emr-next.console.aliyun.com/?spm=a2c6h.12873639.article-detail.8.a1dc31043FWjNl#/region/cn-hangzhou/resource/all/overview),部署一个DataLake的EMR集群即可(过程略)。

正确返回

因为订阅了创建事件,我们的手机客户端就可以收到类似如下的消息提醒(集群状态 STARTING-> RUNNING),如下图所示:

33f8f82412f24a17d4f6ce1012b31b5a.png

错误诊断

如果启动集群过程中并没有收到对应的提醒,请首先确认对应的环境,查看函数计算中函数调用日志有没有错误,如下图所示:

3093f3a4942a8bea43747afa27e9d49f.png

8

扩展

经过上面的文档指引和动手实验,我们基于EMR集群的生命周期管理(如集群创建,停止,集群扩缩,缩容等)都会有对应提醒,其实只需要修改文件“function_ding.zip”里面对应的解析的JSON文件的内容,这个流程可以复制到别的场景,例如ECS的相关操作。

除了钉钉告警之外,还有更多的用法,比如将数据写入oss,写入数据库等等,期待您的使用。


钉钉扫码进群,了解更多详情

1d65524674a7baf7121202a1ff60ac86.png

点击「阅读原文」查看原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值