使用 Amazon CloudWatch 日誌與 AWS OpsWorks 堆棧 - AWS OpsWorks

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

使用 Amazon CloudWatch 日誌與 AWS OpsWorks 堆棧

重要

該 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請透過 AWS Re: post 或透過進AWS 階 Support 與 AWS Support 團隊聯絡。

為了簡化多個執行個體上的日誌監控程序, AWS OpsWorks Stacks 支援 Amazon CloudWatch 日誌。您可以在「 AWS OpsWorks 堆疊」中的圖層層級啟用「 CloudWatch 記錄」。 CloudWatch 日誌集成與廚師 11.10 和廚師 12 基於 Linux 的堆棧一起使用。啟用 CloudWatch 日誌時會產生額外費用,因此請在開始之前查看 Amazon CloudWatch 定價

CloudWatch 記錄會監控選取的記錄檔是否發生使用者指定的病毒碼。例如,您可以監控出現 NullReferenceException 等文字的日誌,或計算這類事件的數目。啟用「 AWS OpsWorks 堆疊中的 CloudWatch 記錄檔」後,「 AWS OpsWorks 堆疊」代理程式會將記錄檔傳送至 CloudWatch 記錄檔。如需有關 CloudWatch 記錄檔的詳細資訊,請參閱記 CloudWatch 錄入門

必要條件

在啟用 CloudWatch 日誌之前,您的實例必須在 Chef 11.10 堆棧中運行 3444 或更高版本的 AWS OpsWorks 堆棧代理程序,並在 Chef 12 堆棧中運行 4023 或更新版本。您也必須針對使用記錄監控的任何執行個體使用相容的執行個體設定 CloudWatch 檔。

如果您使用的是自訂執行個體設定檔( AWS OpsWorks Stacks 在建立堆疊時未提供的設定檔), AWS OpsWorks Stacks 將無法自動升級執行個體設定檔。您必須使用 IAM 將AWSOpsWorksCloudWatchLogs政策手動附加到您的設定檔。如需詳細資訊,請參閱 IAM 使用者指南中的管理 IAM 政策。

如果您需要升級代理程式版本或執行個體設定檔,當您開啟 [級] 頁面上的 [ CloudWatch 記錄檔] 索引標籤時, AWS OpsWorks 堆疊會顯示類似下列螢幕擷取畫面的提醒。

CloudWatch 「層次」頁面上的「記錄檔」

更新 layer 中所有執行個體上的代理程式可能需要一些時間。如果您嘗試在代理程式升級完成之前啟用層上的 CloudWatch 記錄檔,您會看到類似下列內容的訊息。

CloudWatch 「層次」頁面上的「記錄檔」

啟用 CloudWatch 記錄

  1. 完成任何必要的代理程式和執行個體設定檔升級後,您可以將 [ CloudWatch 記錄] 索引標籤上的滑桿控制項設定為 [開啟],以CloudWatch 記錄

    CloudWatch 日誌滑塊控制
  2. 若要串流命令日誌,請將 Stream command logs (串流命令日誌) 滑桿設定為 On (開啟)。這會將 Chef 活動和用戶啟動的命令的日誌發送到 CloudWatch Logs。

    當您開啟記錄 URL 的目標時,這些記錄檔中包含的資料與您在DescribeCommands作業結果中看到的資料非常相符。它包含有關 setupconfiguredeployundeploystartstop 和配方執行命令的資料。

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

  4. 選擇儲存。在幾分鐘之內,「 AWS OpsWorks 堆疊」記錄串流應該會顯示在 CloudWatch 記錄主控台中。

    CloudWatch 記錄已啟用

關閉 CloudWatch 記錄檔

若要關閉 CloudWatch 記錄,請編輯圖層設定。

  1. 在您 layer 的 properties (屬性) 頁面上,選擇 Edit (編輯)

    Layer properties (屬性) 頁面上的 Edit (編輯) 按鈕
  2. 在編輯頁面上,選擇CloudWatch 日誌標籤。

  3. 在 [記CloudWatch 錄] 區域中,關閉 [串流] 命令記錄。選擇自訂日誌的 X 將它們從日誌串流刪除 (如果適用)。

  4. 選擇儲存

從 CloudWatch 記錄檔刪除串流記錄檔

關閉從 AWS OpsWorks 堆疊串流的 CloudWatch 記錄檔後,記錄管理主控台仍可使用現有的 CloudWatch 記錄檔。除非您將日誌匯出到 Amazon S3 或將其刪除,否則存放的日誌仍會產生費用。如需將日誌匯出到 S3 的詳細資訊,請參閱將日誌資料匯出到 Amazon S3

您可以在 CloudWatch 記錄管理主控台中刪除記錄串流和記錄群組,或執行delete-log-streamdelete-log-group AWS CLI 命令。如需變更記錄保留期間的詳細資訊,請參閱變更 CloudWatch 記錄檔中的記錄檔資料保留

在記錄檔中管理您的 CloudWatch 記錄

您要串流的記錄檔會在 CloudWatch 記錄主控台中管理。

CloudWatch 記錄主控台

AWS OpsWorks 自動建立預設記錄群組和記錄資料流。 AWS OpsWorks Stacks 資料的日誌群組名稱符合以下模式:

stack_name/layer_name/chef_log_name

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

/stack_name/layer_short_name/file_path_name。路徑名稱在移除星號 (*) 等特殊字元後,更容易閱讀。

當您在日誌中找到日誌後,您可以將 CloudWatch 日誌組織為組通過創建指標過濾器搜索和過濾日誌,並創建自定義警報

配置廚師 12.2 窗口層以使用 CloudWatch 日誌

CloudWatch Windows 執行個體不支援記錄檔自動整合。CloudWatch 日誌選項卡在 Chef 12.2 堆棧中的圖層上不可用。若要手動啟用 Windows 執行個體的串流至 CloudWatch 記錄檔,請執行下列動作。

  • 更新 Windows 執行個體的執行個體設定檔,讓記 CloudWatch 錄代理程式擁有適當的權限。政AWSOpsWorksCloudWatchLogs策聲明顯示需要哪些權限。

    此任務一般只需要執行一次。然後,您可以為 layer 中所有的 Windows 執行個體使用更新的執行個體描述檔。

  • 在每個執行個體上編輯下列 JSON 組態檔案。這個檔案包含日誌串流偏好設定,例如要監控哪些日誌。

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

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

若要關閉 Windows 執行個體上的 CloudWatch 記錄檔,請反轉程序。清除 [EC2 服務屬性] 對話方塊中的 [啟用 CloudWatch 記錄整合] 核取方塊,從AWS.EC2.Windows.CloudWatch.json檔案中刪除記錄串流喜好設定;並停止執行任何 Chef 方法,這些方法會自動將 CloudWatch 記錄檔權限指派給 Chef 12.2 層中的新執行個體。