代理事务日志提供有关 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
|
字符串(时长格式) | 服务器上的请求处理延迟时间,即从收到请求到发送响应的时间。
延迟时间是以秒为单位的时长,最多包含九个小数位,并以 |
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 版本。 |
监控代理事务日志
在 Google Cloud 控制台中,前往 Logs Explorer 页面。
选择您的 Google Cloud 项目。
使用以下查询查看所有 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 相关联:
在 Google Cloud 控制台中,前往 Logs Explorer 页面。
展开任意
gateway_requests日志条目。找到顶层
trace字段:projects/PROJECT_ID/traces/TRACE_ID
替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 IDTRACE_ID:来自客户端或跟踪记录 span 的 128 位(32 个字符的十六进制)跟踪记录 ID。例如4bf92f3577b34da6a3ce929d0e0e4736。
点击
trace网址,然后选择查看跟踪记录详细信息,以直接导航到 Cloud Trace 中的跟踪记录瀑布图。如需在 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:MCPJSON-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。如需了解详情,请参阅路由日志条目。