日志和指标

日志记录

Cloud NAT 日志记录功能可让您记录 NAT 连接和错误。启用 Cloud NAT 日志记录功能后,系统可针对以下各种情景生成一个日志条目:

  • 创建好使用 NAT 的网络连接时。
  • 数据包因没有可用于 NAT 的端口而被丢弃时。

您可以选择记录这两种事件,也可以只记录其中一种事件。

创建的日志会发送至 Cloud Logging

规范

以下规范适用于 Cloud NAT 日志记录功能:

  • Cloud NAT 日志记录功能仅处理 TCP 和 UDP 流量。

  • Cloud NAT 日志记录功能仅记录丢弃的数据包,前提是这些数据包是出站 TCP 和 UDP 数据包。它不会记录丢弃的传入数据包。例如,如果对出站请求的入站响应因任何原因而被丢弃,则不会记录任何错误。

每个虚拟机实例在每单位时间内只能生成一定数量的日志条目,此数量与其 vCPU 数量成比例。虚拟机可以为每个 vCPU 每秒生成 50-100 个日志条目。

  • 此速率阈值会影响可记录的事件数量。即使某些事件被滤除,它们的出现次数也会计入可能的日志条目数。将日志限制为“仅限错误”或“仅限网络地址转换连接”不一定会增加查看的日志条目数。例如,如果您选择仅记录成功的连接,那么失败连接尝试和 NAT 错误的时间过长仍会限制成功连接日志条目数。

  • Cloud NAT 日志记录功能不会记录每个数据包。即使虚拟机的速率阈值尚未达到,某些条件也可能导致事件从日志中省略。您应该依靠 Cloud NAT 日志记录功能中的条目来做出明智的决策,但是您不应该认为缺少条目意味着事件没有发生。

配置日志记录

如需配置 Cloud NAT 日志记录,请按以下步骤操作。

启用日志记录

如果启用日志记录功能,系统会默认将所有收集的日志发送到 Cloud Logging。您可以过滤这些日志,以便系统只发送特定日志。

您还可以在创建或修改 NAT 网关时指定这些值。以下说明介绍了如何为现有 NAT 网关启用日志记录功能。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击高级配置

  5. Logging 部分中,选择以下任一选项:

    • 无日志记录:停用日志记录功能
    • 翻译和错误:将所有日志发送到 Logging
    • 仅限翻译:仅在创建连接时发送日志;不记录丢弃的数据包
    • 仅限错误:在数据包因没有可用的端口而被丢弃时发送日志;不记录新连接
  6. 点击保存

gcloud

使用 gcloud compute routers nats update 命令。 如果您的 NAT 网关配置为将 IPv6 转换为 IPv4(预览版),请改用 gcloud beta compute routers nats update 命令

以下命令会为现有 NAT 网关启用日志记录功能。

在每条命令中,替换以下内容:

  • NAT_GATEWAY:NAT 网关的名称
  • ROUTER_NAME:托管 NAT 网关的 Cloud Router 路由器的名称
  • REGION:Cloud Router 路由器的地区

如需记录网络地址转换事件和错误,请使用以下命令:

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-logging

如需仅记录网络地址转换事件,请使用以下命令:

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-logging \
    --log-filter=TRANSLATIONS_ONLY

如需仅记录错误,请使用以下命令:

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-logging \
    --log-filter=ERRORS_ONLY

清除日志过滤条件

如果您设置了过滤条件,则可以将其清除。清除日志过滤条件意味着只要启用了日志记录功能,系统就会记录网络地址转换事件和错误。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击高级配置

  5. Logging 部分中,选择转换和错误

  6. 点击保存

gcloud

使用 gcloud compute routers nats update 命令。 如果您的 NAT 网关配置为将 IPv6 转换为 IPv4(预览版),请改用 gcloud beta compute routers nats update 命令。以下命令中的 --log-filter=ALL 标志会将日志过滤条件设置为接受所有日志。

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --log-filter=ALL

替换以下内容:

  • NAT_GATEWAY:NAT 网关的名称
  • ROUTER_NAME:托管 NAT 网关的 Cloud Router 路由器的名称
  • REGION:Cloud Router 路由器的地区

停用日志记录

如需停用日志记录功能,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击高级配置

  5. 日志记录部分中,选择无日志记录

  6. 点击保存

gcloud

