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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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)发送告警消息,以及自动响应告警(例如服务器扩容、停止、重启以及记录事件等动作)。

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

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

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

CloudWatch-Alarms使用

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

创建一个Alarm的步骤如下:

  1. 选择指标数据

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

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

可以阈值类型分为静态和异常检测两种。在高级配置中有个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,指的是在系统管理中创建一个操作项或者事件。

  1. 添加描述

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

CloudWatch接入开放告警

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

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

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

总结

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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5月前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之sls日志告警调用函数计算,出现抛出的结果异常,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
存储 运维 Serverless
函数计算产品使用问题之日志告警不生效,一般是由于什么造成的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
JSON Prometheus Cloud Native
Grafana 系列 -Loki- 基于日志实现告警
Grafana 系列 -Loki- 基于日志实现告警
|
6月前
|
机器学习/深度学习 运维 监控
用SLS配置日志关键字告警的N种方法
本文由日志关键词告警出发,介绍了使用SLS进行关键词监控告警配置,并且介绍了几种常见的配置方法,可以覆盖关键词监控的大部分场景。
349 0
用SLS配置日志关键字告警的N种方法
|
6月前
|
存储 运维 监控
使用Terraform玩转SLS告警
本文主要介绍使用Terraform来操作SLS告警监控,告警管理。
104 0
使用Terraform玩转SLS告警
|
6月前
|
运维 监控 安全
SLS相同监控规则太多?试试告警监控模板
本文主要介绍了SLS自定义告警监控模板的使用场景以及最佳实践。
138 0
SLS相同监控规则太多?试试告警监控模板
|
6月前
|
SQL 监控 关系型数据库
基于日志服务实现PolarDB秒级监控告警实践
数据复用场景。SLS统一平台利用一份数据发掘出多个use case,让数据发挥其最大价值。
119 0
基于日志服务实现PolarDB秒级监控告警实践
|
26天前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
165 3
|
26天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1602 14
|
22天前
|
Python
log日志学习
【10月更文挑战第9天】 python处理log打印模块log的使用和介绍
20 0