Skip to content

Commit 7ab5dc9

Browse files
committed
updates
1 parent ef2b0d0 commit 7ab5dc9

File tree

6 files changed

+38
-110
lines changed

6 files changed

+38
-110
lines changed

articles/azure-monitor/essentials/edge-pipeline-configure.md

Lines changed: 37 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Configuration of Azure Monitor pipeline for edge and multicloud
33
description: Configuration of Azure Monitor pipeline for edge and multicloud
44
ms.topic: conceptual
5-
ms.date: 04/23/2024
5+
ms.date: 04/25/2024
66
ms.author: bwren
77
author: bwren
88
---
@@ -12,13 +12,16 @@ author: bwren
1212
[Azure Monitor pipeline](./pipeline-overview.md) is a data ingestion pipeline providing consistent and centralized data collection for Azure Monitor. The [edge pipeline](./pipeline-overview.md#edge-pipeline) enables at-scale collection, and routing of telemetry data before it's sent to the cloud. It can cache data locally and sync with the cloud when connectivity is restored and route telemetry to Azure Monitor in cases where the network is segmented and data cannot be sent directly to the cloud. This article describes how to enable and configure the edge pipeline in your environment.
1313

1414
## Overview
15-
The Azure Monitor edge pipeline is a containerized solution that is deployed on an [Arc-enabled Kubernetes cluster](../../azure-arc/kubernetes/overview.md). It leverages OpenTelemetry Collector as a foundation. The following diagram shows the components of the edge pipeline. One or more data flows listens for incoming data from clients, and the pipeline extension forwards the data to the cloud, using the local cache if necessary.
15+
The Azure Monitor edge pipeline is a containerized solution that is deployed on an [Arc-enabled Kubernetes cluster](../../azure-arc/kubernetes/overview.md) and leverages OpenTelemetry Collector as a foundation. The following diagram shows the components of the edge pipeline. One or more data flows listens for incoming data from clients, and the pipeline extension forwards the data to the cloud, using the local cache if necessary.
1616

1717
The pipeline configuration file defines the data flows and cache properties for the edge pipeline. The [DCR](./pipeline-overview.md#data-collection-rules) defines the schema of the data being sent sent to the cloud pipeline, a transformation to filter or modify the data, and the destination where the data should be sent. Each data flow definition for the pipeline configuration specifies the DCR and stream within that DCR that will process that data in the cloud pipeline.
1818

1919
:::image type="content" source="media/edge-pipeline/edge-pipeline-configuration.png" lightbox="media/edge-pipeline/edge-pipeline-configuration.png" alt-text="Overview diagram of the dataflow for Azure Monitor edge pipeline." border="false":::
2020

21-
The following components are required to enable and configure the Azure Monitor edge pipeline. If you use the Azure portal to configure the edge pipeline, then each of these components is created for you. With other methods, you need to configure each one.
21+
> [!NOTE]
22+
> Private link is support by edge pipeline for the connection to the cloud pipeline.
23+
24+
The following components and configurations are required to enable the Azure Monitor edge pipeline. If you use the Azure portal to configure the edge pipeline, then each of these components is created for you. With other methods, you need to configure each one.
2225

2326

2427
| Component | Description |
@@ -36,7 +39,7 @@ The following components are required to enable and configure the Azure Monitor
3639

3740
## Supported configurations
3841

39-
**Supported distros**
42+
**Supported distros**<br>
4043
Edge pipeline is supported on the following Kubernetes distributions:
4144

4245
- Canonical
@@ -45,7 +48,7 @@ Edge pipeline is supported on the following Kubernetes distributions:
4548
- Rancher Kubernetes Engine
4649
- VMware Tanzu Kubernetes Grid
4750

48-
**Supported locations**
51+
**Supported locations**<br>
4952
Edge pipeline is supported in the following Azure regions:
5053

5154
- East US2
@@ -55,15 +58,15 @@ Edge pipeline is supported in the following Azure regions:
5558
## Prerequisites
5659

5760
- [Arc-enabled Kubernetes cluster](../../azure-arc/kubernetes/overview.md ) in your own environment with an external IP address. See [Connect an existing Kubernetes cluster to Azure Arc](../../azure-arc/kubernetes/quickstart-connect-cluster.md) for details on enabling Arc for a cluster.
61+
- The Arc-enabled Kubernetes cluster must have the the custom locations features enabled. See [Create and manage custom locations on Azure Arc-enabled Kubernetes](/azure/azure-arc/kubernetes/custom-locations#enable-custom-locations-on-your-cluster).
5862
- Log Analytics workspace in Azure Monitor to receive the data from the edge pipeline. See [Create a Log Analytics workspace in the Azure portal](../../azure-monitor/logs/quick-create-workspace.md) for details on creating a workspace.
5963

60-
> [!NOTE]
61-
> Private link is support by edge pipeline for the connection to the cloud pipeline.
64+
6265

6366
## Workflow
6467
You don't need a detail understanding of the different steps performed by the Azure Monitor pipeline to configure it using the Azure portal. You may need a more detailed understanding of it though if you use another method of installation or if you need to perform more advanced configuration such as transforming the data before it's stored in its destination.
6568

66-
The following table and diagram describe the detailed steps and components in the process for collecting data using the edge pipeline and the configuration required for each of those components.
69+
The following tables and diagrams describe the detailed steps and components in the process for collecting data using the edge pipeline and passing it to the cloud pipeline for storage in Azure Monitor. Also included in the tables is the configuration required for each of those components.
6770

6871
| Step | Action | Supporting configuration |
6972
|:---|:---|:---|
@@ -90,7 +93,7 @@ The following table and diagram describe the detailed steps and components in th
9093
To use Azure Monitor pipeline in a layered network configuration, you must add the following URLs to the allowlist for the Arc-enabled Kubernetes cluster. See [Configure Azure IoT Layered Network Management Preview on level 4 cluster](/azure/iot-operations/manage-layered-network/howto-configure-l4-cluster-layered-network?tabs=k3s#configure-layered-network-management-preview-service).
9194

9295
- `*.ingest.monitor.azure.com`
93-
- Url of DCE.
96+
- Url of DCE
9497

9598

9699
## Create table in Log Analytics workspace
@@ -136,7 +139,7 @@ The settings in this tab are described in the following table.
136139
| Subscription | Azure subscription to create the pipeline instance. |
137140
| Resource group | Resource group to create the pipeline instance. |
138141
| Cluster name | Select your Arc-enabled Kubernetes cluster that the pipeline will be installed on. |
139-
| Custom Location | Custom location for your Arc-enabled Kubernetes cluster. |
142+
| Custom Location | Custom location for your Arc-enabled Kubernetes cluster. This will be automatically populated with the name of a custom location that will be created for your cluster or you can select another custom location in the cluster. |
140143

141144
The **Dataflow** tab allows you to create and edit dataflows for the pipeline instance. Each dataflow includes the following details:
142145

@@ -156,11 +159,11 @@ The settings in this tab are described in the following table.
156159
### [CLI](#tab/CLI)
157160

158161
### Configure pipeline using Azure CLI
159-
Following are the steps required to create and configure the components required for the Azure Monitor edge pipeline using Azure CLI. Not all steps can
162+
Following are the steps required to create and configure the components required for the Azure Monitor edge pipeline using Azure CLI.
160163

161164

162165
### Edge pipeline extension
163-
The following command adds the edge pipeline extension to your Arc-enabled Kubernetes cluster. Replace the properties in the following table before deploying the template.
166+
The following command adds the edge pipeline extension to your Arc-enabled Kubernetes cluster.
164167

165168
```azurecli
166169
az k8s-extension create --name <pipeline-extension-name> --extension-type microsoft.monitor.pipelinecontroller --scope cluster --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --release-train Preview
@@ -170,16 +173,13 @@ az k8s-extension create --name my-pipe --extension-type microsoft.monitor.pipeli
170173
```
171174

172175
### Custom location
173-
The following ARM template creates the custom location for to your Arc-enabled Kubernetes cluster. Replace the properties in the following table before deploying the template.
174-
176+
The following ARM template creates the custom location for to your Arc-enabled Kubernetes cluster.
175177

176178
```azurecli
177-
az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations
178-
az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionId>
179+
az customlocation create --name <custom-location-name> --resource-group <resource-group-name> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionId>
179180
180181
## Example
181-
az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations
182-
az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionId>
182+
az customlocation create --name my-cluster-custom-location --resource-group my-resource-group --namespace my-cluster-custom-location --host-resource-id /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/connectedClusters/my-cluster --cluster-extension-ids /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/connectedClusters/my-cluster/providers/Microsoft.KubernetesConfiguration/extensions/my-cluster
183183
```
184184

185185

@@ -197,9 +197,9 @@ az monitor data-collection endpoint create -g "myResourceGroup" -l "eastus2euap"
197197

198198

199199
### DCR
200-
The DCR is stored in Azure Monitor and defines how the data will be processed when its received from the edge pipeline. The edge pipeline configuration specifies the `immutable ID` of the DCR and the `stream` in the DCR that will process the data.
200+
The DCR is stored in Azure Monitor and defines how the data will be processed when its received from the edge pipeline. The edge pipeline configuration specifies the `immutable ID` of the DCR and the `stream` in the DCR that will process the data. The `immutable ID` is automatically generated when the DCR is created.
201201

202-
Replace the properties in the following table before deploying the template. See [Structure of a data collection rule in Azure Monitor](./data-collection-rule-overview.md) for details on the structure of a DCR.
202+
Replace the properties in the following template and save them in a json file before running the CLI command to create the DCR. See [Structure of a data collection rule in Azure Monitor](./data-collection-rule-overview.md) for details on the structure of a DCR.
203203

204204
| Parameter | Description |
205205
|:---|:--|
@@ -304,9 +304,7 @@ az monitor data-collection rule create --name my-pipeline-dcr --location westus
304304

305305

306306
### DCR access
307-
The Arc-enabled Kubernetes cluster must have access to the DCR to send data to the cloud pipeline. You can use commands in the Azure CLI to grant the necessary permissions.
308-
309-
Use the following command to retrieve the object id of the System Assigned Identity for your cluster.
307+
The Arc-enabled Kubernetes cluster must have access to the DCR to send data to the cloud pipeline. Use the following command to retrieve the object id of the System Assigned Identity for your cluster.
310308

311309
```azurecli
312310
az k8s-extension show --name <extension-name> --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --query "identity.principalId" -o tsv
@@ -466,8 +464,18 @@ Replace the properties in the following table before deploying the template.
466464
}
467465
```
468466

467+
Install the template using the following command:
468+
469+
```azurecli
470+
az deployment group create --resource-group <resource-group-name> --template-file <path-to-template>
471+
472+
## Example
473+
az deployment group create --resource-group my-resource-group --template-file C:\MyPipelineConfig.json
474+
475+
```
476+
469477

470-
### [ARM sample](#tab/ARMAll)
478+
### [ARM](#tab/arm)
471479

472480
### ARM template sample to configure all components
473481

@@ -810,88 +818,6 @@ You can deploy all of the required components for the Azure Monitor edge pipelin
810818
}
811819
```
812820

813-
### [ARM](#tab/arm)
814-
815-
| Parameter | Description |
816-
|:---|:--|
817-
| `name` | Name of the pipeline extension. Must be unique for the subscription. |
818-
| `scope` | Resource ID of your Arc-enabled Kubernetes cluster. |
819-
| `releaseNamespace` | Namespace in the cluster where the extension will be deployed. |
820-
821-
```json
822-
{
823-
"type": "Microsoft.KubernetesConfiguration/extensions",
824-
"apiVersion": "2022-11-01",
825-
"name": "my-pipeline-extension",
826-
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/connectedClusters/my-arc-cluster",
827-
"identity": {
828-
"type": "SystemAssigned"
829-
},
830-
"properties": {
831-
"aksAssignedIdentity": {
832-
"type": "SystemAssigned"
833-
},
834-
"autoUpgradeMinorVersion": false,
835-
"extensionType": "microsoft.monitor.pipelinecontroller",
836-
"releaseTrain": "preview",
837-
"scope": {
838-
"cluster": {
839-
"releaseNamespace": "my-strato-ns"
840-
}
841-
},
842-
"version": "0.37.3-privatepreview"
843-
}
844-
}
845-
846-
847-
848-
| Parameter | Description |
849-
|:---|:--|
850-
| `name` | Name of the custom location. Must be unique for the cluster. |
851-
| `location` | Location of the custom location. |
852-
| `hostResourceId` | Resource ID of the Arc-enabled Kubernetes cluster. |
853-
| `namespace` | Namespace for the custom location. Can use the custom location name. |
854-
| `clusterExtensionIds` | Resource ID of the edge pipeline extension created in the previous step. |
855-
856-
857-
```json
858-
{
859-
"type": "Microsoft.ExtendedLocation/customLocations",
860-
"name": "custom-location-name",
861-
"location": "eastus",
862-
"apiVersion": "2021-08-15",
863-
"properties": {
864-
"hostResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/connectedClusters/my-arc-cluster",
865-
"namespace": "custom-location-name",
866-
"clusterExtensionIds": [
867-
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/connectedClusters/strato-01/providers/Microsoft.KubernetesConfiguration/extensions/my-pipeline-extension"
868-
],
869-
"hostType": "Kubernetes"
870-
}
871-
}
872-
```
873-
874-
875-
| Parameter | Description |
876-
|:---|:--|
877-
| `name` | Name of the DCE. Must be unique for the subscription. |
878-
| `location` | Location of the DCE. Must match the location of the DCR. |
879-
880-
```json
881-
{
882-
"type": "Microsoft.Insights/dataCollectionEndpoints",
883-
"name": "my-dce",
884-
"location": "eastus",
885-
"apiVersion": "2021-04-01",
886-
"properties": {
887-
"configurationAccess": {},
888-
"logsIngestion": {},
889-
"networkAcls": {
890-
"publicNetworkAccess": "Enabled"
891-
}
892-
}
893-
}
894-
```
895821
---
896822

897823
## Verify configuration
@@ -902,11 +828,11 @@ In the Azure portal, navigate to the **Kubernetes services** menu and select you
902828
- \<pipeline name\>-external-service
903829
- \<pipeline name\>-service
904830

905-
:::image type="content" source="media/edge-pipeline/heartbeat-records.png" lightbox="media/edge-pipeline/heartbeat-records.png" alt-text="Screenshot of log query that returns heartbeat records for Azure Monitor edge pipeline." :::
831+
:::image type="content" source="media/edge-pipeline/edge-pipeline-cluster-components.png" lightbox="media/edge-pipeline/edge-pipeline-cluster-components.png" alt-text="Screenshot of cluster components supporting Azure Monitor edge pipeline." :::
906832

907833
Click on the entry for **\<pipeline name\>-external-service** and note the IP address and port in the **Endpoints** column. This is the external IP address and port that your clients will send data to.
908834

909-
## Verify heartbeat
835+
### Verify heartbeat
910836
Each pipeline configured in your pipeline instance will send a heartbeat record to the `Heartbeat` table in your Log Analytics workspace every minute. If there are multiple workspaces in the pipeline instance, then the first one configured will be used.
911837

912838
Retrieve the heartbeat records using a log query as in the following example:
@@ -933,7 +859,9 @@ If the application producing logs is external to the cluster, copy the *external
933859

934860

935861
## Verify data
936-
The final step is to verify that the data is received in the Log Analytics workspace.
862+
The final step is to verify that the data is received in the Log Analytics workspace. You can perform this verification by running a query in the Log Analytics workspace to retrieve data from the table.
863+
864+
[Screenshot placeholder]
937865

938866
## Next steps
939867

510 Bytes
Loading
-5.59 KB
Loading
-40.1 KB
Loading
990 Bytes
Loading

articles/azure-monitor/essentials/pipeline-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ The specific use case for Azure Monitor edge pipeline are:
4646

4747
- **Scalability**. The edge pipeline can handle large volumes of data from monitored resources that may be limited by other collection methods such as Azure Monitor agent.
4848
- **Periodic connectivity**. Some environments may have unreliable connectivity to the cloud, or may have long unexpected periods without connection. The edge pipeline can cache data locally and sync with the cloud when connectivity is restored.
49-
- **Layered network**. In some environments, the network is segmented and data cannot be sent directly to the cloud. The edge pipeline can be used to collect data from monitored resources without cloud access and act as a proxy connection to Azure Monitor. **[xpathak: AzMon pipeline doesn't technically act as proxy. Azure IoT Layered Network Management acts as proxy. Edge pipeline can be configured with it, not sure how we want to make this claer]**
49+
- **Layered network**. In some environments, the network is segmented and data cannot be sent directly to the cloud. The edge pipeline can be used to collect data from monitored resources without cloud access and manage the connection to Azure Monitor in the cloud.
5050

5151
## Data collection scenarios
5252
The following table describes the data collection scenarios that are currently supported using the Azure Monitor pipeline. See the links in each entry for details.

0 commit comments

Comments
 (0)