使用 CloudWatch Logs 記錄自動化動作輸出 - AWS Systems Manager

使用 CloudWatch Logs 記錄自動化動作輸出

自動化 (AWS Systems Manager 的功能) 與 Amazon CloudWatch Logs 整合。您可以將您 Runbook 中的 aws:executeScript 動作輸出傳送到您指定的日誌群組。您可以使用存放在您 CloudWatch Logs 日誌群組中的 aws:executeScript 動作輸出,以進行偵錯和故障診斷。如果您選擇已加密的記錄群組,aws:executeScript 動作輸出也會加密。aws:executeScript 動作的日誌記錄輸出是帳戶層級的設定。

注意

Systems Manager 不會建立日誌群組,或者任何文件的日誌串流不會使用 aws:executeScript 動作。如果文件確實使用 aws:executeScript,則傳送至 CloudWatch Logs 的輸出僅與這些動作有關。

若要將動作輸出傳送至 CloudWatch Logs (主控台)

  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Automation (自動化)。

  3. 選擇 Preferences (偏好) 標籤,然後選擇 Edit (編輯)

  4. 選取 Send output to CloudWatch Logs (將輸出傳送至 CloudWatch Logs) 旁的核取方塊。

  5. (建議) 選取 Encrypt log data (加密日誌資料) 旁的核取方塊。開啟此選項後,系統會使用為該日誌群組指定的伺服器端加密金鑰來加密日誌資料。如果您不想加密要傳送到 CloudWatch Logs 中的日誌資料,清除核取方塊。如果日誌群組不允許加密,清除核取方塊。

  6. 對於 CloudWatch Logs log group (CloudWatch Logs 群組),若要指定您要將動作輸出傳送至的 AWS 帳戶 的現有 CloudWatch Logs 日誌群組,請選取下列選項之一:

    • Send output to the default log group (將輸出傳送至預設記錄群組) – 如果預設日誌群組不存在 (/aws/ssm/automation/executeScript),自動化會為您建立一個。

    • Choose from a list of log groups (從日誌群組清單中選擇) – 選取已在您的帳戶中建立的日誌群組,以存放動作輸出。

    • Enter a log group name (輸入日誌群組名稱) – 在文字方塊中,輸入已在帳戶中建立的日誌群組名稱,以存放動作輸出。

  7. 選擇 Save (儲存)。

若要將動作輸出傳送至 CloudWatch Logs (命令列)

  1. 開啟您偏好的命令列工具,然後執行以下命令來更新動作輸出目的地。

    Linux & macOS
    aws ssm update-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination \ --setting-value CloudWatch
    Windows
    aws ssm update-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination ^ --setting-value CloudWatch
    PowerShell
    Update-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination" ` -SettingValue "CloudWatch"

    如果命令成功,則無輸出訊息。

  2. 執行以下命令,指定您要傳送動作輸出至的日誌群組。

    Linux & macOS
    aws ssm update-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-group-name \ --setting-value my-log-group
    Windows
    aws ssm update-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-group-name ^ --setting-value my-log-group
    PowerShell
    Update-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-group-name" ` -SettingValue "my-log-group"

    如果命令成功,則無輸出訊息。

  3. 執行以下命令,檢視目前 AWS 帳戶 和 AWS 區域 中的自動化動作記錄的目前服務設定。

    Linux & macOS
    aws ssm get-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination
    Windows
    aws ssm get-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination
    PowerShell
    Get-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/automation/customer-script-log-destination"

    該命令會傳回相關資訊,如以下所示。

    {
        "ServiceSetting": {
            "Status": "Customized",
            "LastModifiedDate": 1613758617.036,
            "SettingId": "/ssm/automation/customer-script-log-destination",
            "LastModifiedUser": "arn:aws:sts::123456789012:assumed-role/Administrator/User_1",
            "SettingValue": "CloudWatch",
            "ARN": "arn:aws:ssm:us-east-2:123456789012:servicesetting/ssm/automation/customer-script-log-destination"
        }
    }