|
| 1 | +--- |
| 2 | +title: Visualize Flow Logs with Power BI |
| 3 | +titleSuffix: Azure Network Watcher |
| 4 | +description: Learn how to use Power BI to visualize flow logs to view information about your IP traffic. |
| 5 | +author: halkazwini |
| 6 | +ms.author: halkazwini |
| 7 | +ms.service: azure-network-watcher |
| 8 | +ms.topic: how-to |
| 9 | +ms.date: 03/31/2026 |
| 10 | +zone_pivot_groups: flow-log-types |
| 11 | + |
| 12 | +# Customer intent: As a network administrator, I want to visualize flow logs in a business intelligence tool, so that I can gain insights into IP traffic patterns and enhance network security management. |
| 13 | +--- |
| 14 | + |
| 15 | +# Visualize flow logs with Power BI |
| 16 | + |
| 17 | +::: zone pivot="virtual-network" |
| 18 | + |
| 19 | +Virtual Network flow logs allow you to view information about ingress and egress IP traffic on Virtual Networks. These flow logs show outbound and inbound flows on a per rule basis, the network interface (NIC) the flow applies to, 5-tuple information about the flow (Source/Destination IP, Source/Destination Port, Protocol), and if the traffic was allowed or denied. |
| 20 | + |
| 21 | +It can be difficult to gain insights into flow logging data by manually searching the log files. In this article, you learn how to visualize your most recent flow logs to learn more about traffic on your network. |
| 22 | + |
| 23 | +::: zone-end |
| 24 | + |
| 25 | +::: zone pivot="network-security-group" |
| 26 | + |
| 27 | +[!INCLUDE [NSG flow logs retirement](../../includes/network-watcher-nsg-flow-logs-retirement.md)] |
| 28 | + |
| 29 | +Network security group flow logs allow you to view information about ingress and egress IP traffic on network security groups. These flow logs show outbound and inbound flows on a per rule basis, the NIC the flow applies to, 5-tuple information about the flow (Source/Destination IP, Source/Destination Port, Protocol), and if the traffic was allowed or denied. |
| 30 | + |
| 31 | +It can be difficult to gain insights into flow logging data by manually searching the log files. In this article, you learn how to visualize your most recent flow logs to learn more about traffic on your network. |
| 32 | + |
| 33 | +> [!Warning] |
| 34 | +> The following steps work with flow logs version 1. For details, see [Introduction to flow logging for network security groups](nsg-flow-logs-overview.md). The following instructions will not work with version 2 of the log files, without modification. |
| 35 | +
|
| 36 | +::: zone-end |
| 37 | + |
| 38 | +## Prerequisites |
| 39 | + |
| 40 | +- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/pricing/purchase-options/azure-account?cid=msft_learn). |
| 41 | + |
| 42 | +::: zone pivot="virtual-network" |
| 43 | +- Flow logging enabled on one or more virtual networks in your account. For more information, see [Manage virtual network flow logs](vnet-flow-logs-manage.md). |
| 44 | +::: zone-end |
| 45 | + |
| 46 | +::: zone pivot="network-security-group" |
| 47 | +- Flow logging enabled on one or more network security groups in your account. For more information, see [Manage network security group flow logs](nsg-flow-logs-manage.md). |
| 48 | +::: zone-end |
| 49 | + |
| 50 | +- Power BI Desktop installed on your machine with enough free space to download and load the log data that exists in your storage account. For more information, see [Get started with Power BI Desktop](/power-bi/fundamentals/desktop-getting-started). |
| 51 | + |
| 52 | +## Scenario |
| 53 | + |
| 54 | +In the following scenario, you connect Power BI desktop to your storage account configured as the sink for your flow logging data. After you connect to the storage account, Power BI downloads and parses the logs to provide a visual representation of logged traffic. |
| 55 | + |
| 56 | +:::image type="content" source="./media/flow-logs-power-bi/scenario.png" alt-text="Diagram of the scenario."::: |
| 57 | + |
| 58 | +Using the visuals supplied in the template you can examine: |
| 59 | + |
| 60 | +- Top talkers |
| 61 | + |
| 62 | +- Time series flow data by direction and rule decision |
| 63 | + |
| 64 | +- Flows by network interface MAC address |
| 65 | + |
| 66 | +- Flows by destination port |
| 67 | +::: zone pivot="virtual-network" |
| 68 | +- Flows by virtual network and rule |
| 69 | +::: zone-end |
| 70 | +::: zone pivot="network-security-group" |
| 71 | +- Flows by network security group and rule |
| 72 | +::: zone-end |
| 73 | + |
| 74 | +The template is editable so you can modify it to add new data, visuals, or edit queries to suit your needs. |
| 75 | + |
| 76 | +### Set up your Power BI dashboard |
| 77 | + |
| 78 | +::: zone pivot="virtual-network" |
| 79 | +1. Download and open the following Power BI template in your Power BI Desktop [Network Watcher Power BI flow logs template](https://github.com/Azure/NWPublicScripts/raw/main/nw-public-docs-artifacts/vnet-flow-logs/PowerBI_VNetFlowLogs_Storage_Template.pbit) |
| 80 | +::: zone-end |
| 81 | + |
| 82 | +::: zone pivot="network-security-group" |
| 83 | +1. Download and open the following Power BI template in your Power BI Desktop [Network Watcher Power BI flow logs template](https://github.com/Azure/NWPublicScripts/raw/main/nw-public-docs-artifacts/nsg-flow-logs/PowerBI_FlowLogs_Storage_Template.pbit) |
| 84 | +::: zone-end |
| 85 | + |
| 86 | +::: zone pivot="virtual-network" |
| 87 | +2. Enter the required query parameters: |
| 88 | + |
| 89 | + - **StorageAccountName:** the name of the storage account containing the flow logs that you want to load and visualize. |
| 90 | + |
| 91 | + - **NumberOfLogFiles:** the number of log files that you want to download and visualize in Power BI. For example, if you enter 50, then you can view the latest 50 log files. If you have two virtual networks enabled and configured to send flow logs to this account, then you can view the past 25 hours of logs. |
| 92 | +::: zone-end |
| 93 | +::: zone pivot="network-security-group" |
| 94 | +2. Enter the required query parameters: |
| 95 | + |
| 96 | + - **StorageAccountName:** the name of the storage account containing the flow logs that you want to load and visualize. |
| 97 | + |
| 98 | + - **NumberOfLogFiles:** the number of log files that you want to download and visualize in Power BI. For example, if you enter 50, then you can view the latest 50 log files. If you have two network security groups enabled and configured to send flow logs to this account, then you can view the past 25 hours of logs. |
| 99 | +::: zone-end |
| 100 | + |
| 101 | +3. Enter the access key for your storage account. You can find valid access keys by going to your storage account in the Azure portal and selecting **Access keys** under **Security + networking**. |
| 102 | + |
| 103 | +4. Select **Connect** then apply changes. |
| 104 | + |
| 105 | +5. Use the precreated visuals to view your logs. |
| 106 | + |
| 107 | +## Understand the visuals |
| 108 | + |
| 109 | +The template includes a set of visuals that help you analyze your flow log data. The following sections describe each visual in detail, with sample images showing what the dashboard looks like when populated with data. |
| 110 | + |
| 111 | +### Dashboard |
| 112 | +::: zone pivot="virtual-network" |
| 113 | +:::image type="content" source="./media/flow-logs-power-bi/power-bi-dashboard1.png" alt-text="Screenshot of the Power BI dashboard loaded with virtual network flow logs data." lightbox="./media/flow-logs-power-bi/power-bi-dashboard1.png"::: |
| 114 | +::: zone-end |
| 115 | + |
| 116 | +::: zone pivot="network-security-group" |
| 117 | +:::image type="content" source="./media/flow-logs-power-bi/power-bi-dashboard2.png" alt-text="Screenshot of the Power BI dashboard loaded with network security group flow logs data." lightbox="./media/flow-logs-power-bi/power-bi-dashboard2.png"::: |
| 118 | +::: zone-end |
| 119 | + |
| 120 | +### Top talkers |
| 121 | + |
| 122 | +The top talkers visual shows the IPs that have initiated the most connections over the period specified. The size of the boxes corresponds to the relative number of connections. |
| 123 | + |
| 124 | +::: zone pivot="virtual-network" |
| 125 | +:::image type="content" source="./media/flow-logs-power-bi/top-talkers1.png" alt-text="Screenshot of virtual network flow logs top talkers." lightbox="./media/flow-logs-power-bi/top-talkers1.png"::: |
| 126 | +::: zone-end |
| 127 | + |
| 128 | +::: zone pivot="network-security-group" |
| 129 | +:::image type="content" source="./media/flow-logs-power-bi/top-talkers2.png" alt-text="Screenshot of network security group flow logs top talkers." lightbox="./media/flow-logs-power-bi/top-talkers2.png"::: |
| 130 | +::: zone-end |
| 131 | + |
| 132 | +### Flows over time and by direction/decision |
| 133 | + |
| 134 | +The following time series graphs show the number of flows over the period. The first graph is segmented by the flow direction, and the second one is segmented by the decision made (allow or deny). With this visual, you can examine your traffic trends over time, and spot any abnormal spikes or decline in traffic or traffic segmentation. |
| 135 | + |
| 136 | +::: zone pivot="virtual-network" |
| 137 | +:::image type="content" source="./media/flow-logs-power-bi/flows-time1.png" alt-text="Screenshot of virtual network flows over time and by direction/decision." lightbox="./media/flow-logs-power-bi/flows-time1.png"::: |
| 138 | +::: zone-end |
| 139 | + |
| 140 | +::: zone pivot="network-security-group" |
| 141 | +:::image type="content" source="./media/flow-logs-power-bi/flows-time2.png" alt-text="Screenshot of network security group flows over time and by direction/decision." lightbox="./media/flow-logs-power-bi/flows-time2.png"::: |
| 142 | +::: zone-end |
| 143 | + |
| 144 | +### Flows by network interface |
| 145 | + |
| 146 | +The following graphs show the flows per network interface. The first graph is segmented by flow direction and the second one is segmented by decision made. With this information, you can gain insights into which of your virtual machines (VMs) communicated the most relative to others, and if traffic to a specific VM is being allowed or denied. |
| 147 | + |
| 148 | +::: zone pivot="virtual-network" |
| 149 | +:::image type="content" source="./media/flow-logs-power-bi/flows-time1.png" alt-text="Screenshot of virtual network flows over time and by direction/decision." lightbox="./media/flow-logs-power-bi/flows-time1.png"::: |
| 150 | +::: zone-end |
| 151 | + |
| 152 | +::: zone pivot="network-security-group" |
| 153 | +:::image type="content" source="./media/flow-logs-power-bi/flows-network-interface2.png" alt-text="Screenshot of network security group flows per network interface." lightbox="./media/flow-logs-power-bi/flows-network-interface2.png"::: |
| 154 | +::: zone-end |
| 155 | + |
| 156 | +### Flows by destination port |
| 157 | + |
| 158 | +The following wheel chart shows a breakdown of flows by destination port. With this information, you can view the most commonly used destination ports used within the specified period. |
| 159 | + |
| 160 | +::: zone pivot="virtual-network" |
| 161 | +:::image type="content" source="./media/flow-logs-power-bi/flows-destination-port1.png" alt-text="Screenshot of virtual network flows by destination port." lightbox="./media/flow-logs-power-bi/flows-destination-port1.png"::: |
| 162 | +::: zone-end |
| 163 | + |
| 164 | +::: zone pivot="network-security-group" |
| 165 | +:::image type="content" source="./media/flow-logs-power-bi/flows-destination-port2.png" alt-text="Screenshot of network security group flows by destination port." lightbox="./media/flow-logs-power-bi/flows-destination-port2.png"::: |
| 166 | +::: zone-end |
| 167 | + |
| 168 | +### Flows by NSG and rule |
| 169 | + |
| 170 | +::: zone pivot="virtual-network" |
| 171 | + |
| 172 | +The following bar chart shows the flow by virtual network and rule. With this information, you can see the virtual networks responsible for the most traffic, and the breakdown of traffic on a virtual network by rule. |
| 173 | + |
| 174 | +:::image type="content" source="./media/flow-logs-power-bi/flows-rule1.png" alt-text="Screenshot of flows by virtual network and rule." lightbox="./media/flow-logs-power-bi/flows-rule1.png"::: |
| 175 | + |
| 176 | +::: zone-end |
| 177 | + |
| 178 | +::: zone pivot="network-security-group" |
| 179 | + |
| 180 | +The following bar chart shows the flow by network security group and rule. With this information, you can see the network security groups responsible for the most traffic, and the breakdown of traffic on a network security group by rule. |
| 181 | + |
| 182 | +:::image type="content" source="./media/flow-logs-power-bi/flows-rule2.png" alt-text="Screenshot of flows by network security group and rule." lightbox="./media/flow-logs-power-bi/flows-rule2.png"::: |
| 183 | + |
| 184 | +::: zone-end |
| 185 | + |
| 186 | +## Notes |
| 187 | + |
| 188 | +::: zone pivot="virtual-network" |
| 189 | +- Logs by default are stored in `https://{storageAccountName}.blob.core.windows.net/insights-logs-insights-logs-flowlogflowevent/` |
| 190 | + |
| 191 | + - Modify the queries if other data exists in another directory. |
| 192 | +::: zone-end |
| 193 | + |
| 194 | +::: zone pivot="network-security-group" |
| 195 | +- Logs by default are stored in `https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/` |
| 196 | + |
| 197 | + - Modify the queries if other data exists in another directory. |
| 198 | +::: zone-end |
| 199 | + |
| 200 | +- The provided template isn't recommended for use with more than 1 GB of logs. |
| 201 | + |
| 202 | +- If you have a large amount of log data, we recommend that you investigate a solution using another data store like Data Lake or SQL server. |
| 203 | + |
| 204 | +## Next step |
| 205 | + |
| 206 | +> [!div class="nextstepaction"] |
| 207 | +> [Read flow logs](flow-logs-read.md) |
| 208 | +
|
0 commit comments