Skip to content

Commit 793c4b8

Browse files
committed
Some formatting issues. Moving and linking images to the doc
1 parent 6ffa2f0 commit 793c4b8

File tree

1 file changed

+47
-39
lines changed

1 file changed

+47
-39
lines changed

docs/send-data/collect-from-other-data-sources/azure-blob-storage/block-blob/full-vnet-integration.md

Lines changed: 47 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
---
22
id: block-blob-full-vnet-integration
33
title: Collect Logs from Azure Blob Storage with full vnet integration
4-
sidebar_label: Collect block blow with full vnet integration
4+
sidebar_label: Collect block blob with full vnet integration
55
description: Configure a pipeline to ship logs from the Azure Blob Storage all throughout a vnet and then to an HTTP source on a hosted collector in Sumo Logic.
66
---
77

8+
import useBaseUrl from '@docusaurus/useBaseUrl';
9+
810
Current solution to bring the block blob data from storage account in Sumo Logic creates a pipeline which assumes that the storage account being monitored will have public access enabled. If you just want your storage account behind a firewall follow the instruction [here](https://help.sumologic.com/docs/send-data/collect-from-other-data-sources/azure-blob-storage/block-blob/collect-logs/#step-3-enabling-vnet-integration-optional). But if you want that all of the components which are created through the arm template in azure, to be behind azure vnet (this includes event hub, azure functions, storage account, servicebus) then follow the below instructions :
911

1012
1. Download this template [https://github.com/SumoLogic/sumologic-azure-function/blob/azure\_premium\_template\_vnet\_integration/BlockBlobReader/src/blobreaderdeploywithPremiumPlan.json](https://github.com/SumoLogic/sumologic-azure-function/blob/azure_premium_template_vnet_integration/BlockBlobReader/src/blobreaderdeploywithPremiumPlan.json). It creates Service Bus also with Premium tier.
@@ -17,70 +19,76 @@ Screenshot of the Virtual Network, Only Storage Service Endpoint is required in
1719
Screenshot of the NSG rules. Everything can be set to default
1820
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-NSG-rules.png')} alt="NSG rules configuration" style={{border: '1px solid gray'}} width="800" />
1921

20-
3. Enable VNet integration in all the function apps by going to Function App \-\> Networking \-\> Outbound traffic configuration
21-
Screenshot of TaskConsumer Vnet integration of the Function.
22-
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-task-consumer-with-vnet-integration-outbound.png')} alt="TaskConsumer VNet integration outbound configuration" style={{border: '1px solid gray'}} width="800" />
23-
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-vnet-in-task-consumer.png')} alt="VNet integration in TaskConsumer" style={{border: '1px solid gray'}} width="800" />
22+
3. Enable VNet integration in all the function apps by going to Function App -> Networking -> Outbound traffic configuration
23+
Screenshot of TaskConsumer Vnet integration of the Function.
24+
25+
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-task-consumer-with-vnet-integration-outbound.png')} alt="TaskConsumer VNet integration outbound configuration" style={{border: '1px solid gray'}} width="800" />
26+
27+
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-vnet-in-task-consumer.png')} alt="VNet integration in TaskConsumer" style={{border: '1px solid gray'}} width="800" />
2428

25-
4. You can restrict its access of Storage account containing flow logs to selected networks by going to Storage Account \-\> Networking. Subnet of storage account same as subnet configured in SUMOBRTaskConsumer and SUMOBRDLQProcessor VNe integration step.
29+
4. You can restrict its access of Storage account containing flow logs to selected networks by going to Storage Account -> Networking. Subnet of storage account same as subnet configured in SUMOBRTaskConsumer and SUMOBRDLQProcessor VNet integration step.
2630
Below is the screenshot of the storage account where NSG flow logs are stored.
2731
Even the ip addresses are not required to be whitelisted in the firewall (this we will fix in our docs).
2832

2933
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-sa-flow-logs-networking.png')} alt="Storage account flow logs networking configuration" style={{border: '1px solid gray'}} width="800" />
3034

31-
5. Storage account the one created by ARM template, you can restrict its access to selected networks by going to Storage Account \-\> Networking
32-
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-arm-template-sa-networking.png')} alt="ARM template storage account networking configuration" style={{border: '1px solid gray'}} width="800" />
33-
6. In all the three azure functions you can restrict inbound traffic by going to Function App \-\> Networking \-\> Inbound traffic configuration \-\> Access restrictions allowing only subnet created in step 1\.
35+
5. Storage account the one created by ARM template, you can restrict its access to selected networks by going to Storage Account -> Networking
36+
37+
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-arm-template-sa-networking.png')} alt="ARM template storage account networking configuration" style={{border: '1px solid gray'}} width="800" />
38+
39+
6. In all the three azure functions you can restrict inbound traffic by going to Function App -> Networking -> Inbound traffic configuration -> Access restrictions allowing only subnet created in step 1.
3440

3541
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-task-consumer-with-vnet-integration-inbound.png')} alt="TaskConsumer VNet integration inbound configuration" style={{border: '1px solid gray'}} width="800" />
36-
7. To enable functions to access storage account created by arm template you need to do following steps
42+
7. To enable functions to access storage account created by arm template you need to do following steps:
3743
1. Select content storage in Configuration Routing and select Outbound internet traffic under Application routing in Azure Function Vnet integration for each function.
3844

39-
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-function-networking-config.png')} alt="Function networking configuration" style={{border: '1px solid gray'}} width="800" />
40-
41-
45+
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-function-networking-config.png')} alt="Function networking configuration" style={{border: '1px solid gray'}} width="800" />
4246

43-
2. Set WEBSITE\_CONTENTOVERVNET to 1 in environment variables for each function.
47+
2. Set WEBSITE_CONTENTOVERVNET to 1 in environment variables for each function.
4448

45-
<img src={useBaseUrl('/img/send-data/blockblob/block-setting-env-variable-function.png')} alt="Setting environment variable in function" style={{border: '1px solid gray'}} width="800" />
49+
<img src={useBaseUrl('/img/send-data/blockblob/block-setting-env-variable-function.png')} alt="Setting environment variable in function" style={{border: '1px solid gray'}} width="800" />
4650

4751

48-
8. Event hub can restrict access to selected networks to the subnet created in step 1 and Allow trusted services to bypass this firewall set to Yes
52+
8. Event hub can restrict access to selected networks to the subnet created in step 1 and Allow trusted services to bypass this firewall set to Yes
4953

50-
51-
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-event-hub-networking.png')} alt="Event Hub networking configuration" style={{border: '1px solid gray'}} width="800" />
54+
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-event-hub-networking.png')} alt="Event Hub networking configuration" style={{border: '1px solid gray'}} width="800" />
5255

5356
9. The event grid needs to be secured with managed identity so that it can access Event hub, you also need to do the following steps:
54-
1. Enable system-assigned identity for the topic
55-
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-system-assigned-identity-topic.png')} alt="System-assigned identity for topic" style={{border: '1px solid gray'}} width="800" />
56-
2. Add the identity to the Azure Event Hubs Data Sender role on the Event Hubs namespace under Access Control \-\> Role assignments
57-
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-event-hub-namespace-add-identity.png')} alt="Adding identity to Event Hub namespace" style={{border: '1px solid gray'}} width="800" />
58-
3. Then, configure the event subscription that uses an event hub as an endpoint to use the system-assigned identity.
59-
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-event-hub-subscription-identity.png')} alt="Event Hub subscription identity configuration" style={{border: '1px solid gray'}} width="800" />
60-
61-
10. The service bus created by arm template is on standard tier \- which does not support vnet integration. Follow the below steps to create a new Service bus on premium tier (supports premium tier)
62-
1. create new service bus namespace with premium plan \-
63-
1. same resource group as old service bus,
57+
1. Enable system-assigned identity for the topic
58+
59+
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-system-assigned-identity-topic.png')} alt="System-assigned identity for topic" style={{border: '1px solid gray'}} width="800" />
60+
61+
2. Add the identity to the Azure Event Hubs Data Sender role on the Event Hubs namespace under Access Control -> Role assignments
62+
63+
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-event-hub-namespace-add-identity.png')} alt="Adding identity to Event Hub namespace" style={{border: '1px solid gray'}} width="800" />
64+
65+
3. Then, configure the event subscription that uses an event hub as an endpoint to use the system-assigned identity.
66+
67+
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-event-hub-subscription-identity.png')} alt="Event Hub subscription identity configuration" style={{border: '1px solid gray'}} width="800" />
68+
69+
10. The service bus created by arm template is on standard tier - which does not support vnet integration. Follow the below steps to create a new Service bus on premium tier (supports premium tier):
70+
1. Create new service bus namespace with premium plan:
71+
1. same resource group as old service bus
6472
2. same location
6573
3. partition enabled
6674
4. public access for starting (under networking tab)
67-
2. Once servicebus namespace is created, go to entity \> queue and create a new queue by the name "**blobrangetaskqueue**", with the following parameters:
68-
Max queue size : 40
69-
message size 1024
70-
max delivery count 3
71-
time to live 14 days
72-
Message lock duration 5 min
73-
enable dead letter queue
74-
3. Update connection string to the below format \- in all three azure functions (Producer, consumer and DLQ). From newly created service bus on the premium tier under Shared access policies. Where you can select the [RootManageSharedAccessKey](https://portal.azure.com/#) and copy the primary key from it as the value of shared\_access\_key\_value:
75-
Endpoint=sb://**\<servicebus\_namespace\_name\>**.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=**\<shared\_access\_key\_value\>**
76-
4. Go to newly created service bus \> networking. Change public network access from all networks to selected networks, and select the vnet and subnet previously created and used with other resources
75+
2. Once servicebus namespace is created, go to entity > queue and create a new queue by the name "**blobrangetaskqueue**", with the following parameters:
76+
- Max queue size: 40
77+
- Message size: 1024
78+
- Max delivery count: 3
79+
- Time to live: 14 days
80+
- Message lock duration: 5 min
81+
- Enable dead letter queue
82+
3. Update connection string to the below format - in all three azure functions (Producer, consumer and DLQ). From newly created service bus on the premium tier under Shared access policies. Where you can select the [RootManageSharedAccessKey](https://portal.azure.com/#) and copy the primary key from it as the value of shared_access_key_value:
83+
`Endpoint=sb://<servicebus_namespace_name>.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<shared_access_key_value>`
84+
4. Go to newly created service bus > networking. Change public network access from all networks to selected networks, and select the vnet and subnet previously created and used with other resources
7785

7886

7987
11. Enable Service endpoints for below services in your Vnet.
8088

8189
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-service-endpoint-enabling-vnet.png')} alt="Enabling service endpoints in VNet" style={{border: '1px solid gray'}} width="800" />
8290

83-
12. Go to Function App \-\> BlobTaskConsumer \-\> Invocations you should be able to see below logs
91+
12. Go to Function App -> BlobTaskConsumer -> Invocations you should be able to see below logs
8492

8593
<img src={useBaseUrl('/img/send-data/blockblob/block-blob-validation.png')} alt="Block blob validation logs" style={{border: '1px solid gray'}} width="800" />
8694

0 commit comments

Comments
 (0)