

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

# 搭配 Stacks OpsWorks 使用 Amazon CloudWatch Logs
<a name="monitoring-cloudwatch-logs"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

為了簡化監控多個執行個體日誌的程序， OpsWorks Stacks 支援 Amazon CloudWatch Logs。您可以在 Stacks 的 layer OpsWorks 層級啟用 CloudWatch Logs。CloudWatch Logs 整合適用於 Chef 11.10 和 Chef 12 Linux 型堆疊。啟用 CloudWatch Logs 時會產生額外費用，因此請在開始使用之前檢閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

CloudWatch Logs 會監控選取的日誌是否存在使用者指定的模式。例如，您可以監控出現 `NullReferenceException` 等文字的日誌，或計算這類事件的數目。在 Stacks OpsWorks 中啟用 CloudWatch Logs 之後，Stacks OpsWorks 代理程式會將日誌傳送至 CloudWatch Logs。如需 CloudWatch Logs 的詳細資訊，請參閱 [ CloudWatch Logs 入門](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_GettingStarted.html)。

## 先決條件
<a name="w2ab1c14c65c15b9"></a>

在啟用 CloudWatch Logs 之前，您的執行個體必須在 Chef 11.10 堆疊中執行 3444 版或更新版本的 OpsWorks Stacks 代理程式，並在 Chef 12 堆疊中執行 4023 版或更新版本。您也必須為使用 CloudWatch Logs 監控的任何執行個體使用相容的執行個體描述檔。

