VPC Flow Logs记录了VPC内进出网卡的流量,日志保存在S3或CloudWatch Logs。如果保存在S3则使用Athena来查询;如果保存在CloudWatch Logs则使用CloudWatch Logs Insights来查询
Flow Logs一般用于以下任务:
Flow Log的开启和关闭都不会影响VPC的网络性能。Flow Log可以开启在VPC、子网或ENI级别,如果开启在子网或VPC级别,下面的每个ENI都会被监控。
VPC Flow Logs的格式如下:

进入VPC页面,选择VPC,点击Create flow log:

另一个创建的入口是在VPC下的Flow logs页面进行创建:

输入flow log的名称;flow log有两种行为——Accept或Reject,可以只记录某种行为,也可以全部记录:

提前创建一个Cloudwatch Log Group(例如vpc-flow-log)用于接收Flow Log;
创建IAM Role,用于授权写到CloudWatch Log,参考: https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-cwl.html#flow-logs-iam-role
这个Role的信任关系里,设置为vpc-flow-logs.amazonaws.com:

继续VPC Flow Logs的开启过程,日志的格式可以选择默认,也可以自定义,只选择关注的字段:

点击创建。
创建完成后,进入到CloudWatch Logs页面:

日志格式如下:

在Logs Insights里分析日志:

Logs Insights使用特定的查询语言来分析日志:

上面提到,Flow Log可以开启在VPC、子网或ENI级别。如果开启在子网或VPC级别,下面的每个ENI都会被监控。子网中开启的入口如下:


如果ENI所在的子网或VPC已经开启了Flow Logs,那么ENI上也自动已开启
VPC Flow Logs不会记录以下类型的流量:
Wireshark/tcpdump
traceroute
telnet
nslookup
ping(在使用的时候注意要放开ICMP协议,仅放开所有tcp流量的访问是没用的)