日志和指标
日志记录
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 网关启用日志记录功能。
控制台
- 在 Google Cloud 控制台中,前往 Cloud NAT 页面。 
- 点击您的 NAT 网关。 
- 点击修改。 
- 点击高级配置。 
- 在日志记录部分中,选择以下选项之一: - 无日志记录:停用日志记录功能
- 翻译和错误:将所有日志发送到 Logging
- 仅限翻译:仅在创建连接时发送日志;不记录丢弃的数据包
- 仅限错误:在数据包因没有可用的端口而被丢弃时发送日志;不记录新连接
 
- 点击保存。 
gcloud
使用 gcloud 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
清除日志过滤条件
如果您设置了过滤条件,则可以将其清除。清除日志过滤条件意味着只要启用了日志记录功能,系统就会记录网络地址转换事件和错误。
控制台
- 在 Google Cloud 控制台中,前往 Cloud NAT 页面。 
- 点击您的 NAT 网关。 
- 点击修改。 
- 点击高级配置。 
- 在日志记录部分中,选择转换和错误。 
- 点击保存。 
gcloud
使用 gcloud 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 路由器的地区
停用日志记录
如需停用日志记录功能,请执行以下操作:
控制台
- 在 Google Cloud 控制台中,前往 Cloud NAT 页面。 
- 点击您的 NAT 网关。 
- 点击修改。 
- 点击高级配置。 
- 在日志记录部分中,选择无日志记录。 
- 点击保存。 
gcloud
使用 gcloud 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 路由器的地区
确定日志记录状态
如需确定日志记录功能的状态,请执行以下操作:
控制台
- 在 Google Cloud 控制台中,前往 Cloud NAT 页面。 
- 点击您的 NAT 网关。 
- 点击修改。 
- 点击高级配置。 
- 检查日志记录部分中的选择。 
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 日志,请执行以下操作:
控制台
- 在 Google Cloud 控制台中,前往 Logs Explorer 页面。 - 如需查看所有 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 | 枚举 | 指示此连接是已成功分配还是已弃用。 OK或DROPPED之一。 | 
| 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 地址1。 | 
| 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.viewerIAM 角色。
- 对于 NAT 网关资源,若要访问网关指标,您需要拥有包含该网关的项目的 - roles/monitoring.viewerIAM 角色。
查看预定义信息中心
Cloud NAT 提供了一组可显示网关相关活动的预定义信息中心:
- 打开的连接数
- 由 NAT 处理的出站流量数据(速率)
- 由 NAT 处理的入站流量数据(速率)
- 端口使用量
- NAT 分配错误
- 发送的数据包的丢包率
- 接收的数据包的丢包率
如需从特定网关的详情页面查看预定义信息中心,请按照以下步骤操作:
控制台
- 在 Google Cloud 控制台中,前往 Cloud NAT 页面。 
- 点击现有网关。 
- 点击监控标签页。 
- 滚动可查看所有信息中心。您可以使用页面顶部的控件将查看时间从 1 小时改为 30 天。将鼠标悬停在图表某个点上,即可查看该特定时间的详细信息。 
定义自定义信息中心
如需创建自定义信息中心以查看虚拟机实例指标或 NAT 网关指标,请按照以下步骤操作:
控制台
- 
在 Google Cloud 控制台中,前往  信息中心页面: 信息中心页面:如果您使用搜索栏查找此页面,请选择子标题为监控的结果。 
- 点击创建信息中心
- 可选:使用信息中心的描述性名称更新信息中心标题。
- 点击添加微件,然后选择指标。
- 展开指标菜单,在过滤条件栏中输入 Cloud NAT Gateway或VM Instance,然后使用子菜单来选择特定的资源类型和指标:- 在活动资源菜单中,选择 Cloud NAT 网关或虚拟机实例。
- 在活动指标类别菜单中,选择 NAT。
- 在活动指标菜单中,选择要查看的指标。
- 点击应用。
 
- 合并时序:
    - 如需显示每个时序,请确保在汇总元素中,将第一个菜单设置为不汇总,并将第二个菜单设置为无。
