

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 监控中的部署 CodeDeploy
<a name="monitoring"></a>

监控是维护 AWS 解决方案的可靠性、可用性和性能的重要组成部分。 CodeDeploy 您应该从 AWS 解决方案的所有部分收集监控数据，以便在出现多点故障时可以更轻松地进行调试。但是 CodeDeploy，在开始监控之前，您应该制定一份包含以下问题答案的监控计划：
+ 监控目的是什么？
+ 您将监控哪些资源？
+ 监控这些资源的频率如何？
+ 您将使用哪些监控工具？
+ 谁负责执行监控任务？
+ 出现错误时应通知谁？

下一步是通过测量不同时间和不同负载条件下的性能，为环境中的正常 CodeDeploy 性能建立基准。监控时 CodeDeploy，存储历史监控数据，以便您可以将其与当前性能数据进行比较，识别正常的性能模式和性能异常，并设计解决问题的方法。

例如，如果您正在使用 CodeDeploy，则可以监控部署和目标实例的状态。当部署或实例失败时，您可能需要重新配置应用程序规范文件、重新安装或更新 CodeDeploy 代理、更新应用程序或部署组中的设置，或者更改实例设置或文件。 AppSpec 

要建立基准，您至少应监控以下各项：
+ 部署事件和状态
+ 实例事件和状态

## 自动监控工具
<a name="monitoring_automated_tools"></a>

AWS 提供了各种可用于监控的工具 CodeDeploy。您可以配置其中的一些工具来为您执行监控任务，但有些工具需要手动干预。建议您尽可能实现监控任务自动化。

您可以使用以下自动监控工具来监视 CodeDeploy 和报告何时出现问题：
+ **A CloudWatch mazon** Alarms — 在您指定的时间段内观察单个指标，并根据该指标在多个时间段内相对于给定阈值的值执行一项或多项操作。该操作是发送到亚马逊简单通知服务 (Amazon SNS) Simple Notification Scaling 主题或亚马逊 EC2 Auto Scaling 策略的通知。 CloudWatch 警报不会仅仅因为它们处于特定状态就调用操作；该状态必须已更改并保持了指定的时间段。有关更多信息，请参阅 [使用 Amazon CloudWatch 工具监控部署](monitoring-cloudwatch.md)。

  有关更新您的服务角色以配合使用 CloudWatch 警报监控的信息，请参阅[向 CodeDeploy 服务角色授予 CloudWatch 权限](monitoring-create-alarms-grant-permissions.md)。有关在 CodeDeploy 操作中添加 CloudWatch 警报监控的信息，请参阅[使用创建应用程序 CodeDeploy](applications-create.md)[使用创建部署组 CodeDeploy](deployment-groups-create.md)、或[使用更改部署组设置 CodeDeploy](deployment-groups-edit.md)。

  
+ **Amazon CloudWatch Logs** — 监控、存储和访问来自 AWS CloudTrail 或其他来源的日志文件。有关更多信息，请参阅 *Amazon CloudWatch 用户指南*中的[监控日志文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)。

  有关使用 CloudWatch 控制台查看 CodeDeploy日志的信息，请参阅在日志[控制台中查看 CodeDeploy CloudWatch 日志](https://aws.amazon.com/blogs/devops/view-aws-codedeploy-logs-in-amazon-cloudwatch-console/)。
+ **Amazon CloudWatch ** Events — 匹配事件并将其路由到一个或多个目标函数或流，以进行更改、捕获状态信息并采取纠正措施。有关更多信息，请参阅《[亚马逊* CloudWatch 用户指南》中的什么是亚马逊 CloudWatch *活动](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchEvents.html)。

  有关在 CodeDeploy 操作中使用 CloudWatch 事件的信息，请参阅[使用 Amazon CloudWatch 事件监控部署](monitoring-cloudwatch-events.md)。
+ **AWS CloudTrail 日志监控**-在账户之间共享日志文件，通过将 CloudTrail 日志文件发送到 “日志” 来实时监控CloudWatch 日志文件，用 Java 编写日志处理应用程序，并验证您的日志文件在传送后是否未更改 CloudTrail。有关更多信息，[请参阅*AWS CloudTrail 用户指南*中的使用CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-working-with-log-files.html)。

  有关 CloudTrail 与一起使用的信息 CodeDeploy，请参阅[使用监控部署 AWS CloudTrail](monitoring-cloudtrail.md)。
+ **Amazon Simple Notification Service** - 配置事件驱动的触发器，以接收有关部署和实例事件（如成功或失败）的短信或电子邮件通知。有关更多信息，请参阅[创建主题](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)和[什么是 Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)。

  有关为其设置 Amazon SNS 通知的信息 CodeDeploy，请参阅。[使用 Amazon SNS 事件通知监控部署](monitoring-sns-event-notifications.md)

## 手动监控工具
<a name="monitoring_manual_tools"></a>

监控 CodeDeploy 的另一个重要部分是手动监控 CloudWatch 警报未涵盖的项目。 CodeDeploy CloudWatch、和其他 AWS 控制台仪表板提供了 AWS 环境状态的 at-a-glance视图。我们建议您同时检查 CodeDeploy 部署的日志文件。
+ CodeDeploy 控制台显示：
  + 部署的状态。
  + 每个上次尝试和上次成功部署的版本的日期和事件
  + 部署中成功、失败、跳过或进行中的实例的数量
  + 本地实例的状态
  + 注册或注销本地实例的日期和时间
+ CloudWatch 主页显示：
  + 当前告警和状态
  + 告警和资源图表
  + 服务运行状况

  此外，您还可以使用 CloudWatch 执行以下操作：
  + 创建[自定义控制面板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CloudWatch_Dashboards.html)以监控您关心的服务
  + 绘制指标数据图，以排除问题并弄清楚趋势
  + 搜索和浏览您的所有 AWS 资源指标
  + 创建和编辑告警以接收问题通知

**主题**
+ [Monitoring Deployments with Amazon CloudWatch Tools](monitoring-cloudwatch.md)
+ [Monitoring Deployments](monitoring-cloudtrail.md)
+ [Monitoring Deployments with Amazon SNS Event Notifications](monitoring-sns-event-notifications.md)