

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

# AWS Transfer Family 伺服器 Amazon CloudWatch 記錄
<a name="structured-logging"></a>

Amazon CloudWatch 是一項強大的監控和可觀測性服務，可讓您全面了解 AWS 資源，包括 AWS Transfer Family。
+ 即時監控：CloudWatch 會即時監控 Transfer Family 資源和應用程式，讓您追蹤和分析其效能。
+ 指標收集：CloudWatch 會為您的資源和應用程式收集和追蹤各種指標，這些是您可以測量和用於分析的變數。
+ CloudWatch 首頁：CloudWatch 首頁會自動顯示 Transfer Family 和您使用之 AWS 其他服務的指標，提供監控資料的集中檢視。
+ 自訂儀表板：您可以在 CloudWatch 中建立自訂儀表板，以顯示自訂應用程式的特定指標，以及您選擇監控的資源。
+ 警示和通知：CloudWatch 可讓您建立警示，以監控指標，並在超過特定閾值時觸發通知或自動化動作。這對於監控 Transfer Family 伺服器中的檔案傳輸活動以及相應地擴展資源非常有用。
+ 成本最佳化：您可以使用 CloudWatch 收集的資料來識別未充分利用的資源，並採取動作，例如停止或刪除執行個體，以最佳化您的成本。

整體而言，CloudWatch 中全面的監控功能使其成為管理和最佳化 Transfer Family 基礎設施及其上執行應用程式的重要工具。

Transfer Family Web 應用程式的 CloudWatch 記錄詳細資訊可在 中取得[Transfer Family Web 應用程式的 CloudTrail 記錄](webapp-cloudtrail.md)。

## Transfer Family 的 CloudWatch 記錄類型
<a name="log-tf-types"></a>

Transfer Family 提供兩種將事件記錄到 CloudWatch 的方式：
+ JSON 結構化日誌記錄
+ 透過記錄角色記錄

對於 Transfer Family 伺服器，您可以選擇您偏好的記錄機制。對於連接器和工作流程，僅支援記錄角色。

**JSON 結構化記錄**

對於記錄伺服器事件，建議使用 JSON 結構化記錄。這可提供更全面的日誌格式，以啟用 CloudWatch 日誌查詢。對於這種類型的記錄，建立伺服器 （或編輯伺服器記錄組態） 之使用者的 IAM 政策必須包含下列許可：
+ `logs:CreateLogDelivery`
+ `logs:DeleteLogDelivery`
+ `logs:DescribeLogGroups`
+ `logs:DescribeResourcePolicies`
+ `logs:GetLogDelivery`
+ `logs:ListLogDeliveries`
+ `logs:PutResourcePolicy`
+ `logs:UpdateLogDelivery`

政策範例如下。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:GetLogDelivery",
                "logs:UpdateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:ListLogDeliveries",
                "logs:PutResourcePolicy",
                "logs:DescribeResourcePolicies",
                "logs:DescribeLogGroups"                
            ],
            "Resource": "*"
        }
    ]
}
```

如需設定 JSON 結構化記錄的詳細資訊，請參閱 [建立、更新和檢視伺服器的記錄](log-server-manage.md)。

**記錄角色**

若要記錄連接到伺服器的受管工作流程以及連接器的事件，您需要指定記錄角色。若要設定存取，您可以建立以資源為基礎的 IAM 政策和提供該存取資訊的 IAM 角色。以下是 AWS 帳戶 可記錄伺服器事件的範例政策。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:DescribeLogStreams",
                "logs:CreateLogGroup",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:/aws/transfer/*"
        }
    ]
}
```

如需設定記錄角色以記錄工作流程事件的詳細資訊，請參閱 [管理工作流程的記錄](cloudwatch-workflows.md)。

## 建立 Amazon CloudWatch 警示
<a name="monitoring-cloudwatch-examples"></a>

下列範例示範如何使用 AWS Transfer Family 指標 建立 Amazon CloudWatch 警示`FilesIn`。

------
#### [ CDK ]

```
new cloudwatch.Metric({
  namespace: "AWS/Transfer",
  metricName: "FilesIn",
  dimensionsMap: { ServerId: "s-00000000000000000" },
  statistic: "Average",
  period: cdk.Duration.minutes(1),
}).createAlarm(this, "AWS/Transfer FilesIn", {
  threshold: 1000,
  evaluationPeriods: 10,
  datapointsToAlarm: 5,
  comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
});
```

------
#### [ CloudFormation ]

```
Type: AWS::CloudWatch::Alarm
Properties:
  Namespace: AWS/Transfer
  MetricName: FilesIn
  Dimensions:
    - Name: ServerId
      Value: s-00000000000000000
  Statistic: Average
  Period: 60
  Threshold: 1000
  EvaluationPeriods: 10
  DatapointsToAlarm: 5
  ComparisonOperator: GreaterThanOrEqualToThreshold
```

------

## 將 Amazon S3 API 操作記錄到 S3 存取日誌
<a name="monitoring-s3-access-logs"></a>

**注意**  
本節不適用於 Transfer Family Web 應用程式。

如果您[使用 Amazon S3 存取日誌來識別代表您的檔案傳輸使用者提出的 S3 請求](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-s3-access-logs-to-identify-requests.html)，`RoleSessionName`則 會用來顯示擔任哪個 IAM 角色來服務檔案傳輸。它也會顯示其他資訊，例如用於傳輸的使用者名稱、工作階段 ID 和伺服器 ID。格式為 `[AWS:Role Unique Identifier]/username.sessionid@server-id`，且包含在申請者欄位中。例如，以下是已複製到 S3 儲存貯體之檔案的 S3 存取日誌中請求者範例欄位的內容。 S3 

`arn:aws:sts::AWS-Account-ID:assumed-role/IamRoleName/username.sessionid@server-id`

在上方的申請者欄位中，會顯示名為 的 IAM 角色`IamRoleName`。如需 IAM 角色唯一識別符的詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的[唯一識別符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids)。

## AWS 使用者通知 搭配 使用 AWS Transfer Family
<a name="using-user-notifications"></a>

若要收到 AWS Transfer Family 事件的通知，您可以使用 [AWS 使用者通知](https://docs.aws.amazon.com/notifications/latest/userguide/what-is.html) 來設定各種交付管道。當事件符合您指定的規則時，您會收到通知。

您可以透過多個管道接收事件通知，包括電子郵件、[聊天應用程式中的 Amazon Q Developer](https://docs.aws.amazon.com/chatbot/latest/adminguide/what-is.html) 聊天通知或 [AWS Console Mobile Application](https://docs.aws.amazon.com/consolemobileapp/latest/userguide/what-is-consolemobileapp.html) 推送通知。您也可以在[主控台通知中心](https://console.aws.amazon.com/notifications/)查看通知。 使用者通知 支援彙總，可減少您在特定事件期間收到的通知數量。

如需詳細資訊，請參閱[使用 AWS Transfer Family 受管工作流程的自訂檔案交付通知](https://aws.amazon.com/blogs/storage/customize-file-delivery-notifications-using-aws-transfer-family-managed-workflows/)部落格文章，[以及什麼是 AWS 使用者通知？](https://docs.aws.amazon.com/notifications/latest/userguide/what-is.html) *AWS 使用者通知 《 使用者指南》*中的 。