- 如需组合时间序列,请在汇总元素中,使用第一个菜单选择一个函数,并使用第二个菜单选择标签。如果第二个菜单设置为无,则图表会显示一个时序。 - 例如,如需显示按可用区分组后的时序平均值,请将第一个菜单设置为平均值,并将第二个菜单设置为可用区。 
 如需了解如何组合时序,请参阅选择如何显示已绘制成图表的数据。 
- 对于要添加到信息中心的每个其他微件,请点击添加微件,完成对话框,然后选择应用。 - 如需详细了解如何添加微件,请参阅以下页面: 
定义提醒政策
如需创建基于指标的提醒政策,请按照以下步骤操作:
控制台
您可以创建提醒政策来监控指标的值,当这些指标违反条件时便会通知您。
- 
在 Google Cloud 控制台中,前往 notifications提醒页面: 如果您使用搜索栏查找此页面,请选择子标题为监控的结果。 
- 如果您尚未创建通知渠道并希望收到通知,请点击修改通知渠道并添加通知渠道。添加渠道后,返回到提醒页面。
- 在提醒页面中,点击创建政策。
- 如需选择指标,请展开选择指标菜单,然后执行以下操作:
        - 如需将菜单限制为相关条目,请在过滤条件栏中输入 Cloud NAT gateway或VM Instance。如果过滤菜单后没有显示任何结果,请停用仅显示活跃的资源和指标切换开关。
- 对于资源类型,请选择 Cloud NAT 网关或虚拟机实例。
- 选择指标类别和指标,然后选择应用。
 
