Globally unique resources that provide access to data management services and serve as the parent namespace for the services.
Thanks for updating us on the issue.
You’re seeing KQL errors in the Azure portal because the VPN Gateway diagnostic logs may not be landing in the Log Analytics workspace as expected, or the query is being applied against the Storage Account’s own logs instead of the VPN Gateway / GatewayDiagnosticLog tables. Let me walk you through how to inspect and validate these logs when the KQL queries are failing.
How to check VPN Gateway logs in the Storage Account
If you configured diagnostic settings on the Virtual Network Gateway to send logs to a Storage Account, the raw logs are stored as JSON blobs in a blob container. The path structure looks like:
subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Network/virtualNetworkGateways/{vpngw-name}/...
Inside this path, you’ll find folders grouped by:
-
category=GatewayDiagnosticLog -
category=TunnelDiagnosticLog -
category=IkeEvent, etc.
To inspect them:
- Go to your Storage Account → Blob containers and open the container configured for diagnostics.
- Navigate into the folders under
MICROSOFT.NETWORK/virtualNetworkGateways/.... - Download or open a few JSON files for the relevant time window and look for:
-
SourceandDestination(e.g., on‑prem IP to gateway IP) -
ConnectionName(tunnel name)Status(success/failure, dropped, etc.)
-
This manual inspection will help you confirm whether traffic from your on‑prem IP/subnet is hitting the gateway and what the system is logging.
What to do when KQL queries fail
If the KQL examples still throw errors, start with a simple discovery:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK"
| where Category contains "GatewayDiagnosticLog"
| take 5
If this returns no rows, it means:
The VPN Gateway diagnostic logs are not arriving in this Log Analytics workspace.
Or the logs are being written to a different workspace or only to the Storage Account (no Log Analytics).
In that case:
- Go to the Virtual Network Gateway → Diagnostics settings and confirm:
-
GatewayDiagnosticLog/TunnelDiagnosticLogare enabled. - The logs are sent to the correct Log Analytics workspace.
-
- If they are only sent to the Storage Account, you’ll need to either:
- Fix the routing to Log Analytics, or
- Continue analyzing the JSON blobs in the Storage Account container, as described above.
How to still validate traffic from on‑prem
Even if the KQL path is tricky, you can still validate connectivity:
- From a VM in the same VNet as the private endpoint:
- Run
Test-NetConnection <private-endpoint-IP> -Port 443 -InformationLevel Detailedto verify TCP reachability from Azure. - Use Network Watcher → IP flow verify:
- Source IP: your on‑prem IP (simulate traffic). Destination IP: private endpoint IP, port 443.
This tells you whether NSGs or route‑tables are blocking the flow on the Azure side. ```If IP flow verify **allows** the traffic, the issue is likely:
- Run
On‑prem routing, DNS resolution, or client‑side issues.
If it blocks, review:
- NSG rules on the private endpoint subnet.
- Route tables / UDRs that might be steering traffic away from the VPN path.
ICMP / NSG behavior confirmation
To re‑confirm what you were considering:
- NSG rules are stateful and additive.
- Adding an Allow ICMP rule on the private‑endpoint‑subnet:
- Only permits ICMP traffic (echo, TTL‑expired, etc.).
- Does not block or override existing rules for TCP ports 443/22/SMB 445.
- However, Azure‑managed infrastructure (including many Private Link endpoints and internal routers) typically do not respond to ICMP TTL‑expired packets, so traceroute to the Storage FQDN will likely still fail even with ICMP allowed. This is expected behavior.
Official Microsoft documentation links
- Virtual Network Gateway diagnostics and log categories: https://learn.microsoft.com/azure/virtual-network/vpn-gateway-troubleshoot-vpn-connections
- Network Watcher IP flow verify: https://learn.microsoft.com/azure/network-watcher/network-watcher-ip-flow-verify-overview
- Network Watcher Connection Monitor: https://learn.microsoft.com/azure/network-watcher/connection-monitor-overview
- Storage account diagnostics and logs: https://learn.microsoft.com/azure/storage/common/storage-analytics-logging
- NSGs overview and stateful behavior: https://learn.microsoft.com/azure/virtual-network/network-security-groups-overview
- Azure Private Link / private endpoints limitations (traceroute / ICMP): https://learn.microsoft.com/azure/private-link/private-endpoint-overview
Please
and “up-vote” wherever the information provided helps you, this can be beneficial to other community members.