

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

# Amazon Transit Gateway 流
<a name="tgw-flow-logs"></a>

Transit Gateway Flow Logs 是 Tr Amazon ansit Gateway 的一项功能，它使您能够捕获有关进出中转网关的 IP 流量的信息。流日志数据可以发布到亚马逊 CloudWatch 日志、亚马逊 S3 或 Firehose。在创建流日志后，您可以在所选的目标中检索和查看其数据。流日志数据是在网络流量路径之外收集的，因此不会影响网络吞吐量或延迟。您可以创建或删除流日志，而不会对网络性能造成任何影响。Transit Gateway 流日志仅捕获与中转网关有关的信息，详见[中转网关流日志记录](#flow-log-records)中所述。要捕获有关在您的 VPC 中传入和传出网络接口的 IP 流量的信息，请使用 VPC 流日志。请参阅*《Amazon VPC 用户指南》*中的[使用 VPC 流日志记录 IP 流量](https://docs.amazonaws.cn/vpc/latest/userguide/flow-logs.html)。

**注意**  
您必须是中转网关的所有者，才能创建中转网关流日志。如果您不是中转网关所有者，则该中转网关的所有者必须授予您权限。

中转网关的流日志数据保存为*流日志记录*，即日志事件，由多个描述流量信息的字段组成。有关更多信息，请参阅 [中转网关流日志记录](#flow-log-records)。

要创建流日志，请指定：
+ 要为其创建流日志的资源
+ 指定您要将流日志数据发布到的目标

创建流日志后，需要几分钟来开始收集数据并将数据发布到选定目标。流日志不会为您的中转网关获取实时日志流。

您可以将标签应用于流日志。每个标签都包含您定义的一个键和一个可选值。标签可以帮助您整理流日志，例如按目的或拥有者。

如果您不再需要某个流日志，可将其删除。删除流日志会禁用该资源的流日志服务，并且不会创建新的流日志记录或将其发布到 CloudWatch 日志或 Amazon S3。删除流日志不会删除传输网关的任何现有流日志记录或日志流（对于 CloudWatch 日志）或日志文件对象（对于 Amazon S3）。要删除现有的日志流，请使用 CloudWatch 日志控制台。要删除现有日志文件对象，请使用 Amazon S3 控制台。在删除流日志之后，可能需要数分钟时间来停止收集数据。有关更多信息，请参阅 [删除 Tr Amazon ansit Gateway 流日志记录](delete-flow-log.md)。

您可以为传输网关创建流日志，以便将数据发布到日 CloudWatch 志、Amazon S3 或 Amazon Data Firehose。有关更多信息，请参阅下列内容：
+  [创建发布到日志的流 CloudWatch 日志 ](flow-logs-cwl-create-flow-log.md)
+ [创建发布到 Amazon S3 的流日志](flowlog-s3-create.md)
+ [创建发布到 Firehose 的流日志](flow-logs-kinesis-create.md)

## 限制
<a name="flow-logs-limits"></a>

中转网关流日志存在以下限制：
+  不支持组播流量。
+ 不支持 Connect 连接。所有 Connect 流日志都显示在传输连接下方，因此必须在中转网关或 Connect 传输连接上启用它。
+ Transit Gateway Flow Logs 支持每个账户的每个资源最多 250 个订阅。如果某个资源的订阅数量已经达到此上限，则需要先删除现有订阅才能为此资源添加其他订阅。

## 中转网关流日志记录
<a name="flow-log-records"></a>

流日志记录代表您的中转网关中的网络流。每条记录都是一个字符串，字段用空格分隔。记录包含网络流的不同的结构信息，包括源、目标和协议。

当您创建流日志时，您可以为流日志记录使用默认格式，也可以指定自定义格式。

**Topics**
+ [默认格式](#flow-logs-default)
+ [自定义格式](#flow-logs-custom)
+ [可用字段](#flow-logs-fields)

### 默认格式
<a name="flow-logs-default"></a>

使用默认格式，流日志记录包括所有版本 2 到版本 6 字段，顺序如[可用字段](#flow-logs-fields)表中所示。您无法自定义或更改默认格式。要捕获其他字段或不同字段子集，请指定自定义格式。

### 自定义格式
<a name="flow-logs-custom"></a>

使用自定义格式，您可以指定流日志记录中包含哪些字段以及采用哪种顺序。这使您可以根据具体需求创建流日志，并忽略无关的字段。使用自定义格式，还可减少从发布的流日志提取特定信息所需的单独流程。您可以指定任意数量的可用流日志字段，但必须至少指定一个。

### 可用字段
<a name="flow-logs-fields"></a>

下表描述了中转网关流日志记录的所有可用字段。**版本**列表示在哪个版本中引入了该字段。

将流日志数据发布到 Amazon S3 时，字段的数据类型将取决于流日志格式。如果格式为纯文本，则所有字段的类型均为 STRING。如果格式为 Parquet，请参阅字段数据类型表。

如果某个字段不适用于或无法计算特定记录，则记录为该条目显示一个“-”符号。不直接来自数据包标头的元数据字段是最大努力的近似值，它们的值可能缺失或不准确。


| 字段 | 描述 | 版本 | 
| --- | --- | --- | 
| version | 表示在哪个版本中引入了该字段。默认格式包括所有版本 2 字段，与它们在表格中出现的顺序相同。<br />**Parquet 数据类型：**INT\_32 | 2 | 
| resource-type | 在其上创建订阅的资源的类型。对于中转网关流日志来说，这将会是 TransitGateway。Parquet 数据类型：STRING | 6 | 
| account-id | 源传输网关所有者的 Amazon Web Services 账户 ID。<br />**Parquet 数据类型：**STRING | 2 | 
| tgw-id | 正在记录其流量的中转网关的 ID。**Parquet 数据类型：**STRING | 6 | 
| tgw-attachment-id | 正在记录其流量的中转网关连接的 ID。**Parquet 数据类型：**STRING | 6 | 
| tgw-src-vpc-account-id | 源 VPC 流量的 Amazon Web Services 账户 ID。<br />**Parquet 数据类型：**STRING  | 6 | 
| tgw-dst-vpc-account-id | 目标 VPC 流量的 Amazon Web Services 账户 ID。<br />**Parquet 数据类型：**STRING  | 6 | 
| tgw-src-vpc-id |  中转网关的源 VPC 的 ID。**Parquet 数据类型：**STRING  | 6 | 
| tgw-dst-vpc-id | 中转网关的目标 VPC 的 ID。<br />**Parquet 数据类型：**STRING  | 6 | 
| tgw-src-subnet-id | 中转网关源流量的子网 ID。<br />**Parquet 数据类型：**STRING  | 6 | 
| tgw-dst-subnet-id | 中转网关目标流量的子网 ID。<br />**Parquet 数据类型：**STRING  | 6 | 
| tgw-src-eni | 流的源中转网关连接 ENI 的 ID。<br />**Parquet 数据类型：**STRING  | 6 | 
| tgw-dst-eni | 流的目标中转网关连接 ENI 的 ID。**Parquet 数据类型：**STRING  | 6 | 
| tgw-src-az-id | 包含记录其流量的源中转网关的可用区的 ID。如果流量来自子位置，则记录会对此字段显示“-”符号。<br />**Parquet 数据类型：**STRING | 6 | 
| tgw-dst-az-id | 包含记录其流量的目标中转网关的可用区的 ID。<br />**Parquet 数据类型：**STRING | 6 | 
| tgw-pair-attachment-id |  根据流向的不同，这要么是流量的出口连接 ID，要么是入口连接 ID。<br />**Parquet 数据类型：**STRING | 6 | 
| srcaddr | 传入流量的源地址。<br />**Parquet 数据类型：**STRING | 2 | 
| dstaddr | 传出流量的目标地址。<br />**Parquet 数据类型：**STRING | 2 | 
| srcport | 流量的源端口。<br />**Parquet 数据类型：**INT\_32  | 2 | 
| dstport | 流量的目标端口。<br />**Parquet 数据类型：**INT\_32 | 2 | 
| protocol | 流量的 IANA 协议编号。有关更多信息，请参阅[分配的 Internet 协议编号](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)。<br />**Parquet 数据类型：**INT\_32 | 2 | 
| packets | 在流中传输的数据包的数量。<br />**Parquet 数据类型：**INT\_64 | 2 | 
| bytes | 在流中传输的字节数。<br />**Parquet 数据类型：**INT\_64 | 2 | 
| start | 在聚合时间间隔内，接收流的第一个数据包的时间（以 Unix 秒为单位）。在中转网关传输或收到数据包之后,最多 60 秒。<br />**Parquet 数据类型：**INT\_64 | 2 | 
| end | 在聚合时间间隔内，接收流的最后一个数据包的时间（以 Unix 秒为单位）。在中转网关传输或收到数据包之后,最多 60 秒。<br />**Parquet 数据类型：**INT\_64 | 2 | 
| log-status | 流日志的状态：[See the AWS documentation website for more details](http://docs.amazonaws.cn/vpc/latest/tgw/tgw-flow-logs.html)<br />**Parquet 数据类型：**STRING | 2 | 
| type | 流量的类型。可能的值包括 IPv4、IPv6 和 EFA 有关更多信息，请参阅*《Amazon EC2 用户指南》*中的[弹性 IP 适配器](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/efa.html)。<br />**Parquet 数据类型：**STRING | 3 | 
| packets-lost-no-route | 由于未指定路由而丢失的数据包。<br />**Parquet 数据类型：**INT\_64  | 6 | 
| packets-lost-blackhole | 数据包由于黑洞而丢失。<br />**Parquet 数据类型：**INT\_64  | 6 | 
| packets-lost-mtu-exceeded | 由于大小超过 MTU 而丢失的数据包。<br />**Parquet 数据类型：**INT\_64  | 6 | 
| packets-lost-ttl-expired | 由于时间过期而丢失的数据包。<br />**Parquet 数据类型：**INT\_64  | 6 | 
| tcp-flags | 以下 TCP 标志的位掩码值：[See the AWS documentation website for more details](http://docs.amazonaws.cn/vpc/latest/tgw/tgw-flow-logs.html) 当流日志条目仅包含 ACK 数据包时，标记值为 0，而不是 16。 <br />有关 TCP 标志的一般信息（例如 FIN、SYN 和 ACK 等标志的含义），请参阅 Wikipedia 上的 [TCP 分段结构](https://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure)。<br />TCP 标志可以在聚合间隔 OR-ed 内。对于短连接，可以在流日志记录的同一行上设置标志，例如，19 代表 SYN-ACK 和 FIN，3 代表和 SYN 和 FIN。<br />**Parquet 数据类型：**INT\_32 | 3 | 
| region | 包含记录其流量的中转网关的区域。<br />**Parquet 数据类型：**STRING | 4 | 
| flow-direction | 相对于公交网关的流量方向。可能的值包括：ingress \| egress。<br />**Parquet 数据类型：**STRING | 5 | 
| pkt-src-aws-service | srcaddr如果源 [IP 地址用于 Amazon 服务，则为 IP 地址范围](https://docs.amazonaws.cn/vpc/latest/userguide/aws-ip-ranges.html)子集的名称。可能的值包括：AMAZON \| AMAZON\_APPFLOW \| AMAZON\_CONNECT \| API\_GATEWAY \| CHIME\_MEETINGS \| CHIME\_VOICECONNECTOR \| CLOUD9 \| CLOUDFRONT \| CODEBUILD \| DYNAMODB \| EBS \| EC2 \| EC2\_INSTANCE\_CONNECT \| GLOBALACCELERATOR \| KINESIS\_VIDEO\_STREAMS \| ROUTE53 \| ROUTE53\_HEALTHCHECKS \| ROUTE53\_HEALTHCHECKS\_PUBLISHING \| ROUTE53\_RESOLVER \| S3 \| WORKSPACES\_GATEWAYS。<br />**Parquet 数据类型：**STRING | 5 | 
| pkt-dst-aws-service | 如果目标 IP 地址用于 Amazon 服务，则为该dstaddr字段的 IP 地址范围子集的名称。有关可能的值的列表，请参阅 pkt-src-aws-service 字段。Parquet 数据类型：STRING | 5 | 

## 控制对流日志的使用
<a name="controlling-use-of-flow-logs"></a>

默认情况下，用户无权使用流日志。您可以创建一个用户策略，该策略向用户授予创建、描述和删除流日志的权限。有关更多信息，请参阅 *Amazon EC2 API 参考* 中的[向 IAM 用户授予针对 Amazon EC2 资源的必需权限](https://docs.amazonaws.cn/AWSEC2/latest/APIReference/ec2-api-permissions.html)。

下面是一个示例策略，该策略向用户授予创建、描述和删除流日志的完全权限。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteFlowLogs",
        "ec2:CreateFlowLogs",
        "ec2:DescribeFlowLogs"
      ],
      "Resource": "*"
    }
  ]
}
```

------

还需要一些额外的 IAM 角色和权限配置，具体取决于您是发布到 CloudWatch 日志还是 Amazon S3。有关更多信息，请参阅[Amazon Transit Gateway 流量记录亚马逊 CloudWatch 日志中的记录](flow-logs-cwl.md)和[Amazon Transit Gateway 流量记录亚马逊 S3 中的记录](flow-logs-s3.md)。

## 中转网关流日志定价
<a name="flow-logs-tgw-pricing"></a>

发布中转网关流日志时，将收取已出售日志的数据摄取和存储费用。有关发布销售日志时定价的更多信息，请打开 [Amazon P CloudWatch ](https://www.amazonaws.cn/cloudwatch/pricing/) ricing，然后在 “**付费套餐**” 下，选择 “**日志**” 并找到 **Vended Logs。**