

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Amazon Transfer Family 服务器 CloudWatch 登录
<a name="structured-logging"></a>

Amazon CloudWatch 是一项强大的监控和可观察性服务，可让您全面了解您的 Amazon 资源，包括 Amazon Transfer Family。
+ Real-time 监控：实时 CloudWatch 监控 Transfer Family 资源和应用程序，允许您跟踪和分析其性能。
+ 指标收集： CloudWatch 收集和跟踪您的资源和应用程序的各种指标，这些指标是您可以衡量和用于分析的变量。
+ CloudWatch 主页：主页会自动显示有关您使用的 Transfer Family 和其他 Amazon 服务的指标，从而提供您的监控数据的集中视图。 CloudWatch 
+ 自定义仪表板：您可以在中创建自定义仪表板， CloudWatch 以显示特定于您的自定义应用程序和您选择监控的资源的指标。
+ 警报和通知： CloudWatch 允许您创建警报，以监控您的指标，并在突破特定阈值时触发通知或自动操作。这对于监控 Transfer Family 服务器中的文件传输活动并相应地扩展资源非常有用。
+ 成本优化：您可以使用收集的数据 CloudWatch 来识别未充分利用的资源，并采取措施（例如停止或删除实例）来优化成本。

总体而言，其中的全面监控功能 CloudWatch 使其成为管理和优化 Transfer Family 基础架构及其上运行的应用程序的宝贵工具。

有关 CloudWatch 登录 Transfer Family 网络应用程序的详细信息，请参阅[CloudTrail 登录 Transfer Family 网络应用程序](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 角色。以下是可以记录服务器事件 Amazon Web Services 账户 的策略示例。

```
{
    "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)。

## 创建亚马逊 CloudWatch 警报
<a name="monitoring-cloudwatch-examples"></a>

以下示例展示了如何使用 Amazon 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,
});
```

------
#### [ Amazon 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 网络应用程序。

如果您[使用 Amazon S3 访问日志识别代表文件传输用户提出的 S3 请求](https://docs.amazonaws.cn/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 存储桶中的“请求者”字段示例内容。

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

在上述中“请求者”字段中，它显示了名为 `IamRoleName` 的 IAM 角色。有关唯一标识符的更多信息，请参阅 *Amazon Identity and Access Management 用户指南*中的 [IAM 标识符](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids)。

## Amazon 用户通知服务 与一起使用 Amazon Transfer Family
<a name="using-user-notifications"></a>

要获得有关 Amazon Transfer Family 事件的通知，您可以使用[Amazon 用户通知服务](https://docs.amazonaws.cn/notifications/latest/userguide/what-is.html)设置各种交付渠道。当事件与您指定的规则匹配时，您会收到通知。

您可以通过多个渠道接收事件通知，包括电子邮件、[聊天应用程序中的 Amazon Q 开发者版](https://docs.amazonaws.cn/chatbot/latest/adminguide/what-is.html)聊天通知或 [Amazon Console Mobile Application](https://docs.amazonaws.cn/consolemobileapp/latest/userguide/what-is-consolemobileapp.html) 推送通知。您还可以在[控制台通知中心查看通知](https://console.amazonaws.cn/notifications/)。 用户通知服务 支持聚合，这可以减少您在特定事件期间收到的通知数量。

有关更多信息，请参阅[使用 Amazon Transfer Family 托管工作流程自定义文件传送通知](https://www.amazonaws.cn/blogs/storage/customize-file-delivery-notifications-using-aws-transfer-family-managed-workflows/)博客文章和[什么是 Amazon 用户通知服务？](https://docs.amazonaws.cn/notifications/latest/userguide/what-is.html) 在《*Amazon 用户通知服务 用户指南》*中。