CloudWatch告警增强-接入SLS开放告警-阿里云开发者社区

开发者社区> 码上得道> 正文

CloudWatch告警增强-接入SLS开放告警

简介: CloudWatch是AWS提供的可以用来实时监控AWS资源以及运行在AWS上的应用的一个服务,通过收集和跟踪指标数据来评估相关资源和应用程序,通过CloudWatch,用户可以全面直观地了解资源的使用情况已经应用程序的运行性能。通过下图可以看出,CloudWatch在AWS的安全体系中扮演着检测以及自动响应的角色。CloudWatch用来监控的功能是Alarms,创建一个Alarm意味着对某个资源或程序进行监控,如果监控的对象的指标数据处于异常状态,就会触发该Alarm,从而进行相应的行为。
+关注继续查看

CloudWatch介绍

CloudWatch是AWS提供的可以用来实时监控AWS资源以及运行在AWS上的应用的一个服务,通过收集和跟踪指标数据来评估相关资源和应用程序,通过CloudWatch,用户可以全面直观地了解资源的使用情况已经应用程序的运行性能。通过下图可以看出,CloudWatch在AWS的安全体系中扮演着检测以及自动响应的角色。CloudWatch用来监控的功能是Alarms,创建一个Alarm意味着对某个资源或程序进行监控,如果监控的对象的指标数据处于异常状态,就会触发该Alarm,从而进行相应的行为。常见的触发告警后的行为包括通过SNS(Simple Notification Service)发送告警消息,以及自动响应告警(例如服务器扩容、停止、重启以及记录事件等动作)。

image

如下图所示为CloudWatch的工作原理图,可以看出,CloudWatch的核心功能在于收集和管理各类指标数据,然后对于指标数据的用途有两种,一种是提供可观测的能力,一种是基于指标数据创建告警。指标数据的来源一般分为两种:

  • 自动为AWS资源创建指标数据。例如用户购买了EC2服务,那么在Metrics中就可以直接添加EC2的各种指标(如CPU使用率、磁盘使用率等)。
  • 用户手动生成指标数据。例如在CloudWatch中添加了某些日志,对于这些日志可以添加一个指标过滤器(如过滤事件类型为登录的操作),那么就可以对这些日志就可以得到对应的指标数据。

image

CloudWatch的基本告警类型有两种,分别是静态阈值告警和异常检测告警。静态阈值告警就是将指标数据与用户设定的阈值进行比较,超过该阈值就会触发告警;异常检测告警会根据历史指标数据使用机器学习的训练模型计算出指标数据的正常区间,如果指标数据超过了这个正常区间就会触发告警。创建一些常见的告警请参考AWS官方文档Using alarms

CloudWatch-Alarms使用

CloudWatch的Alarms的本质上是对指标数据的监控,因此对于某些资源和应用程序没有自动生成指标数据的话,就需要用户手动地创建出Metric,才能对其监控。下面将使用监控EC2的CPU使用率作为示例来演示如何使用CloudWatch的Alarms功能。

创建一个Alarm的步骤如下:

  1. 选择指标数据

如下图所示为选择了某个EC2的的CPU使用率指标数据后的图表。

image

选定了指标数据以后,就可以配置指标数据和触发条件了。指标数据的配置主要包括两点,一点是Statistic(统计方式),一点是Period(计算周期)。默认的统计方式是平均值,意味周期结束的指标值为一个计算周期内指标数据的平均值。下图所示是触发条件和高级设置。

image

可以阈值类型分为静态和异常检测两种。在高级配置中有个Datapoints to alarm,如果用户配置的是2 out of 3,那么意味着如果在3个计算周期内,有大于等于2个计算周的指标值是超过阈值的才会触发告警。

  1. 配置行动

行动包括四种,分别是:

  • Notification,指的是通过SNS发送告警通知,SNS支持邮件、短信、HTTP协议以及SQS(AWS的消息队列服务)。
  • Auto Scaling action,指的是在触发告警时可以自动扩容。
  • EC2 action,指的是触发告警时EC2的相关行为,如停止、重启。
  • Systems Manager action,指的是在系统管理中创建一个操作项或者事件。

image

  1. 添加描述

最后为该Alarm添加一个名称以及描述就可以成功创建该Alarm。

CloudWatch接入开放告警

CloudWatch在告警方面的优势在于自动响应告警,缺点在于对于通知管理的功能尤为薄弱,例如用户无法配置告警通知的内容,对于国内的通知渠道不完善(通知渠道不包含钉钉、企业微信等),以及不支持轮岗代班场景和动态发送告警通知等,因此,将Cloud Watch的告警消息接入SLS的开放告警,可以极大地增强其告警的能力。将CloudWatch告警接入开放告警的步骤如下:

  1. 创建一个SNS主题,然后为这个主题创建一个订阅,协议需要选择HTTP,Endpoint选择创建开放告警应用后生成的接口信息,并且勾选中Enable raw message delivery。创建好了订阅以后,SNS会为这个Endpoint发送一个携带确认链接的HTTP请求,(如果协议选择的是邮件,那么SNS会为配置的邮箱发送一个确认邮件,用户需要点击确认邮件中的链接才能完成订阅),SLS会自定访问HTTP请求中的确认订阅链接,完成订阅后,订阅会处于Confirm状态,如下图所示。

image

  1. 进入目标Alarm的编辑界面,在配置行动的步骤为,添加两个Notification,其中一个通知的Alarm state trigger配置为In alarmInsufficient data,表示告警处于对应的状态时,系统发送告警通知。另一个通知的Alarm state trigger配置为OK,表示告警恢复时,系统发送一条恢复通知。
  2. 完成Alarm的更新,在SLS中查看CloudWatch的告警消息。

总结

CloudWatch作为AWS上用于监控的一个服务,其检测异常以及自动响应的功能很强大,但是对于告警的通知管理功能比较薄弱,本质上是因为ClouWatch自身并不具备通知的功能,只能通过SNS服务来达到通知的目标。因此,将CloudWatch的告警消息接入到SLS中,就可以极大地增强其告警通知的功能,从而保证了用户能够稳定快速地解决问题。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
受疫情影响,世界最大手机展MWC首次停办,此前多家公司退展
因全球范围内新冠病毒疫情的爆发,GSMA 最终决定取消 2020 年的全球移动通信大会。多家手机厂商新品发布或受影响。
4 0
Dubbo的工作原理解析
Dubbo的工作原理解析
3 0
SAP Cloud SDK‘s Virtual Data Model
SAP Cloud SDK‘s Virtual Data Model
3 0
消息队列技术选型
消息队列技术选型
4 0
create PDF in console with no environment variable set
create PDF in console with no environment variable set
3 0
SAP S/4HANA: 一条代码线,许多种选择
SAP S/4HANA: 一条代码线,许多种选择
3 0
MyCat教程【mysql主从复制实现】
单个mysql数据库在处理业务的时候肯定是有限的,这时我们扩展数据库的第一种方式就是对数据库做读写分离(主从复制),本文我们就先来介绍下怎么来实现mysql的主从复制操作。
3 0
SAP HANA Database Explorer 里的 SQL 语句如何排错 trouble shoot
SAP HANA Database Explorer 里的 SQL 语句如何排错 trouble shoot
3 0
突破Java面试-如何保证消息消费时的幂等性?
突破Java面试-如何保证消息消费时的幂等性?
3 0
突破Java面试(8)-MQ的数据去哪了
突破Java面试(8)-MQ的数据去哪了
4 0
+关注
2
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载