两招玩转阿里云系统事件监控
背景介绍
在当今快速发展的两招数字化时代,IT 系统和应用程序对业务运营至关重要 。玩转为了确保顺畅的阿里性能、可靠性和安全性 ,云系IT 团队依靠监控事件来实时检测、统事分析和响应问题 。两招监控事件是玩转指任何影响 IT 系统正常运作的事件,例如服务器崩溃、阿里网络中断或应用程序错误。云系这些事件可能对业务连续性 、统事客户满意度和收入产生重大影响。两招具体来说,玩转作为阿里云监控系统中的源码下载阿里重要组成部分,与监控指标不同 ,云系监控指标一般指一种数值型的统事监控纬度,一般需要配合设置阈值来进行监控来表达某一个监控含义,比如 CPU 使用率超过 60%。但是系统事件一般情况下具有完备的上下文信息 ,在阿里云体系中常用以描述服务的状态或者状态变化,常见如以下场景 :
1. 系统运行中的一些关键状态事件 ,比如 ECS 系统错误重启 、弹性伸缩失败、IOT QPS 达到上限。亿华云
2. 记录和审计 ,比如投递 OSS 失败。
3. 系统连续性问题,比如 DDos 黑洞进行中。
4. 重要安全事件,比如 安全告警 :异常网络连接(提醒)。
目前大部分的云服务服务已经完成接入云监控,具体详情可以参加下面文档 :https://help.aliyun.com/zh/cms/user-guide/appendix-2-system-events?spm=5176.2020520111.console-base_help.dexternal.3d6d6610UEXzUw#concept-2500373
监控好这些系统事件对于用户是一件非常重要的事情。
云监控事件订阅设计初衷
在系统事件订阅功能上线之前,云监控是通过设置报警规则来实现对系统事件的监控,但是源码库在使用中,慢慢透露出一些不足 ,包括 :监控方式的不灵活 、不能支持黑名单、通知内容格式僵化等等 。通过对之前的用户需求分析 ,我们设计了新的云监控事件订阅用来以实现以下功能 :
1. 通过灵活的订阅配置,支持系统事件或阈值事件 ,支持从产品 、事件级别、事件名称 、事件资源,香港云服务器事件内容的筛选;支持筛选的黑白名单操作等等;
2. 通过分组合并降噪 ,可以实现产品级,事件级 ,资源级等等级别的报警合并 ,然后通过条件降噪(固定时长内发生超过某个阈值事件数量)来控制报警的有效性,避免大量重复报警造成报警风暴;
3. 对于合并降噪后的有效报警通知 ,云监控可以直接推送到邮件、电话 、短信、钉钉、企业微信等
4. 支持通过灵活定制通知模版来满足用户自身的免费模板业务需求,用户可以通过配置自己的模版 ,来实现个性化的通知格式定制;
5. 定制了自定义的通知模版,可以在订阅规则上通过自定义通知方式 ,给具体的通知渠道指定通知的级别和模板;
6. 还可以通过通知模板自定义推送的数据格式,通过我们在集成与推送 ,直接讲报警数据转换为用户需要的格式,推送到消息服务 MNS 、日志服务 SLS 、建站模板函数计算 FC 和 Webhook 。
典型云监控场景介绍
下面,我们通过两个典型的用户场景来介绍如何使用云监控事件订阅 :场景 1:多运维团队场景1. 用户使用了阿里云 ECS RDS REDIS SLB 等云服务;
2. 用户有两个独立运维团队 ,分别运维 ECS SLB 和 RDS REDIS;
3. 用户希望监控每个团队监控团队自己独立的服务;
4. 对于紧急的电话报警,两个团队需要相互 backup,当一个团队电话打不通的时候,通知另外一个团队;
5. 需要排除掉一些预发和测试环境的实例。
具体的操作步骤如下 :
1. 进入事件中心界面,点击创建订阅策略。
图片
2. 在弹出的窗口中 ,按照需求设置我们的订阅配置。
图片
我们这里设置了订阅的说明如下:
1 ) 范围是 ECS 和 RDS 的所有 CRTICAL 级别事件 ,再排除掉其中的测试和预发的相关资源(根据资源名称排除);
2) 订阅好的报警,我们希望按照不同的产品来进行合并通知,这样 RDS 的事件和 ECS 的事件会被作为独立的报警发送通知给用户;
3) 设置了 5 分钟内,每个产品(我们选择的合并字段)下需要连续收到 5 个事件才会通知 ,通知一次之后 5 分钟内不再重复通知。
3. 设置好了订阅配置 ,下面我们来配置通知。
图片
在下面的通知配置中,我们可以选择已经有的通知配置 ,也可以选择创建一个新的通知配置 ,这里我们以创建新的通知配置为例,点击创建通知配置之后 ,弹出如下对话框:
图片
最简单的情况 ,我们可以直接选择通知到某一个组。
对于一些非常关键的报警,为了防止电话拨打没有接通的情况 ,我们还可以配置电话报警备选通知组,当上面配置的所有电话报警联系人都没有接通电话的情况下 ,将按照定义的备份电话报警联系组顺序 ,每三分钟逐个通知备份电话联系组 ,直到电话接通或者所有备份联系组都通知完成。
如果用户需要按照不同严重级别发送给不同的人,也可以选择按照严重级别独立通知联系组 ,如下图 :
图片
4. 设置好了通知接受对象后,我们还可以继续对通知方式进行定制 。
如果用户希望对于报警方式进行进一步的定制,可以通过自定义通知方式来实现。
图片
这里,我们可以对报警通知的消息模版进行选择 ,可以定义每个报警级别通知的渠道,来实现用户定制化报警的需求。
5. 设置好了通知后,如果对于一些报警 ,我们希望推送到我们自己的系统中,我们可以使用推送和集成来进行配置 。
图片
点击添加渠道 ,在弹出的对话框中选择我们对应的渠道进行推送,我们这里以 webhook 为例。
图片
通过设置具体的推送目标和方式 ,可以实现数据推送到用户服务的需求 。
6. 到这里订阅和通知的配置基本就完成了 ,但是用户如果有需要自定义通知模板的情况 ,来满足自定义的通知需求,配置通知模版的方式如下 :
进入通知模版界面,点击创建通知模版。
图片
模板配置相对比较复杂,建议参考我们预先提供的模板 ,在基础上修改 ,然后通过我们的预览功能来验证配置模版是否符合预期,预览完成后,还可以用右上角的小飞机按钮来发送一次测试通知,最终效果发送到用户的真实接收方来验证最终效果 。
模版修改好后,可以在订阅界面的自定义通知方式的位置 ,修改通知方式,然后选择通知模版即可 。
图片
应用分组是云监控里面的一个重要监控概念 ,用来描述一组有关联的云资源 ,比如 ECS 实例、RDS 实例 、SLB 实例等 。应用分组可以监控应用组中资源的状态 ,当资源状态发生变化时 ,应用组会收到通知 。我们就以应用组为例 ,介绍如何使用应用组监控阿里云系统事件 。
进入云资源监控 -> 应用分组
然后点击你需要进行监控的分组,出现如下界面:
图片
1. 先设置这个分组的联系人组;
2. 点击开启系统事件订阅;
两步操作,非常简单 。至此,一个最简单的应用分组订阅已经完成 ,它会监控当前分组下资源上报的所有 CRTICAL 和 WARNING 的资源,并通知设置的联系组。
3. 如果我们还需要把事件推送到用户服务 ,通过点击事件订阅后的通知详情,然后在弹出窗口中添加渠道即可把已经定义好的推送渠道引用进来。
图片
写在最后
上面是两种典型的订阅系统事件的场景介绍 ,在这个场景的基础上,用户可以扩展到自己的场景中 ,来实现灵活的订阅通知能力 ,通过我们的模版 ,订阅来满足自己的监控需求 。