EventBridge 最佳实践场景:流计算 Oceanus 告警消息实时推送
作者:腾讯云云函数团队产品经理 April
导语|本文演示了如何捕获流计算 Oceanus (Flink) 集群状态变更,并通过事件总线(EventBridge)发送到企业微信或钉钉、飞书客户端。
背景介绍
监控与报警系统对于业务生产环境来说是不可或缺的,一旦有故障发生,需要有完善的监控告警链路,保证告警消息可以实时完成推送并进行处理。
腾讯云事件总线(EventBridge)[1] 简称 EB,是一款安全、稳定、高效的无服务器事件管理平台。事件中心的事件总线可以接收来自您自己的应用程序、软件即服务(SaaS)和腾讯云服务的实时事件及相关数据流,通过集成消息推送和 SCF 云函数,可以实现邮件、短信、企业微信、钉钉、飞书等多种方式的通知。
流计算 Oceanus [2] 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点的企业级实时大数据分析平台。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。
通过结合事件总线 EventBridge + 云函数 SCF,可以实时捕获流计算 Oceanus 集群异常事件并完成推送,本文演示如何捕获流计算 Oceanus 集群状态变更,并发送到企业微信或钉钉、飞书客户端。推送到钉钉、飞书可通过云函数中调用对应产品接口或参考文章《基于千帆 iPass 完成事件到 IM 服务的推送》[3] 中的方式来实现。
架构设计
整体架构设计如下图,从图中可以看出,当 Oceanus 集群发生状态变更时(如实例异常,实例隔离,实例下线等), Oceanus 系统会产生告警事件并主动推送给 EB,经过 EB 绑定的告警规则筛选后,完成到指定目标的推送,并可以基于 SCF 云函数,推送给更多第三方服务。
操作步骤
登录 EventBridge 控制台[1],配置告警规则
以「流计算 Oceanus TaskManager CPU 负载过高」事件告警配置为例,您可以选择指定的事件告警类型,也可以选择全部告警事件,详细事件匹配规则请参见 管理事件规则[4]。
流计算 Oceanus 常见事件类型如下:
流计算作业失败
流计算快照失败
JobManager Pod 异常退出
TaskManager 背压较高
TaskManager CPU 负载过高
TaskManager Pod 异常退出
TaskManager Full GC 过久
配置推送目标
可以自由选择投递目标,此处以消息推送和云函数两个投递目标为例。
消息推送:通过配置消息推送,将您的告警事件推送至指定的消息接收渠道,完成用户及时触达。如果需要消息接收对象为子用户时,需 提前添加子用户[5] 并完成子用户的邮件、短信等接收渠道的验证才能正常收到消息推送。
云函数投递:事件总线支持通用 HTTP 协议的 webhook 直接投递,如果您的投递目标对于请求格式有严格要求,建议先通过云函数完成投递事件格式转换,再通过 EB 将原始事件直接发送给指定函数,完成推送链路搭建。
告警链路测试
配置完成后,回到事件集控制台,选择刚刚已绑定的事件集,单击发送事件,可以选择已绑定的事件规则模版,单击发送进行测试。
注:测试模版里只展示 data 字段里的内容,其它字段已固定,无法自定义修改。
配置完成后,即可在腾讯云事件总线控制台,完成告警规则的查看与管理。
短信告警效果
欢迎识别下方二维码,进入「流计算 Oceanus」技术交流群,和产品经理、技术爱好者一起探讨!
参考阅读
[1] 事件总线 https://console.cloud.tencent.com/eb
[2] 流计算 Oceanus https://cloud.tencent.com/product/oceanus
[3] 基于千帆 iPaaS 完成事件到 IM 服务推送 https://cloud.tencent.com/document/product/1359/64644
[4] 管理事件规则 https://cloud.tencent.com/document/product/1359/56084
[5] 添加子用户 https://cloud.tencent.com/document/product/598/54458
评论