亚马逊AWS官方博客

Tag: Amazon CloudWatch

全新 – Amazon CloudWatch 高精度自定义指标和警报

Amazon CloudWatch 自 2009 年年初以来一直是 AWS 的重要组成部分。CloudWatch 与 Auto Scaling 和 Elastic Load Balancing 三个产品包组合在一起发布,它已发展成为功能极强、面向 AWS 云中运行的 AWS 资源和应用程序的监控服务。CloudWatch 自定义指标 (早在 2011 年发布) 可用在 CloudWatch 中存储业务和应用程序指标、以图形方式查看这些指标,并基于 CloudWatch 警报启动操作。不用说,这些年来,我们的 CloudWatch 增强了很多的功能!最近的一些增强功能包括延长指标保留期 (以及一项用户界面更新)、控制面板、控制面板 API/CloudFormation 支持以及控制面板上的警报。 一开始,指标是按照五分钟的时间间隔存储的;后来,在 2010 年,应客户请求缩短到一分钟 (也称为详细监控)。这是一个广受欢迎的改变,但现在我们可以做得更好。我们的客户在流式传输视频、开展限时抢购、每天上百次部署代码,并随着情况的变化非常快速地扩展和缩减应用程序。对于所有这些情况,一分钟为时间间隔还是太长了。这样有可能错过重要的瞬间高峰;分散 (然而事实上相关) 的事件难以跨越时间进行关联,并且在发生故障时的 MTTR (平均修复时间) 过高。 全新的高精度指标 今天,我们将增加对高精度自定义指标的支持,我们还计划以后逐渐增加对 AWS 服务的支持。现在您的应用程序可以以 1 秒的精度将指标发布到 CloudWatch。在发布指标数秒后您就可以在屏幕上滚动查看这些指标,您还可以设置高精度 CloudWatch 警报,可以精细到每 10 秒评估一次。 想象一下可用内存较少时发出警报。这通常是一种瞬时的情况,如果取样不够频繁,将很难捕获到。使用高精度指标,您可以在数秒内查看、检测 (通过警报) […]

Read More

新功能- Collectd的Amazon CloudWatch插件

原文:https://aws.amazon.com/blogs/aws/new-cloudwatch-plugin-for-collectd/ 作者:Jeff Barr 我在2011年已介绍过Cloud Watch的特性,“您可以在Cloud Watch中查看图表、设置告警、并根据这些指标启动自动化操作,所使用的这些AWS资源指标会被存储于Cloud Watch中 。”您目前已有能力在Amazon Cloud Watch中存储一段时间范围内的业务、应用及系统的指标数据(参阅“Amazon Cloud Watch定制新指标”了解更多信息)。 今天我们将简化系统统计信息的采集过程,使用一个新的 CloudWatch plug for colletd将采集数据发送至CloudWatch中 。并通过collectd 多种类型信息的统计采集能力与cloudwatch存储、展示、警报和告警的功能的整合,您可以更好地获取EC2实例、本地硬件以及运行于其上应用程序的运行状态及其性能信息。该插件已经作为一个开源项目发布,我们期待您的反馈。 Collectd守护进程采用C语言编写,具有高性能和可移植性。它支持上百个插件 ,允许您收集有关Apache、Nginx Web服务器性能统计数据、memory usage 、 uptime等信息。 安装与配置 为了演示这些功能,我在EC2实例上安装并配置了Collectd服务及新Cloudwatch插件。 首先我创建了一条IAM策略,它具备将指标数据写入CloudWatch的权限: 然后我创建了一个IAM角色,允许EC2(运行collectd程序的实例)使用上述所建的策略: 如果我计划使用Collectd 插件从本地服务器或运行中的EC2实例收集统计信息,那请跳过这些步骤,采用创建一个具有适当权限的IAM用户作为替代方法。在我完成上述工作后,会将该用户的证书放在本地服务器或EC2实例中。 在策略和角色配置完毕后,选择该角色来启动一个EC2实例 登录并安装Collectd : $ sudo yum -y install collectd 然后获取插件和安装脚本,设置脚本为可执行,并运行该脚本: $ chmod a+x setup.py $ sudo ./setup.py 回答一些交互问题确认安装过程无误,在完成配置之后就可启动Collectd : Installing dependencies … OK Installing […]

