在 CodeDeploy 中监控部署
监控是保持 CodeDeploy 和您的 AWS 解决方案的可靠性、可用性和性能的重要方面。您应从 AWS 解决方案的所有部分收集监控数据,以便更轻松地调试出现的多点故障。不过,在开始监控 CodeDeploy 之前,您应制定一个监控计划并在计划中回答下列问题:
-
监控目的是什么?
-
您将监控哪些资源?
-
监控这些资源的频率如何?
-
您将使用哪些监控工具?
-
谁负责执行监控任务?
-
出现错误时应通知谁?
下一步,通过在不同时间和不同负载条件下测量性能,在您的环境中建立正常 CodeDeploy 性能的基准。在监控 CodeDeploy 时,存储历史监控数据,以便将此数据与当前性能数据进行比较,确定正常性能模式和性能异常,并设计解决问题的方法。
例如,如果您使用的是 CodeDeploy,则可以监控部署和目标实例的状态。当部署或实例失败时,您可能需要重新配置应用程序规范文件,重新安装或更新 CodeDeploy 代理,更新应用程序或部署组中的设置或更改实例设置或 AppSpec 文件。
要建立基准,您至少应监控以下各项:
-
部署事件和状态
-
实例事件和状态
自动监控工具
AWS 提供各种可以用来监控 CodeDeploy 的工具。您可以配置其中的一些工具来为您执行监控任务,但有些工具需要手动干预。建议您尽可能实现监控任务自动化。
您可以使用以下自动化监控工具来监控 CodeDeploy 并在出现错误时报告:
-
Amazon CloudWatch 警报——按您指定的时间段观察单个指标,并根据相对于给定阈值的指标值在若干时间段内执行一项或多项操作。具体操作是将一条通知已发送到某个 Amazon Simple Notification Service(Amazon SNS)主题或 Amazon EC2 Auto Scaling 策略。CloudWatch 告警不调用操作,因为这些操作处于特定状态;状态必须改变并保持指定时间。有关更多信息,请参阅 Monitoring Deployments with Amazon CloudWatch Tools。
有关更新您的服务角色以配合使用 CloudWatch 警报监控的信息,请参阅向 CodeDeploy 服务角色授予 CloudWatch 权限。有关向您的 CodeDeploy 操作添加 CloudWatch 警报监控的信息,请参阅使用 CodeDeploy 创建应用程序、使用 CodeDeploy 创建部署组或使用 CodeDeploy 更改部署组设置。
-
Amazon CloudWatch Logs – 监控、存储和访问来自 AWS CloudTrail 或其他来源的日志文件。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Monitoring Log Files。
有关使用 CloudWatch 控制台查看 CodeDeploy 日志的信息,请参阅在 CloudWatch Logs 控制台中查看 CodeDeploy 日志
。 -
Amazon CloudWatch Events – 匹配事件并将事件传送到一个或多个目标函数或流,进行更改、捕获状态信息和采取纠正措施。有关更多信息,请参见 Amazon CloudWatch 用户指南的什么是 Amazon CloudWatch Events。
有关在 CodeDeploy 操作中使用 CloudWatch 事件的信息,请参阅使用 Amazon CloudWatch Events 监控部署。
-
AWS CloudTrail 日志监控——在账户间共享日志文件,通过将 CloudTrail 日志文件发送到 CloudWatch Logs 来进行实时监控,用 Java 编写日志处理应用程序,验证 CloudTrail 提供的日志文件未发生更改。有关更多信息,请参见《AWS CloudTrail 用户指南》的使用 CloudTrail 日志文件。
有关将 CloudTrail 与 CodeDeploy 结合使用的信息,请参阅Monitoring Deployments。
-
Amazon Simple Notification Service - 配置事件驱动的触发器,以接收有关部署和实例事件(如成功或失败)的短信或电子邮件通知。有关更多信息,请参阅创建主题和什么是 Amazon Simple Notification Service。
有关为 CodeDeploy 设置 Amazon SNS 通知的更多信息,请参阅Monitoring Deployments with Amazon SNS Event Notifications。
手动监控工具
监控 CodeDeploy 的另一个重要环节是手动监控 CloudWatch 警报未涵盖的那些项目。CodeDeploy、CloudWatch 和其他 AWS 控制台控制面板提供 AWS 环境状态的概览视图。建议您还要查看 CodeDeploy 部署上的日志文件。
-
CodeDeploy 控制台显示:
-
部署的状态。
-
每个上次尝试和上次成功部署的版本的日期和事件
-
部署中成功、失败、跳过或进行中的实例的数量
-
本地实例的状态
-
注册或注销本地实例的日期和时间
-
-
CloudWatch 主页显示:
-
当前告警和状态
-
告警和资源图表
-
服务运行状况
此外,还可以使用 CloudWatch 执行以下操作:
-
创建自定义控制面板以监控您关心的服务
-
绘制指标数据图,以排除问题并弄清楚趋势
-
搜索并浏览您所有的 AWS 资源指标
-
创建和编辑警报以接收有关问题的通知
-
主题