使用 gcloud compute routers nats update 命令。 如果您的 NAT 网关配置为将 IPv6 转换为 IPv4(预览版),请改用 gcloud beta compute routers nats update 命令

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --no-enable-logging

替换以下内容:

  • NAT_GATEWAY:NAT 网关的名称
  • ROUTER_NAME:托管 NAT 网关的 Cloud Router 路由器的名称
  • REGION:Cloud Router 路由器的地区

确定日志记录状态

如需确定日志记录功能的状态,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击高级配置

  5. 检查 Logging 部分中的选择。

gcloud

gcloud compute routers nats describe NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION

替换以下内容:

  • NAT_GATEWAY:NAT 网关的名称
  • ROUTER_NAME:托管 NAT 网关的 Cloud Router 路由器的名称
  • REGION:Cloud Router 路由器的地区

查看日志

如需查看 NAT 日志,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    进入日志浏览器

    • 如需查看所有 NAT 日志,请在日志名称菜单中选择 Cloud NAT 网关
    • 如需仅查看一个区域的日志,请在日志名称菜单中选择 Cloud NAT 网关,然后向右滑动光标选择一个区域。
    • 如需仅查看一个网关的日志,请在日志名称菜单中选择 Cloud NAT 网关,接着向右滑动光标以选择一个地区,然后再次向右滑动光标以选择一个网关。

或者,将以下表达式输入查询编辑器中:

resource.type="nat_gateway"
logName="projects/{#project_id}/logs/compute.googleapis.com%2Fnat_flows"

gcloud

gcloud logging read 'resource.type=nat_gateway' \
    --limit=10 \
    --format=json

其中:

  • resource.type=nat_gateway:将输出限制为 NAT 网关
  • --limit=10:将输出限制为 10 个条目;您可以输入其他值来查看更多或更少的条目,也可以将其完全省略以查看日志的连续滚动
  • --format=json:以 JSON 格式显示输出

如需了解更多选项,请参阅读取日志条目

您可以为资源日志配置导出基于日志的指标

记录的内容

Cloud NAT 日志条目包含对监控和调试 NAT 流量有用的信息。日志条目包含以下类型的信息:

  • 大多数 Google Cloud 日志中显示的常规信息,例如严重性、项目 ID、项目编号和时间戳。
  • 与 Cloud NAT 相关的具体信息。某些日志字段包含本身为多个字段的条目。下表显示了这些条目和字段说明。

日志字段

字段 含义
connection object(NatIpConnection) 一个 7 元组,描述了此连接的来源虚拟机 IP 地址和端口、NAT 来源 IP 地址和端口、目标 IP 地址和端口,以及 IP 地址协议。
allocation_status enum 指示此连接是已成功分配还是已弃用。OKDROPPED 之一。
gateway_identifiers object(NatGateway) 连接使用的 NAT 网关配置。
endpoint object(InstanceDetails) 虚拟机实例详情。在共享 VPC 配置中,project_id 与服务项目相对应。
vpc object(VpcDetails) 虚拟私有云 (VPC) 网络详细信息。在共享 VPC 配置中,project_id 与宿主项目的相应参数相对应。
destination object(DestinationDetails) 连接目标的详细信息。

NatIpConnection 字段格式

字段 类型 说明
src_ip 字符串 来源 IP 地址
src_port int32 来源端口
nat_ip 字符串 NAT IP 地址
nat_port int32 NAT 分配的端口
dest_ip 字符串 目标 IP 地址
dest_port int32 目标端口
protocol int32 IANA 协议编号

NatGateway 字段格式

字段 类型 说明
gateway_name 字符串 NAT 网关的名称
router_name 字符串 与 NAT 网关相关联的 Cloud Router 路由器
region 字符串 Cloud Router 路由器的地区

InstanceDetails 字段格式

字段 类型 说明
project_id 字符串 包含此虚拟机的项目的 ID
vm_name 字符串 虚拟机的实例名称
region 字符串 虚拟机的区域
zone 字符串 虚拟机的区域

VpcDetails 字段格式

字段 类型 说明
project_id 字符串 包含此网络的项目的 ID
vpc_name 字符串 运行虚拟机的网络
subnetwork_name 字符串 运行虚拟机的子网

DestinationDetails 字段格式