如果您使用的是自訂執行個體描述檔 OpsWorks (Stacks 在您建立堆疊時未提供的描述檔）， OpsWorks Stacks 就無法自動升級執行個體描述檔。您必須使用 IAM 手動將 **AWSOpsWorksCloudWatchLogs** 政策連接至您的設定檔。如需詳細資訊，請參閱《[IAM 使用者指南》中的管理 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console)。 **

如果您需要升級代理程式版本或執行個體描述檔，當您開啟 **Layer** 頁面上的 CloudWatch Logs 索引標籤時， OpsWorks Stacks 會顯示類似下列螢幕擷取畫面的提醒。

![\[Layer 頁面上的 CloudWatch Logs 索引標籤\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/cw_logs_upgrade.png)


更新 layer 中所有執行個體上的代理程式可能需要一些時間。如果您在客服人員升級完成之前嘗試在 layer 上啟用 CloudWatch Logs，您會看到類似以下的訊息。

![\[Layer 頁面上的 CloudWatch Logs 索引標籤\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/cloudwatch_logs_upgrade_time.png)


## 啟用 CloudWatch Logs
<a name="w2ab1c14c65c15c11"></a>

1. 完成任何必要的代理程式和執行個體設定檔升級後，您可以將 CloudWatch Logs 標籤上的滑桿控制項設定為**開啟**，以啟用 **CloudWatch Logs**。  
![\[CloudWatch Logs 滑桿控制\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/cw_logs_enable_switch.png)

1. 若要串流命令日誌，請將 **Stream command logs (串流命令日誌)** 滑桿設定為 **On (開啟)**。這會將 layer 執行個體上的 Chef 活動和使用者起始命令的日誌傳送至 CloudWatch Logs。

   當您開啟日誌 URL 的目標時，這些日誌中包含的資料與您在 [DescribeCommands](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_DescribeCommands.html) 操作結果中看到的內容密切相符。它包含有關 `setup`、`configure`、`deploy`、`undeploy`、`start`、`stop` 和配方執行命令的資料。

1. 若要串流存放在 layer 執行個體上之自訂位置的活動日誌，例如 `/var/log/apache/myapp/mylog*`，請在 **Stream custom logs (串流自訂日誌)** 字串方塊中輸入自訂位置，然後選擇 **Add (新增)** (**\$1**)。

1. 選擇**儲存**。在幾分鐘內， OpsWorks Stacks 日誌串流應該會顯示在 CloudWatch Logs 主控台中。  
![\[CloudWatch Logs 已啟用\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/cw_logs_enabled.png)

## 關閉 CloudWatch Logs
<a name="w2ab1c14c65c15c13"></a>

若要關閉 CloudWatch Logs，請編輯您的 layer 設定。

1. 在您 layer 的 properties (屬性) 頁面上，選擇 **Edit (編輯)**。  
![\[Layer properties (屬性) 頁面上的 Edit (編輯) 按鈕\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/cw_logs_enabled_edit.png)

1. 在編輯頁面上，選擇 **CloudWatch Logs (CloudWatch 日誌)** 標籤。

1. 在 **CloudWatch Logs (CloudWatch 日誌)** 區域中，關閉 **Stream command logs (串流命令日誌)**。選擇自訂日誌的 **X** 將它們從日誌串流刪除 (如果適用)。

1. 選擇**儲存**。

### 從 CloudWatch Logs 刪除串流日誌
<a name="w2ab1c14c65c15c13b7"></a>

從 Stacks 關閉 CloudWatch Logs OpsWorks 串流後，現有的日誌仍可在 CloudWatch Logs 管理主控台中使用。除非您將日誌匯出至 Amazon S3 或刪除日誌，否則您仍需支付儲存日誌的費用。如需將日誌匯出至 S3 的詳細資訊，請參閱[將日誌資料匯出至 Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3Export.html)。

您可以在 CloudWatch Logs 管理主控台或透過執行 和 [https://docs.aws.amazon.com/cli/latest/reference/logs/delete-log-group.html](https://docs.aws.amazon.com/cli/latest/reference/logs/delete-log-group.html) AWS CLI 命令來刪除日誌串流[https://docs.aws.amazon.com/cli/latest/reference/logs/delete-log-stream.html](https://docs.aws.amazon.com/cli/latest/reference/logs/delete-log-stream.html)和日誌群組。如需變更日誌保留期間的詳細資訊，請參閱在 [ CloudWatch Logs 中變更日誌資料保留](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SettingLogRetention.html)。

## 在 CloudWatch Logs 中管理您的日誌
<a name="w2ab1c14c65c15c15"></a>

您正在串流的日誌會在 CloudWatch Logs 主控台中管理。

![\[CloudWatch Logs 主控台\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/cw_logs_dash.png)


OpsWorks 會自動建立預設日誌群組和日誌串流。 OpsWorks Stacks 資料的日誌群組名稱符合以下模式：

*stack\$1name*`/`*layer\$1name*`/`*chef\$1log\$1name*

自訂日誌名稱符合下列模式：

*/stack\$1name/layer\$1short\$1name/file\$1path\$1name*。路徑名稱在移除星號 (\$1) 等特殊字元後，更容易閱讀。

當您在 CloudWatch Logs 中找到日誌時，您可以將[日誌組織成群組](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Create-Log-Group.html)、[建立指標篩選條件來搜尋和篩選日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)，以及[建立自訂警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html)。

## 設定 Chef 12.2 Windows Layer 使用 CloudWatch Logs
<a name="w2ab1c14c65c15c17"></a>

Windows 執行個體不支援 CloudWatch Logs 自動整合。無法在 Chef 12.2 堆疊中的 layer 上使用 **CloudWatch Logs (CloudWatch 日誌)** 標籤。若要手動啟用串流至適用於 Windows 執行個體的 CloudWatch Logs，請執行下列動作。
+ 更新 Windows 執行個體的執行個體描述檔，以便 CloudWatch Logs 代理程式具有適當的許可。**AWSOpsWorksCloudWatchLogs** 政策陳述式會顯示必要的許可。

  此任務一般只需要執行一次。然後，您可以為 layer 中所有的 Windows 執行個體使用更新的執行個體描述檔。
+ 在每個執行個體上編輯下列 JSON 組態檔案。這個檔案包含日誌串流偏好設定，例如要監控哪些日誌。

  `%PROGRAMFILES%\Amazon\Ec2ConfigService\Settings\AWS.EC2.Windows.CloudWatch.json`

您可以建立自訂配方處理必要任務，將它們指派給 Chef 12.2 layer 的 **Setup (設定)** 事件，來自動化前兩項任務。每次在這些 layer 上啟動新的執行個體時， OpsWorks Stacks 都會在執行個體完成開機後自動執行您的配方，以啟用 CloudWatch Logs。

若要在 Windows 執行個體上關閉 CloudWatch Logs，請反轉程序。清除 **EC2 Service Properties** 對話方塊中的**啟用 CloudWatch Logs 整合**核取方塊，從 `AWS.EC2.Windows.CloudWatch.json` 檔案刪除日誌串流偏好設定，並停止執行任何自動將 CloudWatch Logs 許可指派給 Chef 12.2 layer 中新執行個體的 Chef 配方。