如何将 CloudWatch Logs Insights 查询用于我的 VPC 流日志?

2 分钟阅读
0

我想使用 Amazon CloudWatch Logs Insights 查询来处理日志组中的 Amazon Virtual Private Cloud (Amazon VPC) 流日志。

简短描述

当打开针对 CloudWatch Logs 的 VPC 流日志时,您会看到每个弹性网络接口对应一个日志流。如果出现问题,请使用 CloudWatch Logs Insights 来确定潜在原因并验证已部署的修复。

有关 CloudWatch Logs Insights 支持的日志类型的详细信息,请参阅支持的日志和发现的字段

解决方法

运行查询

使用 CloudWatch 控制台运行示例查询运行自定义查询。要运行之前运行的查询,请选择 History(历史记录)。要导出结果,请选择 Export results(导出结果),然后选择一种格式。

查询示例

场景 1

您有 Web 服务器、应用程序服务器和数据库服务器。您收到超时或 HTTP 503 错误,并且您想确定错误的原因。

请使用以下示例变量运行查询:

  • Action(操作)设置为 REJECT,以便只返回被拒绝的连接。
  • 该查询仅包括内部网络。
  • 服务器 IP 地址列表同时显示入站和出站连接(srcAddrdstAddr)。
  • Limit(限制)设置为 5,以便仅显示前五个条目。
  • Web 服务器 IP 地址为 10.0.0.4。
  • 应用程序服务器 IP 地址为 10.0.0.5。
  • 数据库服务器 IP 地址为 10.0.0.6。

查询示例:

filter(
   action="REJECT" and
   dstAddr like /^(10\.|192\.168\.)/ and  
   srcAddr like /^(10\.|192\.168\.)/ and
   (srcAddr = "10.0.0.4" or dstAddr = "10.0.0.4" or srcAddr = "10.0.0.5" or dstAddr = "10.0.0.5" or srcAddr = "10.0.0.6" or dstAddr = "10.0.0.6")
)
| stats count(*) as records by srcAddr,dstAddr,dstPort,protocol
| sort records desc
| limit 5

场景 2

您在网络接口上遇到间歇性超时情况。要检查一段时间内网络接口上是否存在拒绝,请运行以下查询:

fields @timestamp, interfaceId, srcAddr, dstAddr, action
| filter (interfaceId = 'eni-05012345abcd' and action = 'REJECT')
| sort @timestamp desc
| limit 5

场景 3

要分析 VPC 流日志并生成有关特定网络接口的报告,请运行以下查询:

fields @timestamp, @message
 | stats count(*) as records by dstPort, srcAddr, dstAddr as Destination
 | filter interfaceId="eni-05012345abcd"
 | filter dstPort="80" or dstPort="443" or dstPort="22" or dstPort="25"
 | sort HitCount desc
 | limit 10

上述查询会检查发送到不同端口的流量。

场景 4

要筛选 VPC 流日志并列出尝试连接到您的 VPC 中特定 IP 地址或 CIDR 的 IP 地址,请运行以下查询之一。

特定的 IP 地址:

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter srcAddr like "172.31."

特定的 CIDR:

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter isIpv4InSubnet(srcAddr,"172.31.0.0/16")

有关更多查询示例,请参阅示例查询

AWS 官方
AWS 官方已更新 2 个月前