查看代理交易日志

代理事务日志提供有关 Secure Web Proxy 处理的每个请求的详细信息。这些日志包含 Secure Web Proxy 在用户与互联网之间调解的每笔交易的记录。本文档介绍了如何访问和解读 Secure Web Proxy 实例生成的事务日志。

代理事务日志条目的类型

代理事务日志条目有三种类型:

这些日志可用于执行以下操作:

  • 安全分析和威胁检测
  • 排查连接和政策问题
  • 审核网络访问
  • Secure Web Proxy 性能分析

HttpRequest

这些日志条目包含以下信息:

名称 类型 说明
requestMethod 字符串 请求方法的类型,例如 GET、HEAD、PUT 或 POST。
requestUrl 字符串 所请求网址的协议(http 或 https)、主机名、路径和查询部分。例如 http://example.com/some/info?color=red。
requestSize

字符串(int64 格式)

HTTP 请求消息的大小(以字节为单位),包括请求标头和请求正文。
status 整数 表示响应的 HTTP 或 HTTPS 状态代码。例如 200 OK 或 404 Not Found。
responseSize 字符串(int64 格式) 发送回客户端的 HTTP 状态代码的大小(以字节为单位),包括标头和正文。
userAgent 字符串 客户端发送的用户代理,例如 Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)。
remoteIp 字符串 发出 HTTP 请求的客户端的 IP 地址(IPv4 或 IPv6)。此字段可以包含端口信息。例如,192.168.1.1、10.0.0.1:80 和 FE80::0202:B3FF:FE1E:8329。
serverIp 字符串 请求发送到的源服务器的 IP 地址(IPv4 或 IPv6)。此字段可以包含端口信息。例如,192.168.1.1、10.0.0.1:80 和 FE80::0202:B3FF:FE1E:8329。
referrer 字符串 请求的引荐来源网址,如 HTTP/1.1 标头字段定义中所定义。
latency 字符串(时长格式) 服务器上的请求处理延迟时间,即从收到请求到发送响应的时间。

延迟时间是以秒为单位的时长,最多包含九个小数位,并以 s 结尾,例如 3.5s。

cacheLookup 布尔值 指示是否尝试了缓存查询。
cacheHit 布尔值 指明实体是否是从缓存中提供的(无论是否经过验证)。
cacheValidatedWithOriginServer 布尔值 指示在从缓存提供响应之前,是否已通过源服务器验证响应。仅当 cacheHit 为 True 时,此字段才有意义。
cacheFillBytes 字符串(int64 格式) 插入的 HTTP 状态代码字节数。
protocol 字符串 请求所使用的协议,例如 HTTP/1.1、HTTP/2 和 websocket。

LoadBalancerLogEntry

这些日志条目包含以下信息:

名称 类型 说明
insertId 字符串 唯一日志 ID。
jsonPayload.@type 字符串 日志类型。日志类型值始终为 type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry。
jsonPayload.enforcedGatewaySecurityPolicy.hostname 字符串 与请求关联的主机名。
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules.action 字符串 针对请求采取的操作。
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules.rule 字符串 应用于请求的规则的名称。
jsonPayload.enforcedGatewaySecurityPolicy.clientServiceAccount 字符串 与请求关联的服务账号。
jsonPayload.enforcedGatewaySecurityPolicy.clientSecureTags 字符串 与请求关联的安全标记。

GatewayLogEntry

这些日志条目包含以下信息:

名称 类型 说明
resource_container 字符串 与网关关联的容器。
location 字符串 在其中定义网关的区域的名称。
network_name 字符串 在其中创建网关的虚拟私有云 (VPC) 网络的名称。
gateway_type 字符串 网关的枚举类型。对于 Secure Web Proxy,该值必须为 SECURE_WEB_GATEWAY。
gateway_name 字符串 网关资源的名称。

代理事务日志的格式

代理事务日志会写入 Cloud Logging,日志名称为 projects/PROJECT_ID/logs/networkservices.googleapis.com%2Fgateway_requests。

每个日志条目的 JSON 载荷都包含有关事务的详细信息。日志条目包含以下关键字段:

名称 类型 说明
destination_ip 字符串 目的地的已解析 IP 地址。
instance 字符串 处理请求的 Secure Web Proxy 实例的名称。
mtls_info 对象 有关 mTLS 握手的信息(如果适用)。
policy_evaluation_results 对象 有关匹配的规则和生成的操作(例如 allow 或 deny)的信息。
request_host 字符串 请求的主机名。
request_method 字符串 HTTP 方法,例如 GET 或 POST。
request_path 字符串 请求的路径。
request_port 整数 目标端口。
request_protocol 字符串 HTTP 协议版本。
request_scheme 字符串 网址请求的架构,例如 http 或 https。
request_time 时间戳 代理收到请求的日期和时间。时间戳以 ISO 8601 格式指定:YYYY-MM-DDTHH:MM:SS.MsMsMsZoneOffset。例如:2025-06-03T11:52:26.452Z。
response_code 整数 返回给客户端的 HTTP 状态代码。
response_size 整数 响应正文的大小(以字节为单位)。
response_time 时间戳 代理向客户端发送响应的日期和时间。 时间戳以 ISO 8601 格式指定:YYYY-MM-DDTHH:MM:SS.MsMsMsZoneOffset。例如:2025-06-03T11:52:26.452Z。
source_ip 字符串 客户端 IP 地址。
source_port 整数 客户端来源端口。
tls_cipher_suite 字符串 用于 TLS 连接的加密套件。
tls_version 字符串 连接使用的 TLS 版本。

