VPC 流日志

VPC 流日志会记录虚拟机 (VM) 实例(包括用作 Google Kubernetes Engine 节点的实例)发送和接收的网络流样本。这些日志可用于网络监控、取证、实时安全分析和费用优化。

您可以在 Cloud Logging 中查看流日志,并将日志导出至 Cloud Logging 导出功能支持的任意目的地。

流日志通过连接从 Compute Engine 虚拟机进行汇总并实时导出。通过订阅 Pub/Sub,您可以使用实时流式传输 API 来分析流日志。

使用场景

网络监控

VPC 流日志为您提供网络吞吐量和性能的实时显示。您可以执行以下操作:

  • 监控 VPC 网络
  • 执行网络诊断
  • 按虚拟机和应用过滤流日志以了解流量变化
  • 了解流量增长情况以执行容量预测

了解网络使用情况并优化网络流量费用

您可以使用 VPC 流日志分析网络使用情况。您可以分析网络流以获取以下信息:

  • 地区和区域之间的流量
  • 发往互联网特定国家/地区的流量
  • 用量最高者

根据分析结果,您可以优化网络流量费用。

网络取证

您可以利用 VPC 流日志进行网络取证。例如,如果出现突发事件,您可以检查以下内容:

  • 哪些 IP 在何时与谁进行过通信
  • 通过分析所有入站和出站网络流来调查任何遭入侵的 IP

实时安全分析

您可以通过 Pub/Sub 利用实时流式传输 API,还可以集成 SIEM(安全信息和事件管理)系统。这样能够进行实时监控、事件关联、分析和安全提醒。

规格

  • VPC 流日志是 Andromeda 的一部分,后者是为 VPC 网络提供支持的软件。VPC 流日志在启用后不会造成延迟或性能损失。
  • VPC 流日志支持 VPC 网络,但不支持传统网络。您可以按子网启用或停用 VPC 流日志。为子网启用 VPC 流日志后,VPC 流日志会从该子网中的所有虚拟机实例收集数据。
  • VPC 流日志对每个虚拟机的 TCP、UDP、ICMP、ESP 和 GRE 流进行采样。系统将对入站和出站流进行采样。这些流量可以在 Google Cloud 内,也可以在 Google Cloud 与其他网络之间。如果通过采样采集流,VPC 流日志将生成该流的日志。每个流记录都包含记录格式部分中所述的信息。
  • VPC 流日志通过以下方式与防火墙规则进行交互:
    • 出站数据包在出站防火墙规则之前进行抽样。即使出站防火墙规则拒绝出站数据包,VPC 流日志也可以对这些数据包进行采样。
    • 入站数据包依照入站防火墙规则进行采样。如果入站防火墙规则拒绝入站数据包,则 VPC 流日志不会对这些数据包进行采样。
  • 您可以在 VPC 流日志中使用过滤条件以仅生成某些日志。
  • VPC 流日志支持具有多个网络接口的虚拟机。 您需要为每个 VPC 中包含网络接口的每个子网启用 VPC 流日志。
  • 如需记录同一 Google Kubernetes Engine (GKE) 节点上的 Pod 之间的流,您必须为集群启用节点内可见性
  • 非虚拟机资源(例如 Cloud Run 或本地端点)不会报告 VPC 流日志。

日志收集

按特定时间间隔为每个虚拟机连接收集流日志。针对给定连接的给定时间间隔收集的所有数据包会在一段时间(汇总时间间隔)汇总到单个流日志条目。然后,此数据会发送到 Logging

日志默认在 Logging 中存储 30 天。如果您希望延长日志保留时间,可以设置自定义保留期限导出日志到支持的平台。

日志采样和处理

Google Cloud 会对离开和进入虚拟机的数据包进行采样,以生成流日志。并非每个数据包都会被捕获到其自己的日志记录中。每 30 个数据包中约有 1 个数据包会被捕获,不过根据虚拟机上负载的不同,具体采样率可能会更低。此比率无法调整。

流日志生成后,Google Cloud 会按照以下过程来处理这些流日志:

  1. 过滤:您可以指定只生成与指定条件匹配的日志。例如,您可以过滤,以便仅生成特定虚拟机的日志或仅生成具有特定元数据值的日志,并舍弃其余日志。 如需了解详情,请参阅日志过滤
  2. 汇总:系统会按可配置的汇总时间间隔汇总有关采样的数据包的信息,以生成一个流日志条目
  3. 流日志采样:这是第二个采样流程。系统会根据可配置的采样率参数,对流日志条目进行进一步采样。
  4. 元数据:如果停用,则会舍弃所有元数据注释。如果要保留元数据,可以指定保留所有字段或某些指定的字段。如需了解详情,请参阅元数据注解
  5. 写入 Logging:最终日志条目会写入 Cloud Logging。

由于 VPC 流日志不会采集每个数据包,因此它会通过从采集的数据包进行插值来补偿丢失的数据包。由于初始配置和用户可配置的采样设置而丢失的数据包会发生这种情况。

尽管 Google Cloud 无法捕获每一个数据包,日志记录捕获量也可能相当庞大。您可以通过调整日志收集的以下方面来平衡流量可见性和存储费用需求:

  • 汇总时间间隔:在一段时间间隔内采样的数据包会汇总到单个日志条目。此时间间隔可以是 5 秒(默认)、30 秒、1 分钟、5 分钟、10 分钟或 15 分钟。
  • 采样率:在写入 Logging 之前,可以对日志数进行采样,以减少其数量。默认情况下,日志条目量按 0.5 (50%) 扩缩,这意味着会保留一半的条目。您可以将此值的范围设置为从 1.0(100%,保留所有日志条目)到 0.0(0%,不保留任何日志)。
  • 元数据注释:默认情况下,流日志条目使用元数据信息进行注释,例如来源虚拟机和目的地虚拟机的名称或外部来源和目的地的地理地区。元数据注释可以关闭,也可以仅指定特定注释以节省存储空间。
  • 过滤:默认情况下,系统会为子网中的每个流生成日志。您可以设置过滤条件,以便仅生成符合特定条件的日志。

价格

适用 Logging、BigQuery 或 Pub/Sub 标准价格。如需了解 VPC 流日志价格,请参阅 Network Telemetry 价格

后续步骤