

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

監控是維護 CodeDeploy 和 AWS 解決方案可靠性、可用性和效能的重要部分。您應該從 AWS 解決方案的所有部分收集監控資料，以便在發生多點失敗時更輕鬆地偵錯。不過，在開始監控 CodeDeploy 之前，您應該建立監控計畫，其中包含下列問題的答案：
+ 監控目標是什麼？
+ 要監控哪些資源？
+ 監控這些資源的頻率為何？
+ 要使用哪些監控工具？
+ 誰將執行監控任務？
+ 發生問題時應該通知誰？

下一個步驟是為環境中的正常 CodeDeploy 效能建立基準，方法是在各種時間和不同的負載條件下測量效能。當您監控 CodeDeploy 時，請存放歷史監控資料，以便與目前的效能資料進行比較，識別正常效能模式和效能異常，並設計方法來解決問題。

例如，如果您使用的是 CodeDeploy，您可以監控部署和目標執行個體的狀態。部署或執行個體失敗時，您可能需要重新設定應用程式規格檔案、重新安裝或更新 CodeDeploy 代理程式、更新應用程式或部署群組中的設定，或變更執行個體設定或 AppSpec 檔案。

若要建立基準，您至少必須監控下列項目：
+ 部署事件和狀態
+ 執行個體事件和狀態

## 自動化監控工具
<a name="monitoring_automated_tools"></a>

AWS 提供各種工具，您可以用來監控 CodeDeploy。您可以設定其中一些工具來進行監控，但有些工具需要手動介入。建議您盡可能自動化監控任務。

您可以使用下列自動化監控工具來監看 CodeDeploy，並在發生錯誤時回報：
+ **Amazon CloudWatch 警示**：監看指定時段內的單一指標，並根據與多個時段內給定之閾值相對的指標值來執行一或多個動作。此動作是傳送到 Amazon Simple Notification Service (Amazon SNS) 主題或 Amazon EC2 Auto Scaling 政策的通知。CloudWatch 警示不會只因處於特定狀態就調用動作，狀態必須已變更並已維持一段指定的時間。如需詳細資訊，請參閱[使用 Amazon CloudWatch 工具監控部署](monitoring-cloudwatch.md)。

  如需更新服務角色以使用 CloudWatch 警示監控的詳細資訊，請參閱 [將 CloudWatch 許可授予 CodeDeploy 服務角色](monitoring-create-alarms-grant-permissions.md)。如需將 CloudWatch 警示監控新增至 CodeDeploy 操作的詳細資訊，請參閱 [使用 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 日誌的資訊，請參閱 [ CloudWatch Logs 主控台中的檢視 CodeDeploy 日誌](https://aws.amazon.com/blogs/devops/view-aws-codedeploy-logs-in-amazon-cloudwatch-console/)。
+ **Amazon CloudWatch Events**：匹配事件並將它們路由至一或多個目標函式或串流以進行變更、擷取狀態資訊，以及採取修正動作。如需詳細資訊，請參閱《Amazon CloudWatch 使用者指南》**中的[什麼是 Amazon CloudWatch Events？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchEvents.html)。

  如需在 CodeDeploy 操作中使用 CloudWatch Events 的詳細資訊，請參閱 [使用 Amazon CloudWatch Events 監控部署](monitoring-cloudwatch-events.md)。
+ **AWS CloudTrail 日誌監控** – 在帳戶之間共用日誌檔案、透過將日誌檔案傳送到 CloudWatch Logs 來即時監控 CloudTrail 日誌檔案、在 Java 中寫入日誌處理應用程式，以及驗證您的日誌檔案在 CloudTrail 交付後並未變更。如需詳細資訊，請參閱《AWS CloudTrail 使用者指南》**中的[使用 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-working-with-log-files.html)。

  如需搭配 CodeDeploy 使用 CloudTrail 的詳細資訊，請參閱 [使用 監控部署 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)。

  如需為 CodeDeploy 設定 Amazon SNS 通知的詳細資訊，請參閱 [使用 Amazon SNS 事件通知監控部署](monitoring-sns-event-notifications.md)。

## 手動監控工具
<a name="monitoring_manual_tools"></a>

監控 CodeDeploy 的另一個重要部分是手動監控 CloudWatch 警示未涵蓋的項目。CodeDeploy、CloudWatch 和其他 AWS 主控台儀表板可讓您at-a-glance檢視 AWS 環境的狀態。我們建議您也檢查 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)