From fa14fafd42643aa3f67d8e1d307cd2dcb88b0ed2 Mon Sep 17 00:00:00 2001 From: Apoorv Kudesia Date: Wed, 19 Mar 2025 20:23:55 +0530 Subject: [PATCH 1/8] Add Azure Key Vaults Doc changes with Dashboards and alerts --- .../microsoft-azure/azure-key-vault.md | 104 +++++++++++++++--- 1 file changed, 90 insertions(+), 14 deletions(-) diff --git a/docs/integrations/microsoft-azure/azure-key-vault.md b/docs/integrations/microsoft-azure/azure-key-vault.md index 56c695796d..3c4870c315 100644 --- a/docs/integrations/microsoft-azure/azure-key-vault.md +++ b/docs/integrations/microsoft-azure/azure-key-vault.md @@ -8,15 +8,15 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; Thumbnail icon -[Azure Key Vault](https://learn.microsoft.com/en-us/azure/iot-hub/iot-concepts-and-iot-hub) is a managed service hosted in the cloud that acts as a central message hub for communication between an IoT application and its attached devices. This integration helps in comprehensive monitoring of your key vaults requests, performance, failures, and latency. +[Azure Key Vault](https://learn.microsoft.com/en-us/azure/key-vault/general/overview) is a managed service hosted in the cloud that acts as a central message hub for communication between an IoT application and its attached devices. This integration helps in comprehensive monitoring of your key vaults requests, performance, failures, and latency. ## Log and metric types For Azure Key Vault, you can collect the following logs and metrics: -* **Resource logs**. To learn more about the different resource log category types and schemas collected for Azure Key Vault, refer to [Azure documentation](https://learn.microsoft.com/en-gb/azure/key-vault/general/monitor-key-vault-reference#resource-logs). -* **Key Vault Metrics**. These metrics are available in [Microsoft.KeyVault/vaults](https://learn.microsoft.com/en-gb/azure/azure-monitor/essentials/metrics-supported#microsoftkeyvaultvaults) namespace. -* **Managed HSM Metrics**. These metrics are available in [Microsoft.KeyVault/managedhsms](https://learn.microsoft.com/en-gb/azure/azure-monitor/essentials/resource-logs-categories#microsoftkeyvaultmanagedhsms) namespace. +* **Resource logs**. To learn more about the different resource log category types and schemas collected for Azure Key Vault, refer to [Azure documentation](https://learn.microsoft.com/en-us/azure/key-vault/general/monitor-key-vault-reference#resource-logs). +* **Key Vault Metrics**. These metrics are available in [Microsoft.KeyVault/vaults](https://learn.microsoft.com/en-us/azure/azure-monitor/reference/supported-metrics/microsoft-keyvault-vaults-metrics) namespace. +* **Managed HSM Metrics**. These metrics are available in [Microsoft.KeyVault/managedhsms](https://learn.microsoft.com/en-us/azure/azure-monitor/reference/supported-metrics/microsoft-keyvault-managedhsms-metrics) namespace. For more information on supported metrics and their units, refer to the [Azure documentation](https://learn.microsoft.com/en-gb/azure/key-vault/general/monitor-key-vault-reference#key-vault-metrics). @@ -36,21 +36,97 @@ When you configure the event hubs source or HTTP source, plan your source catego In this section, you will configure a pipeline for shipping metrics from Azure Monitor to an Event Hub, on to an Azure Function, and finally to an HTTP Source on a hosted collector in Sumo Logic. 1. [Configure an HTTP Source](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-1-configure-an-http-source). -2. [Configure and deploy the ARM Template](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-2-configure-azure-resources-using-arm-template). -3. [Export metrics to Event Hub](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-3-export-metrics-for-a-particular-resource-to-event-hub). Perform below steps for each Key Vault that you want to monitor. - * Choose `Stream to an event hub` as destination. - * Select `AllMetrics`. - * Use the Event hub namespace created by the ARM template in Step 2 above. You can create a new Event hub or use the one created by ARM template. You can use the default policy `RootManageSharedAccessKey` as the policy name. +1. [Configure and deploy the ARM Template](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-2-configure-azure-resources-using-arm-template). +1. [Export metrics to Event Hub](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-3-export-metrics-for-a-particular-resource-to-event-hub). Perform below steps for each Azure Event Grid namespace that you want to monitor. + 1. Choose `Stream to an event hub` as destination. + 1. Select `AllMetrics`. + 1. Use the Event Hub namespace created by the ARM template in Step 2 above. You can create a new Event Hub or use the one created by ARM template. You can use the default policy `RootManageSharedAccessKey` as the policy name.
Azure event grid metrics +1. Tag the location field in the source with right location value.
Azure Event Grid Tag Location ### Configure logs collection In this section, you will configure a pipeline for shipping diagnostic logs from Azure Monitor to an Event Hub. - +#### Diagnostic logs 1. To set up the Azure Event Hubs source in Sumo Logic, refer to [Azure Event Hubs Source for Logs](/docs/send-data/collect-from-other-data-sources/azure-monitoring/ms-azure-event-hubs-source/). -2. To create the Diagnostic settings in Azure portal, refer to the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings?tabs=portal#create-diagnostic-settings) for Key Vault resource. Perform below steps for each Key Vault that you want to monitor. - * Choose `Stream to an event hub` as the destination. - * Select `allLogs`. - * Use the Event hub namespace and Event hub name configured in previous step in destination details section. You can use the default policy `RootManageSharedAccessKey` as the policy name. +1. To create the Diagnostic settings in Azure portal, refer to the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings?tabs=portal#create-diagnostic-settings). Perform below steps for each Azure Event Grid namespace that you want to monitor. + 1. Choose `Stream to an event hub` as the destination. + 1. Select `allLogs`. + 1. Use the Event Hub namespace and Event Hub name configured in previous step in destination details section. You can use the default policy `RootManageSharedAccessKey` as the policy name. + 1. Use the Event Hub namespace and Event Hub name configured in the previous step in the destination details section. You can use the default policy `RootManageSharedAccessKey` as the policy name.
Azure Event Grid logs +1. Tag the location field in the source with right location value.
Azure Event Grid Tag Location + +#### Activity Logs + +To collect activity logs, follow the instructions [here](/docs/integrations/microsoft-azure/audit). Do not perform this step in case you are already collecting activity logs for a subscription. + +:::note +Since this source contains logs from multiple regions, make sure that you do not tag this source with the location tag. +::: + +## Viewing the Azure Key Vault dashboards + +import ViewDashboards from '../../reuse/apps/view-dashboards.md'; + + + +### Overview + +**Azure Key Vault - Overview** dashboard allows you to monitor and analyze your key vault's usage metrics, including API hits, vault usage, and average latencies. Gain insights into the performance of your vaults. + +Azure Key Vault dashboards + +### Operations Overview + +**Azure Key Vaults - Operations** Overview dashboard provides insights of operational logs for your key vaults. Monitor key, secret, and certificate operations, including creation, storage, deletion, retrieval, setting, and recovery. Gain insights into key activities for effective management. + +Azure Key Vault dashboards + +### Operations Detailed + +**Azure Key Vaults - Operations Detailed** dashboard provides insights of operational logs for your key vaults. Monitor key, secret, and certificate operations, including creation, storage, deletion, retrieval, setting, and recovery in detailed views. Gain insights into key activities for effective management. +Azure Key Vault dashboards + +### Errors and Failures + +**Azure Key Vaults - Errors and Failures** dashboard provides detailed information on what is happening (errors or recent failure events) in a Key Vault. +Azure Key Vault dashboards + +### Administrative Operations + +**Azure Key Vaults - Administrative Operations** dashboard provides details on the operational activities and status of your Azure Key Vaults resources Use this dashboard to: Monitor the distribution of operation types and their success rates to ensure proper functioning of your Key Vaults. Identify potential issues by analyzing the top operations causing errors and correlating them with specific users or applications. Track recent write and delete operations to maintain an audit trail of changes made to your Key Vaults. +Azure Key Vault dashboards + +### Policy and Recommendations + +**Azure Key Vaults - Policy and Recommendations** dashboard provides details on policy events and recommendations for your Azure Key Vaults resources. Use this dashboard to: Monitor the success and failure rates of policy events to ensure proper configuration and compliance. Track and analyse recent recommendations to improve the performance and security of your Vaults setup. Identify trends in policy events and recommendations over time to proactively address potential issues. +Azure Key Vault dashboards + +### Vault Health + +**Azure Key Vaults - Vault Health** dashboard allows you to monitor and analyze your key vault's usage metrics, including API hits, vault usage, and average latencies. Gain insights into the health of your vaults. +Azure Key Vault dashboards + +### Compliance + +**Azure Key Vaults - Compliance** dashboard provides detailed information on what is happening with polices and compliance related events in a Key Vault and gives an overview of the objects (Keys, Secrets, etc) are adhering to specific compliance and policies in Azure. +Azure Key Vault dashboards + +## Create monitors for Azure Key Vaults app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### Azure Key Vaults alerts +These alerts are metric based and will work for all Key Vaults. + +| Alert Name | Alert Description and Conditions | Alert Condition | Recover Condition | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------|:----------------|:------------------| +| `Azure Key Vaults - Availability drops below 100%` | This alert is triggered when availability drops under 100% are detected for any Key Vaults. | Count < 100 | Count = 100 | +| `Azure Key Vaults - Keys, Secrets, Certificates Expired Alert` | This alert trigger when any Keys, Secrets, Certificates has expired for any of Key Vaults. | Count >= 1 | Count < 1 | +| `Azure Key Vaults - Keys, Secrets, Certificates Near Expiry Alert` | This alert trigger when any Keys, Secrets, Certificates are near expiry for any of Key Vaults. | Count >= 1 | Count < 1 | +| `Azure Key Vaults - Latency is greater than 1000 ms` | This alert is triggered when latency of Vaults goes above below 1000ms. | Count >= 1000 | Count < 1000 | +| `Azure Key Vaults - Overall Vault Saturation is greater than 75%` | This alert is triggered when Overall vault saturation of any vaults is greater than 75%. | Count >= 75 | Count < 75 | ## Troubleshooting From 566b02bd7d96cf3b162feac1c4948247876effb8 Mon Sep 17 00:00:00 2001 From: John Pipkin Date: Wed, 19 Mar 2025 13:30:31 -0500 Subject: [PATCH 2/8] Updates from review --- .../microsoft-azure/azure-key-vault.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/integrations/microsoft-azure/azure-key-vault.md b/docs/integrations/microsoft-azure/azure-key-vault.md index 3c4870c315..16b58dba7b 100644 --- a/docs/integrations/microsoft-azure/azure-key-vault.md +++ b/docs/integrations/microsoft-azure/azure-key-vault.md @@ -73,43 +73,43 @@ import ViewDashboards from '../../reuse/apps/view-dashboards.md'; **Azure Key Vault - Overview** dashboard allows you to monitor and analyze your key vault's usage metrics, including API hits, vault usage, and average latencies. Gain insights into the performance of your vaults. -Azure Key Vault dashboards +Azure Key Vault - Overview dashboard ### Operations Overview **Azure Key Vaults - Operations** Overview dashboard provides insights of operational logs for your key vaults. Monitor key, secret, and certificate operations, including creation, storage, deletion, retrieval, setting, and recovery. Gain insights into key activities for effective management. -Azure Key Vault dashboards +Azure Key Vault  - Operations Overview dashboard ### Operations Detailed **Azure Key Vaults - Operations Detailed** dashboard provides insights of operational logs for your key vaults. Monitor key, secret, and certificate operations, including creation, storage, deletion, retrieval, setting, and recovery in detailed views. Gain insights into key activities for effective management. -Azure Key Vault dashboards +Azure Key Vault - Operations Detailed dashboard ### Errors and Failures **Azure Key Vaults - Errors and Failures** dashboard provides detailed information on what is happening (errors or recent failure events) in a Key Vault. -Azure Key Vault dashboards +Azure Key Vault - Errors and Failurs dashboard ### Administrative Operations -**Azure Key Vaults - Administrative Operations** dashboard provides details on the operational activities and status of your Azure Key Vaults resources Use this dashboard to: Monitor the distribution of operation types and their success rates to ensure proper functioning of your Key Vaults. Identify potential issues by analyzing the top operations causing errors and correlating them with specific users or applications. Track recent write and delete operations to maintain an audit trail of changes made to your Key Vaults. -Azure Key Vault dashboards +**Azure Key Vaults - Administrative Operations** dashboard provides details on the operational activities and status of your Azure Key Vaults resources Use this dashboard to monitor the distribution of operation types and their success rates to ensure proper functioning of your Key Vaults. Identify potential issues by analyzing the top operations causing errors and correlating them with specific users or applications. Track recent write and delete operations to maintain an audit trail of changes made to your Key Vaults. +Azure Key Vault - Administrative Operations dashboard ### Policy and Recommendations -**Azure Key Vaults - Policy and Recommendations** dashboard provides details on policy events and recommendations for your Azure Key Vaults resources. Use this dashboard to: Monitor the success and failure rates of policy events to ensure proper configuration and compliance. Track and analyse recent recommendations to improve the performance and security of your Vaults setup. Identify trends in policy events and recommendations over time to proactively address potential issues. -Azure Key Vault dashboards +**Azure Key Vaults - Policy and Recommendations** dashboard provides details on policy events and recommendations for your Azure Key Vaults resources. Use this dashboard to monitor the success and failure rates of policy events to ensure proper configuration and compliance. Track and analyse recent recommendations to improve the performance and security of your Vaults setup. Identify trends in policy events and recommendations over time to proactively address potential issues. +Azure Key Vault - Policy and Recommendations dashboard ### Vault Health **Azure Key Vaults - Vault Health** dashboard allows you to monitor and analyze your key vault's usage metrics, including API hits, vault usage, and average latencies. Gain insights into the health of your vaults. -Azure Key Vault dashboards +Azure Key Vault - Vault Health dashboard ### Compliance **Azure Key Vaults - Compliance** dashboard provides detailed information on what is happening with polices and compliance related events in a Key Vault and gives an overview of the objects (Keys, Secrets, etc) are adhering to specific compliance and policies in Azure. -Azure Key Vault dashboards +Azure Key Vault - Compliance dashboard ## Create monitors for Azure Key Vaults app @@ -123,9 +123,9 @@ These alerts are metric based and will work for all Key Vaults. | Alert Name | Alert Description and Conditions | Alert Condition | Recover Condition | |:-------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------|:----------------|:------------------| | `Azure Key Vaults - Availability drops below 100%` | This alert is triggered when availability drops under 100% are detected for any Key Vaults. | Count < 100 | Count = 100 | -| `Azure Key Vaults - Keys, Secrets, Certificates Expired Alert` | This alert trigger when any Keys, Secrets, Certificates has expired for any of Key Vaults. | Count >= 1 | Count < 1 | -| `Azure Key Vaults - Keys, Secrets, Certificates Near Expiry Alert` | This alert trigger when any Keys, Secrets, Certificates are near expiry for any of Key Vaults. | Count >= 1 | Count < 1 | -| `Azure Key Vaults - Latency is greater than 1000 ms` | This alert is triggered when latency of Vaults goes above below 1000ms. | Count >= 1000 | Count < 1000 | +| `Azure Key Vaults - Keys, Secrets, Certificates Expired Alert` | This alert triggers when any Keys, Secrets, or Certificates have expired for any Key Vaults. | Count >= 1 | Count < 1 | +| `Azure Key Vaults - Keys, Secrets, Certificates Near Expiry Alert` | This alert triggers when any Keys, Secrets, or Certificates are near expiry for any Key Vaults. | Count >= 1 | Count < 1 | +| `Azure Key Vaults - Latency is greater than 1000 ms` | This alert is triggered when latency of Vaults goes above 1000ms. | Count >= 1000 | Count < 1000 | | `Azure Key Vaults - Overall Vault Saturation is greater than 75%` | This alert is triggered when Overall vault saturation of any vaults is greater than 75%. | Count >= 75 | Count < 75 | ## Troubleshooting From 2a66d69a2a14b41c4c30481b928e78a2801d654f Mon Sep 17 00:00:00 2001 From: John Pipkin Date: Wed, 19 Mar 2025 13:35:30 -0500 Subject: [PATCH 3/8] Fix typo --- docs/integrations/microsoft-azure/azure-key-vault.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/microsoft-azure/azure-key-vault.md b/docs/integrations/microsoft-azure/azure-key-vault.md index 16b58dba7b..24c5528501 100644 --- a/docs/integrations/microsoft-azure/azure-key-vault.md +++ b/docs/integrations/microsoft-azure/azure-key-vault.md @@ -89,7 +89,7 @@ import ViewDashboards from '../../reuse/apps/view-dashboards.md'; ### Errors and Failures **Azure Key Vaults - Errors and Failures** dashboard provides detailed information on what is happening (errors or recent failure events) in a Key Vault. -Azure Key Vault - Errors and Failurs dashboard +Azure Key Vault - Errors and Failures dashboard ### Administrative Operations From cc9defb0550bbd3a830d52f449705668d40347c8 Mon Sep 17 00:00:00 2001 From: John Pipkin Date: Wed, 19 Mar 2025 13:41:26 -0500 Subject: [PATCH 4/8] Remove duplicate step --- docs/integrations/microsoft-azure/azure-key-vault.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/integrations/microsoft-azure/azure-key-vault.md b/docs/integrations/microsoft-azure/azure-key-vault.md index 24c5528501..096bfda217 100644 --- a/docs/integrations/microsoft-azure/azure-key-vault.md +++ b/docs/integrations/microsoft-azure/azure-key-vault.md @@ -51,7 +51,6 @@ In this section, you will configure a pipeline for shipping diagnostic logs from 1. To create the Diagnostic settings in Azure portal, refer to the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings?tabs=portal#create-diagnostic-settings). Perform below steps for each Azure Event Grid namespace that you want to monitor. 1. Choose `Stream to an event hub` as the destination. 1. Select `allLogs`. - 1. Use the Event Hub namespace and Event Hub name configured in previous step in destination details section. You can use the default policy `RootManageSharedAccessKey` as the policy name. 1. Use the Event Hub namespace and Event Hub name configured in the previous step in the destination details section. You can use the default policy `RootManageSharedAccessKey` as the policy name.
Azure Event Grid logs 1. Tag the location field in the source with right location value.
Azure Event Grid Tag Location From 0171cd34017c82ae243af41a2407db393ba6cc59 Mon Sep 17 00:00:00 2001 From: Apoorv Kudesia Date: Fri, 21 Mar 2025 14:05:18 +0530 Subject: [PATCH 5/8] Fixes for PR comments --- .../microsoft-azure/azure-key-vault.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/docs/integrations/microsoft-azure/azure-key-vault.md b/docs/integrations/microsoft-azure/azure-key-vault.md index 096bfda217..fbcd6b29ab 100644 --- a/docs/integrations/microsoft-azure/azure-key-vault.md +++ b/docs/integrations/microsoft-azure/azure-key-vault.md @@ -37,27 +37,26 @@ In this section, you will configure a pipeline for shipping metrics from Azure M 1. [Configure an HTTP Source](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-1-configure-an-http-source). 1. [Configure and deploy the ARM Template](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-2-configure-azure-resources-using-arm-template). -1. [Export metrics to Event Hub](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-3-export-metrics-for-a-particular-resource-to-event-hub). Perform below steps for each Azure Event Grid namespace that you want to monitor. - 1. Choose `Stream to an event hub` as destination. +1. [Export metrics to Event Hub](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-3-export-metrics-for-a-particular-resource-to-event-hub). Perform the steps below for each Azure Event Grid namespace that you want to monitor. + 1. Choose `Stream to an event hub` as the destination. 1. Select `AllMetrics`. - 1. Use the Event Hub namespace created by the ARM template in Step 2 above. You can create a new Event Hub or use the one created by ARM template. You can use the default policy `RootManageSharedAccessKey` as the policy name.
Azure event grid metrics -1. Tag the location field in the source with right location value.
Azure Event Grid Tag Location + 1. Use the Event Hub namespace created by the ARM template configured in the previous step. You can create a new Event Hub or use the one created by the ARM template. You can use the default policy `RootManageSharedAccessKey` as the policy name.
Azure event grid metrics +1. Tag the location field in the source with the right location value.
Azure Event Grid Tag Location ### Configure logs collection In this section, you will configure a pipeline for shipping diagnostic logs from Azure Monitor to an Event Hub. #### Diagnostic logs 1. To set up the Azure Event Hubs source in Sumo Logic, refer to [Azure Event Hubs Source for Logs](/docs/send-data/collect-from-other-data-sources/azure-monitoring/ms-azure-event-hubs-source/). -1. To create the Diagnostic settings in Azure portal, refer to the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings?tabs=portal#create-diagnostic-settings). Perform below steps for each Azure Event Grid namespace that you want to monitor. +1. To create the Diagnostic settings in Azure portal, refer to the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings?tabs=portal#create-diagnostic-settings). Perform the steps below for each Azure Event Grid namespace that you want to monitor. 1. Choose `Stream to an event hub` as the destination. 1. Select `allLogs`. 1. Use the Event Hub namespace and Event Hub name configured in the previous step in the destination details section. You can use the default policy `RootManageSharedAccessKey` as the policy name.
Azure Event Grid logs -1. Tag the location field in the source with right location value.
Azure Event Grid Tag Location +1. Tag the location field in the source with the right location value.
Azure Event Grid Tag Location #### Activity Logs -To collect activity logs, follow the instructions [here](/docs/integrations/microsoft-azure/audit). Do not perform this step in case you are already collecting activity logs for a subscription. - +To collect activity logs, refer to the [Collecting Logs for the Azure Audit App from Event Hub](/docs/integrations/microsoft-azure/audit) section in the Azure Audit documentation. Do not perform this step in case you are already collecting activity logs for a subscription. :::note Since this source contains logs from multiple regions, make sure that you do not tag this source with the location tag. ::: @@ -70,7 +69,7 @@ import ViewDashboards from '../../reuse/apps/view-dashboards.md'; ### Overview -**Azure Key Vault - Overview** dashboard allows you to monitor and analyze your key vault's usage metrics, including API hits, vault usage, and average latencies. Gain insights into the performance of your vaults. +**Azure Key Vaults - Overview** dashboard allows you to monitor and analyze your key vault's usage metrics, including API hits, vault usage, and average latencies. Gain insights into the performance of your vaults. Azure Key Vault - Overview dashboard From bf2c95ee2d8af027a6d9ffe5bbe9c7b6926bc293 Mon Sep 17 00:00:00 2001 From: Apoorv Kudesia Date: Fri, 21 Mar 2025 17:30:20 +0530 Subject: [PATCH 6/8] Fixing PR comments on Metrics collection --- .../microsoft-azure/azure-key-vault.md | 16 ++++++++-------- .../azure-key-vaults-namespaces.png | Bin 0 -> 52139 bytes 2 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 static/img/integrations/microsoft-azure/azure-key-vaults-namespaces.png diff --git a/docs/integrations/microsoft-azure/azure-key-vault.md b/docs/integrations/microsoft-azure/azure-key-vault.md index fbcd6b29ab..70aa1ef580 100644 --- a/docs/integrations/microsoft-azure/azure-key-vault.md +++ b/docs/integrations/microsoft-azure/azure-key-vault.md @@ -33,15 +33,15 @@ When you configure the event hubs source or HTTP source, plan your source catego ### Configure metrics collection -In this section, you will configure a pipeline for shipping metrics from Azure Monitor to an Event Hub, on to an Azure Function, and finally to an HTTP Source on a hosted collector in Sumo Logic. +:::note +Sumo Logic Metrics source is currently in Beta, to participate, contact your Sumo Logic account executive. +::: + +In the Sumo Logic Azure Metrics source configuration, + +- Tag the location field in the source with correct Azure resource location value.
Azure Key Vaults Location +- Configure namespaces as `Microsoft.KeyVault/vaults` and `Microsoft.KeyVault/managedhsms`.
Azure Key Vaults Namespaces -1. [Configure an HTTP Source](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-1-configure-an-http-source). -1. [Configure and deploy the ARM Template](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-2-configure-azure-resources-using-arm-template). -1. [Export metrics to Event Hub](/docs/send-data/collect-from-other-data-sources/azure-monitoring/collect-metrics-azure-monitor/#step-3-export-metrics-for-a-particular-resource-to-event-hub). Perform the steps below for each Azure Event Grid namespace that you want to monitor. - 1. Choose `Stream to an event hub` as the destination. - 1. Select `AllMetrics`. - 1. Use the Event Hub namespace created by the ARM template configured in the previous step. You can create a new Event Hub or use the one created by the ARM template. You can use the default policy `RootManageSharedAccessKey` as the policy name.
Azure event grid metrics -1. Tag the location field in the source with the right location value.
Azure Event Grid Tag Location ### Configure logs collection diff --git a/static/img/integrations/microsoft-azure/azure-key-vaults-namespaces.png b/static/img/integrations/microsoft-azure/azure-key-vaults-namespaces.png new file mode 100644 index 0000000000000000000000000000000000000000..9e70bda1ecd5e95c95794b4facef68def71c1f2d GIT binary patch literal 52139 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

iXU%Mg6bxqA^~Y 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 YD-XnozJSHG@eKHrmw6*yC211)KRx6}Z~y=R literal 0 HcmV?d00001 From 52911fcd29ecaa75bb54e6fff194f40340a36dfc Mon Sep 17 00:00:00 2001 From: Apoorv Kudesia Date: Mon, 24 Mar 2025 19:08:22 +0530 Subject: [PATCH 7/8] Minor fixes for wrong names --- docs/integrations/microsoft-azure/azure-key-vault.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/integrations/microsoft-azure/azure-key-vault.md b/docs/integrations/microsoft-azure/azure-key-vault.md index 70aa1ef580..f110b6b378 100644 --- a/docs/integrations/microsoft-azure/azure-key-vault.md +++ b/docs/integrations/microsoft-azure/azure-key-vault.md @@ -39,7 +39,6 @@ Sumo Logic Metrics source is currently in Beta, to participate, contact your Sum In the Sumo Logic Azure Metrics source configuration, -- Tag the location field in the source with correct Azure resource location value.
Azure Key Vaults Location - Configure namespaces as `Microsoft.KeyVault/vaults` and `Microsoft.KeyVault/managedhsms`.
Azure Key Vaults Namespaces @@ -48,11 +47,11 @@ In the Sumo Logic Azure Metrics source configuration, In this section, you will configure a pipeline for shipping diagnostic logs from Azure Monitor to an Event Hub. #### Diagnostic logs 1. To set up the Azure Event Hubs source in Sumo Logic, refer to [Azure Event Hubs Source for Logs](/docs/send-data/collect-from-other-data-sources/azure-monitoring/ms-azure-event-hubs-source/). -1. To create the Diagnostic settings in Azure portal, refer to the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings?tabs=portal#create-diagnostic-settings). Perform the steps below for each Azure Event Grid namespace that you want to monitor. +1. To create the Diagnostic settings in Azure portal, refer to the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings?tabs=portal#create-diagnostic-settings). Perform the steps below for each Azure Key Vault namespace that you want to monitor. 1. Choose `Stream to an event hub` as the destination. 1. Select `allLogs`. 1. Use the Event Hub namespace and Event Hub name configured in the previous step in the destination details section. You can use the default policy `RootManageSharedAccessKey` as the policy name.
Azure Event Grid logs -1. Tag the location field in the source with the right location value.
Azure Event Grid Tag Location +1. Tag the location field in the source with the right location value.
Azure Key Vaults Tag Location #### Activity Logs From b83f37d5410c830109f08239137d2ac529ce3eea Mon Sep 17 00:00:00 2001 From: Amee Lepcha Date: Fri, 28 Mar 2025 15:12:32 +0530 Subject: [PATCH 8/8] Update azure-key-vault.md --- docs/integrations/microsoft-azure/azure-key-vault.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/integrations/microsoft-azure/azure-key-vault.md b/docs/integrations/microsoft-azure/azure-key-vault.md index f110b6b378..ce3547fc79 100644 --- a/docs/integrations/microsoft-azure/azure-key-vault.md +++ b/docs/integrations/microsoft-azure/azure-key-vault.md @@ -37,10 +37,9 @@ When you configure the event hubs source or HTTP source, plan your source catego Sumo Logic Metrics source is currently in Beta, to participate, contact your Sumo Logic account executive. ::: -In the Sumo Logic Azure Metrics source configuration, - -- Configure namespaces as `Microsoft.KeyVault/vaults` and `Microsoft.KeyVault/managedhsms`.
Azure Key Vaults Namespaces - +1. To set up the Azure Metrics source in Sumo Logic, refer to the shared beta documentation. +1. In the Sumo Logic Azure Metrics source configuration, configure namespaces as `Microsoft.KeyVault/vaults` and `Microsoft.KeyVault/managedhsms`. +Azure Key Vaults Namespaces ### Configure logs collection