- 如需将菜单限制为相关条目,请在过滤条件栏中输入 
- 点击下一步。
- 配置提醒触发器页面中的设置决定了何时触发提醒。 选择条件类型,并在必要时指定阈值。如需了解详情,请参阅创建指标阈值提醒政策。
- 点击下一步。
- 可选:如需将通知添加到您的提醒政策中,请点击通知渠道。在对话框中,从菜单中选择一个或多个通知渠道,然后点击确定。
- 可选:更新突发事件自动关闭持续时间。此字段用于确定在缺少指标数据的情况下 Monitoring 何时关闭突发事件。
- 可选:点击文档,然后添加您希望包含在通知消息中的任何信息。
- 点击提醒名称,然后输入提醒政策的名称。
- 点击创建政策。
指标报告频率和保留
系统会每隔 1 分钟对 Cloud NAT 的指标进行一次批处理,然后将其导出到 Monitoring。监控数据会保留六周。
默认情况下,信息中心会提供过去 1 小时 (1h) 的数据分析。您可以从菜单中选择一个预配置的时间间隔,也可以手动输入所需的时间间隔,以请求分析其他时间间隔的数据。例如:3h(3 小时)、4d(4 天)或 6w(6 周)。
虚拟机实例指标
此表中的“指标类型”字符串必须以 compute.googleapis.com/ 为前缀。表中的条目已省略该前缀。
| 指标类型发布阶段 显示名 | |
|---|---|
| 种类、类型、单位 受监控的资源 | 说明 标签 | 
| nat/allocated_portsGA已分配的端口 | |
| GAUGE,INT64,{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_countGA关闭的连接数 | |
| DELTA,INT64,{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_countGA收到但被丢弃的数据包数 | |
| DELTA,INT64,{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_countGA发送但丢弃的数据包数 | |
| DELTA,INT64,{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_countGA新的连接数 | |
| DELTA,INT64,{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_connectionsGA打开的连接数 | |
| GAUGE,INT64,{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_usageGA端口使用量 | |
| GAUGE,INT64,{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_countGA收到的字节数 | |
| DELTA,INT64,Bygce_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_countGA收到的数据包数 | |
| DELTA,INT64,{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_countGA已发送的字节数 | |
| DELTA,INT64,Bygce_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_countGA已发送的数据包数 | |
| DELTA,INT64,{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 | STRING | 虚拟机实例的项目 ID。 | 
| instance_id | STRING | 虚拟机实例的 ID。 | 
| zone | STRING | 虚拟机实例所在的区域。 | 
| nat_project_number | STRING | NAT 网关所属的项目编号。 | 
| router_id | STRING | NAT 网关所属的 Cloud Router 路由器 ID。 | 
| nat_gateway_name | STRING | NAT 网关的名称。 | 
| nat_ip | STRING | 分配给 NAT 网关的 NAT IP 地址。适用于指标 allocated_ports。 | 
| ip_protocol | STRING | 连接的协议。可以是 TCP、UDP或ICMP。 适用于除allocated_ports以外的所有指标。 | 
| reason | STRING | 数据包丢失的原因。可能的值包括: 
 适用于指标  | 
NAT 网关指标
此表中的“指标类型”字符串必须以 router.googleapis.com/ 为前缀。表中的条目已省略该前缀。
| 指标类型发布阶段 显示名 | |
|---|---|
| 种类、类型、单位 受监控的资源 | 说明 标签 | 
| nat/allocated_portsGA已分配的端口 | |
| GAUGE,INT64,{port}nat_gateway | NAT 网关分配给所有虚拟机的端口数。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 nat_ip:端口的 NAT IP 地址。 | 
| nat/closed_connections_countGA关闭的连接数 | |
| DELTA,INT64,{connection}nat_gateway | NAT 网关上关闭的连接数。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。 | 
| nat/dropped_received_packets_countGA收到但被丢弃的数据包数 | |
| DELTA,INT64,{packet}nat_gateway | NAT 网关收到但丢弃的数据包数。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。 | 
| nat/dropped_sent_packets_countGA发送但丢弃的数据包数 | |
| DELTA,INT64,{packet}nat_gateway | NAT 网关发送但丢弃的数据包数。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。reason:数据包丢弃的原因。可能的值为 OUT_OF_RESOURCES、ENDPOINT_INDEPENDENCE_CONFLICT。 | 
| nat/nat_allocation_failedGANAT 分配失败 | |
| GAUGE,BOOL,nat_gateway | 指示在向 NAT 网关中的任何虚拟机分配 NAT IP 时是否失败。每 60 秒采样一次。采样后,最长可能需要 120 秒才会显示数据。 | 
| nat/new_connections_countGA新的连接数 | |
| DELTA,INT64,{connection}nat_gateway | 通过 NAT 网关创建的新连接数。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。 | 
| nat/open_connectionsGA打开的连接数 | |
| GAUGE,INT64,{connection}nat_gateway | 在 NAT 网关上打开的连接数。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。 | 
| nat/port_usageGA端口使用量 | |
| GAUGE,INT64,{port}nat_gateway | 从虚拟机到单个目标端点 (IP:port) 的连接数上限。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。 | 
| nat/received_bytes_countGA收到的字节数 | |
| DELTA,INT64,Bynat_gateway | 通过 NAT 网关接收的字节数(目的地 -> 来源)。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。 | 
| nat/received_packets_countGA收到的数据包数 | |
| DELTA,INT64,{packet}nat_gateway | 通过 NAT 网关接收的数据包数(目的地 -> 来源)。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。 | 
| nat/sent_bytes_countGA已发送的字节数 | |
| DELTA,INT64,Bynat_gateway | 通过 NAT 网关发送的字节数(来源 -> 目的地)。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。 | 
| nat/sent_packets_countGA已发送的数据包数 | |
| DELTA,INT64,{packet}nat_gateway | 通过 NAT 网关发送的数据包数(来源 -> 目的地)。每 60 秒采样一次。采样后,最长可能需要 225 秒才会显示数据。 ip_protocol:连接的协议。可以是 TCP、UDP 或 ICMP。 | 
网关过滤维度
| label_key | 类型 | 说明 | 
|---|---|---|
| project_id | STRING | 网关的项目 ID。 | 
| region | STRING | 网关的地区。 | 
| router_id | STRING | NAT 网关所属的 Cloud Router 路由器 ID。 | 
| gateway_name | STRING | NAT 网关的名称。 | 
| ip_protocol | STRING | 连接的协议。可以是 TCP、UDP或ICMP。适用于除allocated_ports以外的所有指标。 | 
| nat_ip | STRING | 分配给 NAT 网关的 NAT IP 地址。适用于指标 allocated_ports。 | 
| reason | STRING | 数据包丢失的原因。可能的值包括: 
 适用于指标  | 
使用 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 监控功能无需支付任何费用。