日志和指标
日志记录
Cloud NAT 日志记录功能可让您记录 NAT 连接和错误。启用 Cloud NAT 日志记录功能后,系统可针对以下各种情景生成一个日志条目:
- 创建好使用 NAT 的网络连接时。
- 数据包因没有可用于 NAT 的端口而被丢弃时。
您可以选择记录这两种事件,也可以只记录其中一种事件。
创建的日志会发送至 Cloud Logging。
规范
以下规范适用于 Cloud NAT 日志记录功能:
Cloud NAT 日志记录功能仅处理 TCP 和 UDP 流量。
Cloud NAT 日志记录功能仅记录丢弃的数据包,前提是这些数据包是出站 TCP 和 UDP 数据包。它不会记录丢弃的传入数据包。例如,如果对出站请求的入站响应因任何原因而被丢弃,则不会记录任何错误。
每个虚拟机实例在每单位时间内只能生成一定数量的日志条目,此数量与其 vCPUs 数量成比例。虚拟机可以为每个 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 协议编号 |