字段 类型 说明
geo_location object(GeographicDetails) 如果连接的目标未在 Google Cloud中,则此字段中填充可用位置元数据。
instance object(InstanceDetails) 如果连接的目标是与来源在同一项目内的实例,则此字段将填充虚拟机实例详细信息。
vpc object(VpcDetails) 如果连接的目标与来源位于同一项目中,则此字段将填充目标 VPC 网络详细信息。如果目标是跨项目 VPC 网络,则此字段将显示空白。

GeographicDetails 字段格式

字段 类型 说明
continent 字符串 外部端点所在的大洲
country 字符串 外部端点所在的国家/地区
region 字符串 外部端点所在的地区
city 字符串 外部端点所在的城市
asn 字符串 此端点所属外部网络的自治系统编号 (ASN)。

示例

示例 1:来自共享 VPC 网络中的虚拟机实例的 NAT 型 TCP 连接记录进入法国的外部服务器。

{
insertId: "1the8juf6vab1t"
jsonPayload: {
       connection: {
            Src_ip: "10.0.0.1"
            Src_port: 45047
            Nat_ip: "203.0.113.17"
            Nat_port: 34889
            dest_ip : "198.51.100.142"
            Dest_port: 80
            Protocol: "tcp"
       }
       allocation_status: "OK"
       Gateway_identifiers: {
             Gateway_name: "my-nat-1"
             router_name: "my-router-1"
             Region: "europe-west1"
       }
       Endpoint: {
             Project_id: "service-project-1"
             Vm_name: "vm-1"
             Region: "europe-west1"
             Zone: "europe-west1-b"
       }
       Vpc: {
             Project_id: "host-project"
             Vpc_name: "network-1"
             Subnetwork_name: "subnetwork-1"
       }
       Destination: {
             Geo_location: {
                   Continent: "Europe"
                   Country: "France"
                   Region: "Nouvelle-Aquitaine"
                   City: "Bordeaux"
             }
       }
}
logName: "projects/host-project/logs/compute.googleapis.com%2Fnat_flows"
receiveTimestamp: "2018-06-28T10:46:08.123456789Z"
resource: {
      labels: {
            region: "europe-west1-d"
            project_id: "host-project"
            router_id: "987654321123456"
            gateway_name: "my-nat-1"
      }
      type: "nat_gateway"
}
labels: {
      nat.googleapis.com/instance_name: "vm-1"
      nat.googleapis.com/instance_zone: "europe-west1-b"
      nat.googleapis.com/nat_ip: "203.0.113.17"
      nat.googleapis.com/network_name: "network-1"
      nat.googleapis.com/router_name: "my-router-1"
      nat.googleapis.com/subnetwork_name: "subnetwork-1"
}
timestamp: "2018-06-28T10:46:00.602240572Z"
}

示例 2:由于没有可用端口而丢弃数据包的记录。 发送方虚拟机尝试访问同一项目中另一个虚拟机的外部 IP 地址。

{
insertId: "1the8juf6vab1l"
jsonPayload: {
       connection: {
            Src_ip: "10.0.128.1"
            Src_port: 45047
            dest_ip : "192.0.2.87"
            Dest_port: 80
            Protocol: "tcp"
       }
       allocation_status: "DROPPED"
       Gateway_identifiers: {
             Gateway_name: "my-nat-2"
             Cloud_router: "my-router-1"
             Region: "europe-west1"
       }
       Endpoint: {
             Project_id: "service-project-1"
             Vm_name: "vm-1"
             Region: "europe-west1"
             Zone: "europe-west1-b"
       }
       Vpc: {
             Project_id: "host-project"
             Vpc_name: "network-1"
             Subnetwork_name: "subnetwork-1"
       }
       Destination: {
             Instance: {
                   Project_id: "service-project-1"
                   Vm_name: "vm-2"
                   Region: "asia-east1"
                   Zone: "asia-east1-b"
             }
       }
}
logName: "projects/host-project/logs/compute.googleapis.com%2Fnat_flows"
receiveTimestamp: "2018-06-28T10:46:09.123456789Z"
resource: {
       labels: {
              region: "europe-west1-d"
              project_id: "host-project"
              router_id: "987654321123456"
              gateway_name: "my-nat-2"
       }
       type: "nat_gateway"
}
timestamp: "2018-06-28T10:46:01.602240572Z"
}

Cloud NAT 日志记录价格

请参阅日志记录价格

监控

Cloud NAT 向 Cloud Monitoring 提供关键指标,可让您深入了解机群的 NAT 网关使用情况。

系统会自动将指标发送至 Cloud Monitoring。在这里,您可以创建自定义信息中心、设置提醒以及查询指标。