Read More

新增 – 面向 Amazon CloudWatch 控制面板的 API 和 CloudFormation 支持

我们在几年前发布了 CloudWatch 控制面板。在专为这次发布撰写的文章中,我介绍了如何以交互方式创建控制面板,以便以图形形式显示所选的 CloudWatch 指标。发布之后,我们增加了其他功能,包括全屏模式、深色主题、控制 Y 轴的范围、简化的重命名、持久性存储和新的可视化选项。 新 API 和 CLI 虽然控制台支持非常有利于交互式使用,但许多客户要求我们提供对控制面板及其中小部件的编程式创建和操作的支持。这些客户想要动态构建和维护控制面板,从而在创建和销毁相应的 AWS 资源时添加和删除小部件。其他客户则希望在两个或多个 AWS 账户中设置和维护一组一致的控制面板。 我非常高兴地宣布,面向 CloudWatch 控制面板的 API、CLI 和 AWS CloudFormation 支持现已推出,您可以立即开始使用! 我们新增了四个 API 函数 (和等效的 CLI 命令): ListDashboards / aws cloudwatch list-dashboards – 用于提取账户内所有控制面板的列表,或共享通用前缀的子集。 GetDashboard / aws cloudwatch get-dashboard – 用于提取单个控制面板的详细信息。 PutDashboard / aws cloudwatch put-dashboard – 用于创建新控制面板或更新现有控制面板。 DeleteDashboards / aws cloudwatch […]

Read More

利用Amazon CloudWatch 搭建无人值守的监控预警平台

资源与应用服务层监控 Amazon CloudWatch 监控和预警平台可以帮助客户统一管理和运维AWS云端和本地资源、服务和业务系统;使用 Amazon CloudWatch 可以收集和跟踪指标,收集和监控日志文件,设置警报。您可通过使用 Amazon CloudWatch 全面地了解资源使用率、应用程序性能和运行状况。使用这些分析结果,您可以及时做出反应,保证应用程序顺畅运行。 Amazon CloudWatch 的基本概念 请参考AWS 官方文档了解 Amazon CloudWatch的核心概念和术语,比如指标、命名空间、维度、时间戳、单位、统计数据、时间段、聚合、警报等。 基于CloudWatch 的监控预警平台架构 CloudWatch 提供了一套标准的API接口,用户可以利用该平台发布自定义应用、业务或者更加详细的系统指标。用户发布到Amazon CloudWatch 的指标是按时间排序的数据点集合,数据点本身可以来自于任何应用程序或者业务活动;指标通过名称、命名空间和维度进行唯一定义;维度可以帮助你设计数据点的分组特征或者类别,发布指标数据点时必须必须指定维度,比如虚机的CPU使用率,用户可以查看单独某个虚机的监控指标也可以按AutoScaling组来查看,这里的单个虚机或者AutoScaling组就是同一数据点的不同的维度。用户可以使用秒级甚至千分之一秒的频率发布自定义指标,但是Amazon CloudWatch 还是会将数据聚合到1分钟为最小粒度。 基于指标数据,用户可以翻译业务的波动异常到相应的指标,从而创建警报来和相应的操作来自动化应对各种异常情况,操作包括弹性伸缩(Auto Scaling)机制来应对访问流量变化或者Amazon SNS 主题订阅绑定的邮件通知、HTTP请求的调用和消息队列异步处理。 指标数据用户可以直接通过AWS 控制台进行的图形化按时间筛选、查看和分享;同时,用户也可以通过API接口获取指标数据进行第三方的处理和展示。CloudWatch默认保存两周的指标数据(海外区域部分可以支持免费存储最多15个月的统计数据,详情请查看AWS CloudWatch文档)。 本文的架构中,自定义指标收集不需要自己编程而是利用collectd守护进程进行监控和获取,同时利用CloudWatch Plugin for collectd直接将自定义指标发布和存储到CloudWatch中,用户随后可以基于自定义指标的进行自动化警报处理从而实现无人值守的统一监控平台。 什么是CloudWatch Plugin for collectd CloudWatch一直支持用户发布自定义指标来存储、监控自己关心的业务、应用和系统健康状况;AWS最新发布了CloudWatch Plugin for collectd开源项目,该插件整合了collectd强大的收集各种类型统计数据的能力,帮助客户简化了开发收集自定义指标的相关工作,开箱即用地支持发布Apache、Nginx Web服务器应用指标,内存监控指标等监控数据到CloudWatch进行统一存储、展示和预警。 什么是collectd collectd是一个基于C语言的守护进程,主要任务就是用来收集统计信息,它提供各种了存储方式来存储不同值的机制。它支持超过100种各类插件,下面大概列出一些比较常见的插件类型,具体的请参考collectd官方网站。 Web应用:Apache、nginx 数据库:MySQL、Oracle、PostgreSQL、memcached 网络:OpenVPN、Ping、TCPConns、 系统:Memory、Disk、FileCount、vmem、uptime、df 安装配置CloudWatch Plugin for collectd […]

