Tutoriel : Ingérer des événements d'Azure Event Hubs dans les journaux Azure Monitor (préversion publique)
Azure Event Hubs est une plateforme de streaming Big Data qui collecte des événements provenant de plusieurs sources à ingérer par Azure et des services externes. Cet article explique comment ingérer des données directement à partir d’un Event Hub dans un espace de travail Log Analytics.
Dans ce tutoriel, vous allez apprendre à :
- Créer une table de destination pour les données Event Hub dans votre espace de travail Log Analytics
- Créer un point de terminaison de collecte de données
- Créer une règle de collecte de données
- Accorder des autorisations de règle de collecte de données à Event Hub
- Associer la règle de collecte de données à Event Hub
Prérequis
Pour envoyer des événements d’Azure Event Hubs vers Azure Monitor Logs, vous avez besoin des ressources suivantes :
Un espace de travail Log Analytics dans lequel vous avez au minimum des droits de contributeur.
Votre espace de travail Log Analytics doit être lié à un cluster dédié ou avoir un niveau d’engagement.
Espace de noms Event Hubs qui autorise l’accès au réseau public. Si l'accès au réseau public est désactivé, assurez-vous que « Autoriser les services Microsoft approuvés à contourner ce pare-feu » est défini sur « Oui ».
Event Hub avec des événements. Vous pouvez envoyer des événements à votre Event Hub en suivant les étapes décrites dans les tutoriels Envoyer et recevoir des événements dans Azure Event Hubs ou en configurant les paramètres de diagnostic des ressources Azure.
Régions prises en charge
Azure Monitor prend actuellement en charge l’ingestion à partir d’Event Hubs dans ces régions :
Amérique | Europe | Moyen-Orient | Afrique | Asie-Pacifique |
---|---|---|---|---|
Brésil Sud | France Centre | Émirats arabes unis Nord | Afrique du Sud Nord | Centre de l’Australie |
Brésil Sud-Est | Europe Nord | Australie Est | ||
Centre du Canada | Norvège Est | Sud-Australie Est | ||
Est du Canada | Suisse Nord | Inde centrale | ||
USA Est | Suisse Ouest | Asie Est | ||
USA Est 2 | Sud du Royaume-Uni | Japon Est | ||
États-Unis - partie centrale méridionale | Ouest du Royaume-Uni | Inde Ouest Jio | ||
USA Ouest | Europe Ouest | Centre de la Corée | ||
USA Ouest 3 | Asie Sud-Est |
Vous devez créer votre association de règles de collecte de données (DCRA) dans la même région que Event Hub. L'espace de travail Log Analytics peut se trouver dans n'importe quelle région, mais la règle de collecte de données (DCR) et le point de terminaison de collecte de données (DCE) doivent se trouver dans la même région que l'espace de travail Log Analytics.
Pour une latence minimale, nous vous recommandons de placer toutes les ressources dans la même région.
Collecter les informations nécessaires
Vous avez besoin de votre ID d’abonnement, du nom du groupe de ressources, du nom de l’espace de travail, et des ID de ressource de l’espace de travail et de l’instance Event Hub dans les étapes suivantes :
Accédez à votre espace de travail dans le menu Espaces de travail Log Analytics et sélectionnez Propriétés, puis copiez votre ID d’abonnement, groupe de ressources et nom de l’espace de travail. Vous aurez besoin de ces détails pour créer des ressources dans ce tutoriel.
Sélectionnez JSON pour ouvrir l’écran de la ressource JSON et copier l’ID de ressource de l’espace de travail. Vous aurez besoin de l’ID de ressource de l’espace de travail pour créer une règle de collecte de données.
Accédez à votre instance Event Hub, sélectionnez JSON pour ouvrir l’écran de la ressource JSON , puis copiez l’ID de ressource de l’instance Event Hub. Vous aurez besoin de l’ID de ressource de l’instance Event Hub pour associer la règle de collecte de données au Event Hub.
Créer une table de destination dans votre espace de travail Log Analytics
Avant de pouvoir ingérer des données, vous devez configurer une table de destination. Vous pouvez ingérer des données dans des tables personnalisées et des tables Azure prises en charge.
Pour créer une table personnalisée dans laquelle ingérer des événements, dans le Portail Azure :
Sélectionnez le bouton Cloud Shell dans le portail Azure et vérifiez que l’environnement est défini sur PowerShell.
Exécutez cette commande PowerShell pour créer la table, en fournissant le nom de la table (
<table_name>
) dans le JSON (également avec le suffixe _CL en cas de table personnalisée) et en définissant les valeurs<subscription_id>
,<resource_group_name>
,<workspace_name>
et<table_name>
dans la commandeInvoke-AzRestMethod -Path
:$tableParams = @' { "properties": { "schema": { "name": "<table_name>", "columns": [ { "name": "TimeGenerated", "type": "datetime", "description": "The time at which the data was ingested." }, { "name": "RawData", "type": "string", "description": "Body of the event." }, { "name": "Properties", "type": "dynamic", "description": "Additional message properties." } ] } } } '@ Invoke-AzRestMethod -Path "/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/microsoft.operationalinsights/workspaces/<workspace_name>/tables/<table_name>?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
Important
- Les noms de colonnes doivent commencer par une lettre et peuvent comporter jusqu’à 45 caractères alphanumériques et traits de soulignement (
_
). _ResourceId
,id
,_ResourceId
,_SubscriptionId
,TenantId
,Type
,UniqueId
etTitle
sont des noms de colonnes réservés.- Les noms de colonnes sont sensibles à la casse. Veillez à utiliser la casse correcte dans votre règle de collecte de données.
Créer un point de terminaison de collecte de données
Pour collecter des données avec une règle de collecte de données, vous avez besoin d’un point de terminaison de collecte de données :
Créez un point de terminaison de collecte de données.
Important
Créez la règle de collecte de données dans la même région que celle où se trouve votre espace de travail Log Analytics.
Dans l’écran Vue d’ensemble du point de terminaison de collecte de données, sélectionnez Vue JSON.
Copiez l'ID de ressource pour la règle de collecte des données. Vous utiliserez ces informations à l’étape suivante.
Créer une règle de collecte de données
Azure Monitor utilise des règles de collecte de données pour définir les données à collecter, comment transformer ces données et où envoyer les données.
Pour créer la règle de collecte de données dans le portail Azure :
Dans le menu du Portail Azure, dans la zone de recherche, tapez modèle, puis sélectionnez Déployer un modèle personnalisé.
Sélectionnez Générer votre propre modèle dans l’éditeur.
Collez le modèle Resource Manager ci-dessous dans l’éditeur, puis cliquez sur Enregistrer.
Notez les détails suivants dans la règle de collecte de données ci-dessous :
identity
: Définit le type d’identité managée à utiliser. Dans notre exemple, nous utilisons une identité affectée par le système. Vous pouvez également configurer une identité managée affectée par l’utilisateur.dataCollectionEndpointId
: ID de ressource du point de terminaison de collecte de données.streamDeclarations
: Définit les données à ingérer à partir du Event Hub (données entrantes). La déclaration de flux de données ne peut pas être modifiée.TimeGenerated
: Heure à laquelle les données ont été ingérées du Event Hub vers les journaux Azure Monitor.RawData
: Corps de l’événement. Pour plus d’informations, consultez Lire les événements.Properties
: Propriétés utilisateur de l’événement. Pour plus d’informations, consultez Lire les événements.
datasources
: Spécifie le groupe de consommateurs event hub et le flux vers lequel vous ingérez les données.destinations
: Spécifie toutes les destinations où les données seront envoyées. Vous pouvez ingérer des données dans un ou plusieurs espaces de travail Log Analytics.dataFlows
: correspond au flux de travail avec l’espace de travail de destination et spécifie la requête de transformation et la table de destination. Dans notre exemple, nous ingérons des données dans la table personnalisée que nous avons créée précédemment. Vous pouvez également ingérer dans une table Azure prise en charge.transformKql
: spécifie la transformation à appliquer aux données entrantes (déclaration de flux de données) avant qu’elles ne soient envoyées à l’espace de travail. Dans notre exemple, nous définissons la valeurtransformKql
sursource
, qui ne modifie en aucune façon les données de la source, car nous mappons les données entrantes à une table personnalisée que nous avons créée spécifiquement avec le schéma correspondant. Si vous ingérez des données dans une table avec un schéma différent ou pour filtrer des données avant l’ingestion, définissez une transformation de collecte de données.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "dataCollectionRuleName": { "type": "string", "metadata": { "description": "Specifies the name of the data collection Rule to create." } }, "workspaceResourceId": { "type": "string", "metadata": { "description": "Specifies the Azure resource ID of the Log Analytics workspace to use." } }, "endpointResourceId": { "type": "string", "metadata": { "description": "Specifies the Azure resource ID of the data collection endpoint to use." } }, "tableName": { "type": "string", "metadata": { "description": "Specifies the name of the table in the workspace." } }, "consumerGroup": { "type": "string", "metadata": { "description": "Specifies the consumer group of event hub." }, "defaultValue": "$Default" } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRules", "name": "[parameters('dataCollectionRuleName')]", "location": "[resourceGroup().location]", "apiVersion": "2022-06-01", "identity": { "type": "systemAssigned" }, "properties": { "dataCollectionEndpointId": "[parameters('endpointResourceId')]", "streamDeclarations": { "Custom-MyEventHubStream": { "columns": [ { "name": "TimeGenerated", "type": "datetime" }, { "name": "RawData", "type": "string" }, { "name": "Properties", "type": "dynamic" } ] } }, "dataSources": { "dataImports": { "eventHub": { "consumerGroup": "[parameters('consumerGroup')]", "stream": "Custom-MyEventHubStream", "name": "myEventHubDataSource1" } } }, "destinations": { "logAnalytics": [ { "workspaceResourceId": "[parameters('workspaceResourceId')]", "name": "MyDestination" } ] }, "dataFlows": [ { "streams": [ "Custom-MyEventHubStream" ], "destinations": [ "MyDestination" ], "transformKql": "source", "outputStream": "[concat('Custom-', parameters('tableName'))]" } ] } } ] }
Dans l’écran Déploiement personnalisé, spécifiez un Abonnement et un Groupe de ressources pour stocker la règle de collecte de données, puis fournissez des valeurs pour les paramètres définis dans le modèle, notamment :
- Région : région pour la règle de collecte de données. Rempli automatiquement en fonction du groupe de ressources que vous sélectionnez.
- Nom de la règle de collecte de données : donnez un nom à la règle.
- ID de ressource de l’espace de travail : consultez Collecter les informations requises.
- ID de ressource de point de terminaison : généré lorsque vous créez le point de terminaison de collecte de données.
- Nom de la table : spécifie le nom de la table de destination. Dans notre exemple, et chaque fois que vous utilisez une table personnalisée, le nom de la table doit se terminer par le suffixe _CL. Si vous ingérez des données dans une table Azure, entrez le nom de la table ( par exemple,
Syslog
) sans le suffixe. - Groupe de consommateurs : par défaut, le groupe de consommateurs est défini sur
$Default
. Si nécessaire, remplacez la valeur par un autre groupe de consommateurs Event Hub.
Sélectionnez Vérifier + créer, puis Créer quand vous passez en revue les détails.
Une fois le déploiement terminé, développez la zone Détails du déploiement et sélectionnez votre règle de collecte de données pour en afficher les détails. Sélectionnez Vue JSON.
Copiez l'ID de ressource pour la règle de collecte des données. Vous utiliserez ces informations à l’étape suivante.
Configurer des identités managées affectées par l’utilisateur (facultatif)
Pour configurer votre règle de collecte de données afin de prendre en charge l’identité affectée par l’utilisateur, dans l’exemple ci-dessus, remplacez :
"identity": {
"type": "systemAssigned"
},
par :
"identity": {
"type": "userAssigned",
"userAssignedIdentities": {
"<identity_resource_Id>": {
}
}
},
Pour trouver la <identity_resource_Id>
valeur, accédez à votre ressource d’identité managée affectée par l’utilisateur dans le Portail Azure, sélectionnez JSON pour ouvrir l’écran JSON de la ressource et copiez l’ID de ressource de l’identité managée.
Ingérer des données de journal dans une table Azure (facultatif)
Pour ingérer des données dans une table Azure prise en charge :
Dans la règle de collecte de données, modifiez
outputStream
:de :
"outputStream": "[concat('Custom-', parameters('tableName'))]"
À :
"outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"
Dans
transformKql
, définissez une transformation qui envoie les données ingérées dans les colonnes cibles de la table Azure de destination.
Accorder des autorisations d’Event Hub à la règle de collecte de données
Avec l’identité managée, vous pouvez accorder à n’importe quel hub d’événements ou espace de noms Event Hubs l’autorisation d’envoyer des événements à la règle de collecte de données et au point de terminaison de collecte de données que vous avez créés. Lorsque vous accordez les autorisations à l’espace de noms Event Hubs, tous les hubs d’événements au sein de l’espace de noms héritent des autorisations.
Dans le hub d’événements ou l’espace de noms Event Hubs dans le Portail Azure, sélectionnez Access Control (IAM)>Ajouter une attribution de rôle.
Sélectionnez Récepteur de données Azure Event Hubs, puis Suivant.
Pour Attribuer l’accès à, sélectionnez Identité managée, puis cliquez sur Sélectionner des membres. Sélectionnez Règle de collecte de données, recherchez votre règle par son nom, puis cliquez sur Sélectionner.
Cliquez sur Examiner et attribuer et examinez les détails avant d’enregistrer votre attribution de rôle.
Associer la règle de collecte de données à Event Hub
La dernière étape consiste à associer la règle de collecte de données au Event Hub à partir duquel vous souhaitez collecter des événements.
Vous pouvez associer une seule règle de collecte de données à plusieurs Event Hubs qui partagent le même groupe de consommateurs et ingèrent des données dans le même flux. Vous pouvez également associer une règle de collecte de données unique à chaque Event hub.
Important
Vous devez associer au moins une règle de collecte de données au Event Hub pour ingérer des données à partir d’un Event Hub. Lorsque vous supprimez toutes les associations de règles de collecte de données liées au Event Hub, vous arrêtez d’ingérer des données à partir du Event Hub.
Pour créer la règle de collecte de données dans le portail Azure :
Dans le menu du Portail Azure, dans la zone de recherche, tapez modèle, puis sélectionnez Déployer un modèle personnalisé.
Sélectionnez Générer votre propre modèle dans l’éditeur.
Collez le modèle Resource Manager ci-dessous dans l’éditeur, puis cliquez sur Enregistrer.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "eventHubResourceID": { "type": "string", "metadata": { "description": "Specifies the Azure resource ID of the event hub to use." } }, "associationName": { "type": "string", "metadata": { "description": "The name of the association." } }, "dataCollectionRuleID": { "type": "string", "metadata": { "description": "The resource ID of the data collection rule." } } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRuleAssociations", "apiVersion": "2021-09-01-preview", "scope": "[parameters('eventHubResourceId')]", "name": "[parameters('associationName')]", "properties": { "description": "Association of data collection rule. Deleting this association will break the data collection for this event hub.", "dataCollectionRuleId": "[parameters('dataCollectionRuleId')]" } } ] }
Dans l’écran Déploiement personnalisé, spécifiez un Abonnement et un Groupe de ressources pour stocker la règle de collecte de données, puis fournissez des valeurs pour les paramètres définis dans le modèle, notamment :
- Région : Rempli automatiquement en fonction du groupe de ressources que vous sélectionnez.
- ID de ressource de l’instance Event Hub : consultez Collecter les informations requises.
- Nom de l’association : donnez un nom à l’association.
- ID de règle de collecte de données : généré lorsque vous créez la règle de collecte de données.
Sélectionnez Vérifier + créer, puis Créer quand vous passez en revue les détails.
Vérifiez votre table de destination pour les événements ingérés
Les journaux Azure Monitor ingèrent tous les événements qui existent dans Event Hub au moment de la création du DCRA, à condition que leur période de conservation n’ait pas expiré, ainsi que tous les nouveaux événements.
Pour vérifiez votre table de destination pour les événements ingérés :
Accédez à votre espace de travail, puis sélectionnez Journaux.
Écrivez une requête simple dans l’éditeur de requête et sélectionnez Exécuter :
<table_name>
Vous devez voir les événements de votre Event Hub.
Nettoyer les ressources
Dans ce tutoriel, vous avez créé les ressources suivantes :
- Table personnalisée
- Point de terminaison de collecte de données
- Règle de collecte de données
- Associations de règles de collecte de données
Évaluez si vous avez toujours besoin de ces ressources. Supprimez les ressources dont vous n’avez pas besoin individuellement, ou supprimez toutes ces ressources à la fois en supprimant le groupe de ressources. Les ressources que vous laissez fonctionner peuvent vous coûter cher.
Pour arrêter d’ingérer des données à partir du Event Hub, supprimez toutes les associations de règles de collecte de données liées au Event Hub ou supprimez les règles de collecte de données elles-mêmes. Ces actions réinitialisent également les points de contrôle du Event Hub.
Problèmes connus et limitations
- Si vous transférez un abonnement entre des annuaires Microsoft Entra, vous devez suivre les étapes décrites dans Problèmes connus avec les identités managées pour les ressources Azure pour continuer à ingérer des données.
- Vous pouvez ingérer des messages allant jusqu’à 64 Ko d’Event Hubs vers les journaux Azure Monitor.
Étapes suivantes
En savoir plus sur :