流日志限制
要使用流日志,您需要了解以下限制:
-
创建流日志后,在您选择的网络接口、子网或 VPC 中有活跃流量之前,将无法看到流日志数据。
-
您不能为与您的 VPC 对等的 VPC 启用流日志,除非该对等 VPC 在您的账户中。
-
创建流日志后,将无法更改其配置或者流日志记录格式。例如,您无法将不同的 IAM 角色与流日志关联,或者在流日志记录中添加或删除字段。不过,您可以删除流日志并使用必需的配置创建新的流日志。
-
如果网络接口有多个 IPv4 地址,并且流量发送到辅助私有 IPv4 地址,则流日志会在
dstaddr
字段中显示主要私有 IPv4 地址。要捕获原始目标 IP 地址,请使用pkt-dstaddr
字段创建流日志。 -
如果流量发送到某个网络接口而目标不是网络接口 IP 地址中的任何一个,则流日志会在
dstaddr
字段中显示主要私有 IPv4 地址。要捕获原始目标 IP 地址,请使用pkt-dstaddr
字段创建流日志。 -
如果来自某个网络接口的流量而源不是网络接口 IP 地址中的任何一个,则流日志会在
srcaddr
字段中显示主要私有 IPv4 地址。要捕获原始源 IP 地址,请使用pkt-srcaddr
字段创建流日志。 -
如果流量发送到网络接口或从网络接口发送,则流日志中的
srcaddr
和dstaddr
字段始终显示主要私有 IPv4 地址,而不管数据包源或目标如何。要捕获数据包源或目标,请使用pkt-srcaddr
和pkt-dstaddr
字段创建流日志。 -
当您的网络接口附加到基于 Nitro 的实例时,无论指定的最大聚合时间间隔为多少,聚合时间间隔始终不超过 1 分钟。
-
对于
pkt-srcaddr
和pkt-dstaddr
字段,如果中间层启用了客户端 IP 地址保留,则此字段可能会显示保留的客户端 IP,而不是中间层的 IP 地址。 在聚合时间间隔内可能会跳过一些流日志记录(请参阅可用字段中的 log-status)。这可能是因为存在内部 AWS 容量限制或内部错误。如果使用 AWS Cost Explorer 查看 VPC 流日志费用,并且在流日志聚合时间间隔内跳过了一些流日志,则 AWS Cost Explorer 中报告的流日志数量会高于 Amazon VPC 发布的流日志数量。
-
如果您使用 VPC 屏蔽公共访问权限(BPA):
流日志不会捕获所有 IP 流量。以下类型的流量不予以记录:
-
实例与 Amazon DNS 服务器联系时生成的流量。如果您使用自己的 DNS 服务器,则将记录到该 DNS 服务器的所有流量。
-
Windows 实例为 Amazon Windows 许可证激活而生成的流量。
-
实例元数据传入和传出
169.254.169.254
的流量。 -
Amazon Time Sync Service 的传入和传出
169.254.169.123
的流量。 -
DHCP 流量。
-
镜像源流量的流量。您只会看到镜像目标流量的流量。
-
到默认 VPC 路由器的预留 IP 地址的流量。
-
端点网络接口和网络负载均衡器网络接口之间的流量。
-
地址解析协议(ARP)流量。
特定于版本 7 中可用的 ECS 字段的限制:
要创建带有 ECS 字段的流日志订阅,账户必须至少包含一个 ECS 集群。
如果底层 ECS 任务不属于流日志订阅的所有者,则不计算 ECS 字段。例如,如果您与其他账户(
AccountB
)共享子网(SubnetA
),然后为SubnetA
创建流日志订阅,则如果AccountB
在共享子网中启动 ECS 任务,则您的订阅将收到来自AccountB
启动的 ECS 任务的流量日志,但出于安全考虑,将不会计算这些日志的 ECS 字段。如果在 VPC/子网资源级别创建带有 ECS 字段的流日志订阅,则也会为您的订阅传输为非 ECS 网络接口生成的所有流量。对于非 ECS IP 流量,ECS 字段的值将为“-”。例如,您有一个子网(
subnet-000000
),并且为该子网创建了带有 ECS 字段(fl-00000000
)的流日志订阅。在subnet-000000
中,您可以启动一个连接到互联网并正在积极生成 IP 流量的 EC2 实例(i-0000000
)。您还可以在同一子网中启动正在运行的 ECS 任务(ECS-Task-1
)。由于i-0000000
和ECS-Task-1
都在生成 IP 流量,因此您的流日志订阅fl-00000000
将为两个实体提供流量日志。但是,仅ECS-Task-1
会有您在 logFormat 中包含的 ECS 字段的实际 ECS 元数据。对于i-0000000
相关流量,这些字段的值将为“-”。ecs-container-id
和ecs-second-container-id
在 VPC 流日志服务从 ECS 事件流接收它们时进行排序。不能保证它们的顺序与您在 ECS 控制台或 DescribeTask API 调用中看到的顺序相同。如果容器在任务仍在运行时进入“已停止”状态,则它可能会继续出现在您的日志中。ECS 元数据和 IP 流量日志来自两个不同来源。当我们从上游依赖项中获得所有所需信息后,我们立即开始计算您的 ECS 流量。在您启动新任务后,我们将开始计算您的 ECS 字段:1) 当我们收到底层网络接口的 IP 流量时;2) 当我们收到包含您的 ECS 任务元数据的 ECS 事件以表明该任务正在运行时。在您停止任务后,我们会停止计算您的 ECS 字段:1) 当我们不再收到底层网络接口的 IP 流量或收到延迟超过一天的 IP 流量时;2) 当我们收到包含您的 ECS 任务元数据的 ECS 事件以表明您的任务不再运行时。
仅支持在
awsvpc
网络模式下启动的 ECS 任务。