Read More

Amazon CloudWatch Events监控您应用的安全

每个应用程序时刻都在产生事件,Amazon CloudWatch Events能帮助您针对应用的事件进行有针对性的响应和处理,及时响应,并处理错误事件,存储和分析潜在的告警信息。在接下来的篇幅里,我将利用AWS的CloudWatch Events,Lambda,SNS,SQS等服务向您展示如何及时分析与处理应用事件。 在这个场景中,我将应用事件划分分三个等级(当然,在您的具体业务场景中,您可以根据实际情况划分任意多的等级),Green,Yellow,Red。Green代表应用正常,您不需要进行任何动作。Yellow表示您应用的健康检查失败,通过Lambda来处理该类型事件。Red表示您的应用在至少一台服务器上已经失败,立即通知运维部门处理。 以下是该场景中的架构示意图: 1. 最左边为您的应用服务器群,他们将各自的事件发送给CloudWatch Events; 2. 在CloudWatch Events中设置Rule来进行区分,并将对应的事件发送相应的目标,如Lambda,SNS,SQS; 3. 目标在收到事件后进行相应的处理; 具体步骤: 1.   创建3个目标,Lambda,SNS,SQS; 1.1, 目标1,创建Lambda函数,SampleAppDebugger; 1.2, 目标2,创建SNS主题,RedHealthNotifier; 1.3, 目标3,创建SQS消息队列,ReportInspectionQueue;   2.   创建CloudWatch Events Rule 2.1, 将以下内容保存为YellowPattern.json; 2.2, 使用以下命令创建名为myCustomHealthStatusYellow的规则; 2.3, 使用以下命令创建目标; 2.4, CloudWatch Event需要将事件发送给Lambda,所以需要给Lambda添加适当权限允许CloudWatch这么做; 3.   重复上面的步骤创建第2条规则,并设置目标为SQS和SNS,特别注意,不要忘记给SNS,SQS设置相应权限以允许CloudWatch发送事件过来; 3.1, 使用以下命令创建名为myCustomHealthStatusRed的规则,这里的RedPattern.json文件其实是将2.1步骤中的YellowPattern.json是一样的,只是将内容中的Yellow替换成了Red; 3.2, 创建两个目标,SQS,SNS; 3.3, 添加权限允许CloudWatch Events发送事件; 其他SNS,SQS权限设置相关,请参考该官方链接:http://docs.aws.amazon.com/zh_cn/AmazonCloudWatch/latest/events/resource-based-policies-cwe.html#sns-permissions 4.   进行测试,手动放入一些Red事件(我设置了个小脚本,每次运行都会放入61个事件),看看SQS及SNS情况; 这里我运行了三次脚本,所以SQS中有183条消息 看看邮箱中是否会收到邮件 5.   测试Yellow事件及Lambda反应; Lambda被触发的次数 作者介绍: […]

Read More