以下是所需的 Identity and Access Management (IAM) 角色:

  • 对于在不同项目中定义了虚拟机和 NAT 网关的共享 VPC 用户,若要访问虚拟机级层指标,这些用户需要拥有每个虚拟机的项目的 roles/monitoring.viewer IAM 角色。

  • 对于 NAT 网关资源,若要访问网关指标,您需要拥有包含该网关的项目的 roles/monitoring.viewer IAM 角色。

查看预定义信息中心

Cloud NAT 提供了一组可显示网关相关活动的预定义信息中心:

  • 打开的连接数
  • 由 NAT 处理的出站流量数据(速率)
  • 由 NAT 处理的入站流量数据(速率)
  • 端口使用量
  • NAT 分配错误
  • 发送的数据包的丢包率
  • 接收的数据包的丢包率

如需从特定网关的详情页面查看预定义信息中心,请按照以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    进入 Cloud NAT

  2. 点击现有网关。

  3. 点击监控标签页。

  4. 向下滚动可查看所有信息中心。您可以使用页面顶部的控件将查看时间从 1 小时改为 30 天。将鼠标悬停在图表某个点上,即可查看该特定时间的详细信息。

定义自定义信息中心

如需创建自定义信息中心以查看虚拟机实例指标NAT 网关指标,请按照以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,转到 信息中心页面:

    前往信息中心

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 点击创建信息中心
  3. 可选:使用信息中心的描述性名称更新信息中心标题。
  4. 点击添加微件,然后选择指标
  5. 展开指标菜单,在过滤条件栏中输入 Cloud NAT GatewayVM Instance,然后使用子菜单来选择特定的资源类型和指标:
    1. 活动资源菜单中,选择 Cloud NAT 网关虚拟机实例
    2. 活动指标类别菜单中,选择 NAT
    3. 活动指标菜单中,选择要查看的指标。
    4. 点击应用
  6. 合并时序:
    • 如需显示每个时序,请确保在汇总元素中,将第一个菜单设置为不汇总,并将第二个菜单设置为
    • 如需组合时间序列,请在汇总元素中,使用第一个菜单选择一个函数,并使用第二个菜单选择标签。如果第二个菜单设置为,则图表会显示一个时序。

      例如,如需显示按可用区分组后的时序平均值,请将第一个菜单设置为平均值,并将第二个菜单设置为可用区

    如需了解如何组合时序,请参阅选择如何显示已绘制成图表的数据

  7. 对于要添加到信息中心的每个其他微件,请点击添加微件,完成对话框,然后选择应用

    如需详细了解如何添加微件,请参阅以下页面:

定义提醒政策

如需创建基于指标的提醒政策,请按照以下步骤操作:

控制台

您可以创建提醒政策来监控指标的值,当这些指标违反条件时便会通知您。

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 如果您尚未创建通知渠道并希望收到通知,请点击修改通知渠道并添加通知渠道。添加渠道后,返回到提醒页面。
  3. 提醒页面中,点击创建政策
  4. 如需选择指标,请展开选择指标菜单,然后执行以下操作:
    1. 如需将菜单限制为相关条目,请在过滤栏中输入 Cloud NAT gatewayVM Instance。如果过滤菜单后没有显示任何结果,请停用仅显示活跃的资源和指标切换开关。
    2. 对于资源类型,请选择 Cloud NAT 网关虚拟机实例
    3. 选择指标类别指标,然后选择应用
  5. 点击下一步
  6. 配置提醒触发器页面中的设置决定了何时触发提醒。 选择条件类型,并在必要时指定阈值。如需了解详情,请参阅创建指标阈值提醒政策
  7. 点击下一步
  8. 可选:如需将通知添加到您的提醒政策中,请点击通知渠道。在对话框中,从菜单中选择一个或多个通知渠道,然后点击确定
  9. 可选:更新突发事件自动关闭持续时间。此字段用于确定在缺少指标数据的情况下 Monitoring 何时关闭突发事件。
  10. 可选:点击文档,然后添加您希望包含在通知消息中的任何信息。
  11. 点击提醒名称,然后输入提醒政策的名称。
  12. 点击创建政策
如需了解详情,请参阅提醒概览

指标报告频率和保留