监控代理事务日志

  1. 在 Google Cloud 控制台中,前往 Logs Explorer 页面。

    转到 Logs Explorer

  2. 选择您的 Google Cloud 项目。

  3. 使用以下查询查看所有 Secure Web Proxy 事务日志:

    logName="projects/PROJECT_ID/logs/networkservices.googleapis.com%2Fgateway_requests"
    

    将 PROJECT_ID 替换为目标Google Cloud 项目的 ID。

    以下是一些可用于查看特定详细信息的示例查询:

    • 查找所有被拒请求。

      logName="projects/PROJECT_ID/logs/networkservices.googleapis.com%2Fgateway_requests"
      jsonPayload.policy_evaluation_results.policy_action="DENY"
      
    • 查找来自特定来源 IP 地址的请求。

      logName="projects/PROJECT_ID/logs/networkservices.googleapis.com%2Fgateway_requests"
      jsonPayload.source_ip="192.0.2.1"
      
    • 查找向特定主机发出的请求。

      logName="projects/PROJECT_ID/logs/networkservices.googleapis.com%2Fgateway_requests"
      jsonPayload.request_host="example.com"
      

将代理事务日志与 Cloud Trace 相关联

在 Secure Web Proxy 网关上启用分布式跟踪后,您可以按照以下步骤将代理事务日志条目与 Trace 中的跟踪 span 相关联:

  1. 在 Google Cloud 控制台中,前往 Logs Explorer 页面。

    转到 Logs Explorer

  2. 展开任意 gateway_requests 日志条目。

  3. 找到顶层 trace 字段:

      projects/PROJECT_ID/traces/TRACE_ID
      

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID
    • TRACE_ID:来自客户端或跟踪记录 span 的 128 位(32 个字符的十六进制)跟踪记录 ID。例如 4bf92f3577b34da6a3ce929d0e0e4736。
  4. 点击 trace 网址,然后选择查看跟踪记录详细信息,以直接导航到 Cloud Trace 中的跟踪记录瀑布图。

  5. 如需在 Logs Explorer 中过滤来自 OpenTelemetry 插桩客户端的已知跟踪记录 ID 的日志,请运行以下查询:

    logName="projects/PROJECT_ID/logs/networkservices.googleapis.com%2Fgateway_requests"
    trace="projects/PROJECT_ID/traces/TRACE_ID"
    

如需了解详情,请参阅分布式跟踪概览和使用 Cloud Trace 跟踪出站流量。

Agent Gateway 事务日志条目

当您将 Secure Web Proxy 部署为 Agent Gateway 时,事务日志会记录在标准 networkservices.googleapis.com/Gateway 受监控的资源下。

除了标准 HTTP 请求元数据之外,jsonPayload 字段还包含以下针对智能体流量的专用字段:

  • agentGatewayInfo:有关代理交易的详细信息:

    • agentRegistryResource:匹配的 Agent Registry 目标的完整资源名称,例如 Model Content Platform (MCP) 服务器或技能
    • destinationUrn:目标 URN 的相关信息,例如 MCP 服务器地址
    • mcpInfo:MCP JSON-RPC 调用详细信息,包括方法(例如 tools/call 或 resources/read)和工具名称或资源 URI (parameter)
  • authzPolicyInfo:应用于事务的授权政策的评估结果,包括 result(ALLOWED 或 DENIED)和匹配政策的名称

  • tls:TLS 详细信息和加密客户端证书 (mTLS) 验证属性,例如 clientCertPresent 和 clientCertSha256Fingerprint

过滤 Agent Gateway 事务日志

如需在 Logs Explorer 中查看 Secure Web Proxy 为 Agent Gateway 处理的请求,请使用类似如下的查询:

resource.type="networkservices.googleapis.com/Gateway"
resource.labels.gateway_name="SECURE_WEB_PROXY_NAME"
jsonPayload.agentGatewayInfo:*

将 SECURE_WEB_PROXY_NAME 替换为您的 Secure Web Proxy 网关的名称。

如需过滤授权政策拒绝的请求,请使用以下查询:

resource.type="networkservices.googleapis.com/Gateway"
resource.labels.gateway_name="SECURE_WEB_PROXY_NAME"
jsonPayload.authzPolicyInfo.result="DENIED"

路由代理事务日志

您可以使用日志接收器将代理事务日志路由到其他目标位置,例如 Cloud Storage、BigQuery 或 Pub/Sub。如需了解详情,请参阅路由日志条目。

接下来怎么做?