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

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

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

Automation 是 的功能 AWS Systems Manager,與 Amazon CloudWatch Logs 整合。您可以將您 Runbook 中的 aws:executeScript 動作輸出傳送到您指定的日誌群組。Systems Manager 不會建立日誌群組,或者任何文件的日誌串流不會使用 aws:executeScript 動作。如果文件確實使用 aws:executeScript,傳送至 CloudWatch Logs 的輸出僅與這些動作相關。您可以使用儲存在 CloudWatch Logs 日誌群組中的aws:executeScript動作輸出進行偵錯和疑難排解。如果您選擇已加密的記錄群組,aws:executeScript 動作輸出也會加密。aws:executeScript 動作的日誌記錄輸出是帳戶層級的設定。

若要將動作輸出傳送至 Amazon 擁有 Runbook 的 CloudWatch Logs,執行自動化的使用者或角色必須具有下列操作的許可:

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:DescribeLogGroups

  • logs:DescribeLogStreams

  • logs:PutLogEvents

對於您擁有的 Runbook,必須將相同的許可新增至您用來執行 Runbook IAM的服務角色 (或 AssumeRole)。

將動作輸出傳送至 CloudWatch Logs (主控台)
  1. 在 開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/

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

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

  4. 選取傳送輸出至 CloudWatch 日誌 旁的核取方塊。

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

  6. 對於CloudWatch 日誌日誌群組 ,若要指定您要將動作輸出傳送到 AWS 帳戶 的 中現有的 CloudWatch 日誌日誌群組,請選取下列其中一項:

    • 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"
        }
    }