系统每一 (1) 分钟会对 Cloud NAT 的指标进行一次批处理,然后将其导出到 Monitoring。监控数据会保留六 (6) 周。默认情况下,信息中心可按 1H(1 小时)、6H(6 小时)、1D(1 天)、1W(1 周)、6W(6 周)时间间隔提供数据分析。您可以在从 1 分钟到 6 周的任何时间间隔内手动请求执行分析。

虚拟机实例指标

此表中的“指标类型”字符串必须以 compute.googleapis.com/ 为前缀。表中的条目已省略该前缀。

指标类型发布阶段
显示名
种类、类型、单位
受监控的资源
说明
标签
nat/allocated_ports GA
已分配的端口
GAUGEINT64{port}
gce_instance
NAT 网关分配给虚拟机的端口数。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
nat_ip:分配给 NAT 网关的 NAT IP 地址。
nat/closed_connections_count GA
关闭的连接数
DELTAINT64{connection}
gce_instance
NAT 网关上关闭的连接数。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/dropped_received_packets_count GA
收到但被丢弃的数据包数
DELTAINT64{packet}
gce_instance
NAT 网关收到但丢弃的数据包数。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/dropped_sent_packets_count GA
发送但丢弃的数据包数
DELTAINT64{packet}
gce_instance
NAT 网关发送但丢弃的数据包数。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
reason:数据包丢弃的原因。可能的值为 OUT_OF_RESOURCES、ENDPOINT_INDEPENDENCE_CONFLICT。
nat/new_connections_count GA
新的连接数
DELTAINT64{connection}
gce_instance
通过 NAT 网关创建的新连接数。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/open_connections GA
打开的连接数
GAUGEINT64{connection}
gce_instance
目前在 NAT 网关上打开的连接数。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/port_usage GA
端口使用量
GAUGEINT64{port}
gce_instance
从虚拟机到单个目标端点 (IP:port) 的连接数上限。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/received_bytes_count GA
收到的字节数
DELTAINT64By
gce_instance
通过 NAT 网关接收的字节数(目的地 -> 来源)。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/received_packets_count GA
收到的数据包数
DELTAINT64{packet}
gce_instance
通过 NAT 网关接收的数据包数(目的地 -> 来源)。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/sent_bytes_count GA
已发送的字节数
DELTAINT64By
gce_instance
通过 NAT 网关发送的字节数(来源 -> 目的地)。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/sent_packets_count GA
已发送的数据包数
DELTAINT64{packet}
gce_instance
通过 NAT 网关发送的数据包数(来源 -> 目的地)。每 60 秒采样一次。采样后,数据在最长 165 秒的时间内不会显示。
nat_project_number:NAT 网关所属的项目编号。
router_id:NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name:NAT 网关的名称。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。

虚拟机实例过滤维度

label_key 类型 说明
project_id 字符串 虚拟机实例的项目 ID。
instance_id 字符串 虚拟机实例的 ID。
zone 字符串 虚拟机实例所在的区域。
nat_project_number 字符串 NAT 网关所属的项目编号。
router_id 字符串 NAT 网关所属的 Cloud Router 路由器 ID。
nat_gateway_name 字符串 NAT 网关的名称。
nat_ip 字符串 分配给 NAT 网关的 NAT IP 地址。适用于指标 allocated_ports
ip_protocol 字符串 连接的协议。可以是 TCPUDPICMP。 适用于除 allocated_ports 以外的所有指标。
reason 字符串

数据包丢失的原因。可能的值包括:

  • OUT_OF_RESOURCES(如果 Cloud NAT 的 NAT IP 地址或端口耗尽)。
  • ENDPOINT_INDEPENDENCE_CONFLICT(如果发生端点独立冲突)。

适用于指标 dropped_sent_packets_count

NAT 网关指标

此表中的“指标类型”字符串必须以 router.googleapis.com/ 为前缀。表中的条目已省略该前缀。

