The URL filtering service logs let you audit, verify, and analyze the URL-based traffic filtering in your network.
When Cloud Next Generation Firewall performs URL-based filtering on traffic with Layer 7 inspection enabled, it generates a log entry for each connection with details about the connection. Cloud NGFW generates a log entry when the firewall rule with Layer 7 inspection is activated, regardless of whether Cloud Logging is enabled or disabled.
To view and examine the URL filtering logs, in the
Logs Explorer,
search for the log networksecurity.googleapis.com/firewall_url_filter
.
This page describes the format and structure of the URL filtering logs that Cloud NGFW generates for each connection when it allows or denies traffic.
URL filtering log format
Cloud NGFW creates a log record entry in Cloud Logging for each connection that undergoes URL filtering to monitor traffic to or from a virtual machine (VM) instance in a specific zone. Log records are included in the JSON payload field of a LogEntry.
Some log fields are in a multiple-field format, with more than one piece of data
in a given field. For example, the connection
field is of the Connection
format, which contains the server IP address and port, the client IP address
and port, and the protocol number in a single field.
The following table describes the format of the URL filtering log fields.
Field | Type | Description |
---|---|---|
connection
|
Connection
|
A 5-tuple that describes the connection parameters associated with the traffic that is either allowed or denied based on domain and server name indication (SNI) information. |
interceptInstance
|
InterceptInstance
|
The details of the VM instance where the traffic is either allowed or denied based on domain and SNI information. |
detectionTime
|
string
|
The time (UTC) when the firewall endpoint detects a match for the domain and SNI information. |
uriMatched
|
string
|
The domain against which firewall endpoint detected a match. |
interceptVpc
|
VpcDetails
|
The details of the Virtual Private Cloud (VPC) network associated with the VM instance where the traffic is either allowed or denied based on domain and SNI information. |
ruleIndex
|
integer
|
The index or the order number of the URL filter against which firewall endpoint detected a match. |
direction
|
string
|
The direction of the traffic (either CLIENT_TO_SERVER or
SERVER_TO_CLIENT ) for which firewall endpoint detected a match.
|
securityProfileGroupDetails
|
SecurityProfileGroupDetails
|
The details of the security profile group applied to the intercepted traffic. |
denyType
|
string
|
The type of information that the firewall endpoint uses to deny a
traffic.
|
action
|
string
|
The action, either allow or deny , performed on the traffic that is
filtered based on the domain and SNI information. The security profile
defines this action. To learn more about the configured action, see
URL filtering security profile.
|
applicationLayerDetails
|
ApplicationLayerDetails
|
The details related to application layer processing. |
sessionLayerDetails
|
SessionLayerDetails
|
The details related to session layer processing. |
Connection
field format
The following table describes the format of the Connection
field.
Field | Type | Description |
---|---|---|
clientIp
|
string
|
The client IP address. If the client is a Compute Engine VM,
clientIp is either the primary internal IP address or an
address in an alias IP range of the VM's network interface. The external IP
address is not shown. The logs show the IP address of the VM instance as
observed on the IP header, similar to the TCP dump on the VM instance.
|
clientPort
|
integer
|
The client port number. |
serverIp
|
string
|
The server IP address. If the server is a Compute Engine VM, serverIp is either the primary internal IP address or an address in an alias IP range of the VM's network interface. The external IP address is not shown even if it is used in making the connection.
|
serverPort
|
integer
|
The server port number. |
protocol
|
string
|
The IP protocol of the connection. |
InterceptInstance
field format
The following table describes the format of the InterceptInstance
field.
Field | Type | Description |
---|---|---|
zone
|
string
|
The name of zone where VM instance associated with the intercepted traffic is located. |
vm
|
string
|
The name of the VM instance associated with the intercepted traffic. |
projectId
|
string
|
The name of the Google Cloud project associated with the intercepted traffic. |
VpcDetails
field format
The following table describes the format of the VpcDetails
field.
Field | Type | Description |
---|---|---|
vpc
|
string
|
The name of the VPC network associated with the intercepted traffic. |
projectId
|
string
|
The name of the Google Cloud project associated with the VPC network. |
SecurityProfileGroupDetails
field format
The following table describes the format of the SecurityProfileGroupDetails
field.
Field | Type | Description |
---|---|---|
securityProfileGroupId
|
string
|
The security profile group name that is applied to the traffic. |
organizationId
|
string
|
The organization ID that the VM instance belongs to. |
ApplicationLayerDetails
field format
The following table describes the format of the ApplicationLayerDetails
field.
Field | Type | Description |
---|---|---|
protocol
|
string
|
The protocol version that the firewall endpoint uses at the application
layer.
|
uri
|
string
|
The domain and subdomain information that the firewall endpoint reads from the traffic. |
SessionLayerDetails
field format
The following table describes the format of the SessionLayerDetails
field.
Field | Type | Description |
---|---|---|
sni
|
string
|
The Server Name Indication (SNI) that the firewall endpoint reads from the traffic. |
protocolVersion
|
string
|
The protocol version that the firewall endpoint uses at the session
layer.
|
URL filtering log correlation with a firewall log
When traffic is evaluated by a firewall rule, Cloud NGFW logs a Firewall Rules Logging entry. This entry includes fields such as the source IP address, the destination IP address, and the time of traffic inspection. To view these firewall rule logs, see View logs.
If a firewall policy rule with Layer 7 inspection has logging enabled, Cloud NGFW first logs the Firewall Rules Logging entry for the evaluated traffic. Then, it sends the traffic to the firewall endpoint for Layer 7 inspection.
The firewall endpoint analyzes the traffic using its domain and SNI, and creates a separate URL filtering log for the connection. This URL filtering log includes fields such as the domain name, the source of the traffic, and the destination of the traffic.
To view the URL filtering logs, in the Logs Explorer,
search for the log networksecurity.googleapis.com/firewall_url_filter
.
You can compare the fields in the firewall rule log and URL filtering log to identify the connection that triggered URL filtering and take appropriate action to resolve it.
For example, you have a firewall policy rule configured with the following settings:
- Source IP address:
192.0.2.0
- Source port:
47644
- Destination IP address:
192.0.2.1
- Destination port:
80
- Logging:
Enabled
To view the URL filtering logs associated with this rule, navigate to the Logs Explorer page. In the Query pane, paste the following query into the query editor field.
resource.type="networksecurity.googleapis.com/FirewallEndpoint" jsonPayload.source_ip_address="192.0.2.0" jsonPayload.source_port="47644" jsonPayload.destination_ip_address="192.0.2.1" jsonPayload.destination_port="80"
The Query results section displays the following URL filtering log:
{ "insertId": "akxp8uf5f0fuv", "jsonPayload": { "connection": { "serverPort": 80, "clientPort": 47644, "protocol": "TCP", "clientIp": "192.0.2.0", "serverIp": "192.0.2.1" }, "interceptInstance": { "zone": "us-central1-c", "vm": "aied-test-dont-delete", "projectId": "project_001" }, "detectionTime": "2025-06-02T19:09:27.802711668Z", "uriMatched": "", "interceptVpc": { "projectId": "project_001", "vpc": "default" }, "ruleIndex": 0, "direction": "CLIENT_TO_SERVER", "@type": "type.googleapis.com/google.cloud.networksecurity.logging.v1.URLFilterLog", "securityProfileGroupDetails": { "securityProfileGroupId": "project_001/spg/my-spg-id", "organizationId": "organization_001" }, "denyType": "HOST", "action": "DENY", "applicationLayerDetails": { "protocol": "HTTP1", "uri": "server.fwp.com" }, "sessionLayerDetails": { "sni": "", "protocolVersion": "PROTOCOL_VERSION_UNSPECIFIED" } }, "resource": { "type": "networksecurity.googleapis.com/FirewallEndpoint", "labels": { "location": "us-central1-c", "resource_container": "organizations/organization_001", "id": "pg-ni-latencyayzl8peq" } }, "timestamp": "2025-06-02T19:09:35.452299517Z", "logName": "projects/project_001/logs/networksecurity.googleapis.com%2Ffirewall_url_filter", "receiveTimestamp": "2025-06-02T19:09:35.452299517Z" }
Similarly, to view the firewall logs associated with this rule, navigate to the Logs Explorer page. In the Query pane, paste the following query into the query editor field.
jsonPayload.rule_details.action="APPLY_SECURITY_PROFILE_GROUP" jsonPayload.connection.src_ip="192.0.2.0" jsonPayload.connection.src_port="47644" jsonPayload.connection.dest_ip="192.0.2.1" jsonPayload.connection.dest_port="80"
The Query results section displays the following firewall log:
{ insertId: "qn82vdg109q3r9" jsonPayload: { connection: { } dest_ip: "192.0.2.1" dest_port: 80 protocol: 6 src_ip: "192.0.2.0" src_port: 47644 disposition: "INTERCEPTED" ►instance: {4} ▸ remote_instance: {4} ▸ remote_vpc: {3} rule_details: { action: "APPLY_SECURITY_PROFILE_GROUP" apply_security_profile_fallback_action: "UNSPECIFIED" direction: "INGRESS" ▸ ip_port_info: [1] ▼ priority: 6000 reference: "network: fwplus-vpc/firewallPolicy: fwplus-fwpolicy" source_range: [ 1 0: "192.0.2.0/24" target_secure_tag: [ 0: "tagValues/281479199099651" ] } vpc: { project_id: "project_001" subnetwork_name: "fwplus-us-central1-subnet" vpc_name: "fwplus-vpc" } } logName: "projects/project_001/logs/compute.googleapis.com%2Ffirewall", receiveTimestamp: "2023-11-28T19:08:46.749244092Z" resource: {2} timestamp: "2023-11-28T19:08:40.207465099Z" }
With both the URL filtering log and firewall log queries you can view the correlation between them. The following table maps the firewall log fields to the corresponding URL filtering log fields.
Firewall log field | URL filtering log field | Description |
---|---|---|
src_ip
|
clientIp
|
The source IP address in the firewall log is correlated with the client IP address in the URL filtering log to identify the origin of the filtered traffic |
src_port
|
clientPort
|
The source port in the firewall log is correlated with the client port in the URL filtering log to identify the source port used by the filtered traffic |
dest_ip
|
serverIp
|
The destination IP address in the firewall log is correlated with the server IP address in the URL filtering log to pinpoint the target of the filtered traffic |
dest_port
|
serverPort
|
The destination port in the firewall log is correlated with the server port in the URL filtering log to identify the destination port used by the filtered traffic |