指标类型发布阶段
显示名
种类、类型、单位
受监控的资源
说明
标签
nat/allocated_ports GA
已分配的端口
GAUGEINT64{port}
nat_gateway
NAT 网关分配给所有虚拟机的端口数。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
nat_ip:端口的 NAT IP 地址。
nat/closed_connections_count GA
关闭的连接数
DELTAINT64{connection}
nat_gateway
NAT 网关上关闭的连接数。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/dropped_received_packets_count GA
收到但被丢弃的数据包数
DELTAINT64{packet}
nat_gateway
NAT 网关收到但丢弃的数据包数。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/dropped_sent_packets_count GA
发送但丢弃的数据包数
DELTAINT64{packet}
nat_gateway
NAT 网关发送但丢弃的数据包数。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
reason:数据包丢弃的原因。可能的值为 OUT_OF_RESOURCES、ENDPOINT_INDEPENDENCE_CONFLICT。
nat/nat_allocation_failed GA
NAT 分配失败
GAUGEBOOL
nat_gateway
指示在向 NAT 网关中的任何虚拟机分配 NAT IP 时是否失败。每 60 秒采样一次。采样后,数据在最长 120 秒的时间内不会显示。
nat/new_connections_count GA
新的连接数
DELTAINT64{connection}
nat_gateway
通过 NAT 网关创建的新连接数。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/open_connections GA
打开的连接数
GAUGEINT64{connection}
nat_gateway
目前在 NAT 网关上打开的连接数。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/port_usage GA
端口使用量
GAUGEINT64{port}
nat_gateway
从虚拟机到单个目标端点 (IP:port) 的连接数上限。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/received_bytes_count GA
收到的字节数
DELTAINT64By
nat_gateway
通过 NAT 网关接收的字节数(目的地 -> 来源)。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/received_packets_count GA
收到的数据包数
DELTAINT64{packet}
nat_gateway
通过 NAT 网关接收的数据包数(目的地 -> 来源)。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/sent_bytes_count GA
已发送的字节数
DELTAINT64By
nat_gateway
通过 NAT 网关发送的字节数(来源 -> 目的地)。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。
nat/sent_packets_count GA
已发送的数据包数
DELTAINT64{packet}
nat_gateway
通过 NAT 网关发送的数据包数(来源 -> 目的地)。每 60 秒采样一次。采样后,数据在最长 225 秒的时间内不会显示。
ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。

网关过滤维度

label_key 类型 说明
project_id 字符串 网关的项目 ID。
region 字符串 网关的地区。
router_id 字符串 NAT 网关所属的 Cloud Router 路由器 ID。
gateway_name 字符串 NAT 网关的名称。
ip_protocol 字符串 连接的协议。可以是 TCPUDPICMP。适用于除 allocated_ports 以外的所有指标。
nat_ip 字符串 分配给 NAT 网关的 NAT IP 地址。适用于指标 allocated_ports
reason 字符串

数据包丢失的原因。可能的值包括:

  • OUT_OF_RESOURCES(如果 Cloud NAT 的 NAT IP 地址或端口耗尽)。
  • ENDPOINT_INDEPENDENCE_CONFLICT(如果发生端点独立冲突)。

适用于指标 dropped_sent_packets_count

使用 Monitoring API 查询指标

您可以使用 Monitoring API 的 v3 projects.timeSeries.list 请求根据 Cloud NAT 指标构建任意查询。

API 示例

使用 1 分钟聚合 timeSeries.list 参数获取为虚拟机分配的端口:

  • 名称:projects/PROJECT_ID
  • 过滤条件:resource.type = "gce_instance" AND metric.name="compute.googleapis.com/nat/allocated_ports" AND metric.labels.nat_gateway_name="nat-1-237227-1569344091-5"
  • interval.start_time:2019-09-24T16:58:53Z
  • interval.end_time:2019-09-24T16:58:53Z
  • aggregation.alignmentPeriod:60s
  • aggregation.crossSeriesReducer:REDUCE_SUM
  • aggregation.perSeriesAligner:ALIGN_SUM
"timeSeries": [
    {
      "resource": {
        "labels": {
          "instance_id": "1406292833167995938",
          "project_id": "PROJECT_ID",
          "zone": "us-west1-c"
        },
        "type": "gce_instance"
      },
      "metric": {
        "labels": {
          "nat_ip": "70.32.157.11",
          "nat_gateway_name": "nat-1-237227-1569344091-5",
          "nat_project_number": "PROJECT_NUMBER",
          "router_id": "1380055590921303155"
        },
        "type": "compute.googleapis.com/nat/allocated_ports"
      },
      "metricKind": "GAUGE",
      "points": [
        {
          "interval": {
            "endTime": "2019-09-24T16:58:53.699Z",
            "startTime": "2019-09-24T16:58:53.699Z"
          },
          "value": {
            "int64Value": "64"
          }
        }
      ],
      "valueType": "INT64"
    },

Cloud NAT 监控价格

使用 Cloud NAT 监控功能无需支付任何费用。

后续步骤