Esercitazione: Inserire eventi da Hub eventi di Azure nei log di Monitoraggio di Azure (anteprima pubblica)
Hub eventi di Azure è una piattaforma di streaming di Big Data che raccoglie eventi da più origini da inserire da Azure e da servizi esterni. Questo articolo illustra come inserire dati direttamente da un hub eventi in un'area di lavoro Log Analytics.
In questa esercitazione apprenderai a:
- Creare una tabella di destinazione per i dati dell'hub eventi nell'area di lavoro Log Analytics
- Creare un endpoint di raccolta dati
- Creare una regola di raccolta dati
- Concedere le autorizzazioni per la regola di raccolta dati all'hub eventi
- Associare la regola di raccolta dati all'hub eventi
Prerequisiti
Per inviare eventi da Hub eventi di Azure ai log di Monitoraggio di Azure, sono necessarie queste risorse:
Un'area di lavoro Log Analytics in cui si dispone almeno dei diritti di collaboratore.
L'area di lavoro Log Analytics deve essere collegata a un cluster dedicato o per avere un livello di impegno.
Spazio dei nomi di Hub eventi che consente l'accesso alla rete pubblica. Se l'accesso alla rete pubblica è disabilitato, assicurarsi che "Consenti servizi Microsoft attendibile di ignorare il firewall" sia impostato su "Sì".
Hub eventi con eventi. È possibile inviare eventi all'hub eventi seguendo la procedura descritta nelle esercitazioni Inviare e ricevere eventi in Hub eventi di Azure o configurando le impostazioni di diagnostica delle risorse di Azure.
Aree geografiche supportate
Monitoraggio di Azure supporta attualmente l'inserimento da Hub eventi in queste aree:
Americhe | Europa | Medio Oriente | Africa | Asia Pacifico |
---|---|---|---|---|
Brasile meridionale | Francia centrale | Emirati Arabi Uniti settentrionali | Sudafrica settentrionale | Australia centrale |
Brasile meridionale | Europa settentrionale | Australia orientale | ||
Canada centrale | Norvegia orientale | Australia sud-orientale | ||
Canada orientale | Svizzera settentrionale | India centrale | ||
Stati Uniti orientali | Svizzera occidentale | Asia orientale | ||
Stati Uniti orientali 2 | Regno Unito meridionale | Giappone orientale | ||
Stati Uniti centro-meridionali | Regno Unito occidentale | India occidentale Jio | ||
Stati Uniti occidentali | Europa occidentale | Corea centrale | ||
Stati Uniti occidentali 3 | Asia sud-orientale |
È necessario creare l'associazione DCRA (Data Collection Rule Association) nella stessa area dell'hub eventi. L'area di lavoro Log Analytics può trovarsi in qualsiasi area, ma la regola di raccolta dati e l'endpoint di raccolta dati devono trovarsi nella stessa area dell'area di lavoro Log Analytics.
Per una latenza minima, è consigliabile inserire tutte le risorse nella stessa area.
Raccogliere le informazioni necessarie
Sono necessari l'ID sottoscrizione, il nome del gruppo di risorse, il nome dell'area di lavoro, l'ID risorsa dell'area di lavoro e l'ID risorsa dell'istanza dell'hub eventi nei passaggi successivi:
Passare all'area di lavoro nel menu aree di lavoro Log Analytics e selezionare Proprietà e copiare l'ID sottoscrizione, il gruppo di risorse e il nome dell'area di lavoro. Questi dettagli saranno necessari per creare risorse in questa esercitazione.
Selezionare JSON per aprire la schermata Risorsa JSON e copiare l'ID risorsa dell'area di lavoro. Per creare una regola di raccolta dati, è necessario l'ID risorsa dell'area di lavoro.
Passare all'istanza dell'hub eventi, selezionare JSON per aprire la schermata Risorsa JSON e copiare l'ID risorsa dell'istanza dell'hub eventi. È necessario l'ID risorsa dell'istanza dell'hub eventi per associare la regola di raccolta dati all'hub eventi.
Crea una tabella di destinazione nell'area di lavoro Log Analytics
Prima di poter inserire dati, è necessario configurare una tabella di destinazione. È possibile inserire dati in tabelle personalizzate e tabelle di Azure supportate.
Per creare una tabella personalizzata in cui inserire eventi, nel portale di Azure:
Selezionare il pulsante Cloud Shell e assicurarsi che l'ambiente sia impostato su PowerShell.
Eseguire questo comando di PowerShell per creare la tabella, specificando il nome della tabella (
<table_name>
) nel file JSON (anche con suffisso _CL nel caso di tabella personalizzata) e impostando i valori<subscription_id>
,<resource_group_name>
,<workspace_name>
e<table_name>
nel comandoInvoke-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
Importante
- I nomi delle colonne devono iniziare con una lettera e possono essere costituiti da un massimo di 45 caratteri alfanumerici e caratteri di sottolineatura (
_
). _ResourceId
,id
,_ResourceId
,_SubscriptionId
,TenantId
,Type
,UniqueId
eTitle
sono nomi di colonna riservati.- I nomi delle colonne distinguono tra maiuscole e minuscole. Assicurarsi di usare il caso corretto nella regola di raccolta dati.
Creare un endpoint di raccolta dati
Per raccogliere dati con una regola di raccolta dati, è necessario un endpoint di raccolta dati:
Creare un endpoint di raccolta dati.
Importante
Creare l'endopoint di raccolta dati nella stessa area dell'area di lavoro Log Analytics.
Nella schermata Panoramica dell'endpoint di raccolta dati selezionare Visualizzazione JSON.
Copiare l'ID risorsa per la regola di raccolta dati. Queste informazioni verranno usate nel passaggio successivo.
Creare una regola di raccolta dati
Monitoraggio di Azure usa regole di raccolta dati per definire quali dati raccogliere, come trasformare tali dati e dove inviare i dati.
Per creare una regola di raccolta dati nel portale di Azure:
Nella casella di ricerca del portale, digitare modello e quindi selezionare Distribuisci un modello personalizzato.
Selezionare Creare un modello personalizzato nell'editor.
Incollare il modello di Resource Manager seguente nell'editor e quindi selezionare Salva.
Si notino i dettagli seguenti nella regola di raccolta dati seguente:
identity
: definisce il tipo di identità gestita da usare. In questo esempio viene usata l'identità assegnata dal sistema. È anche possibile configurare l'identità gestita assegnata dall'utente.dataCollectionEndpointId
: ID risorsa dell'endpoint di raccolta dati.streamDeclarations
: definisce i dati da inserire dall'hub eventi (dati in ingresso). La dichiarazione del flusso non può essere modificata.TimeGenerated
: ora in cui i dati sono stati inseriti dall'hub eventi ai log di Monitoraggio di Azure.RawData
: corpo dell'evento. Per altre informazioni, vedere Leggere gli eventi.Properties
: proprietà utente dall'evento. Per altre informazioni, vedere Leggere gli eventi.
datasources
: specifica il gruppo di consumer dell'hub eventi e il flusso in cui inserire i dati.destinations
: specifica tutte le destinazioni in cui verranno inviati i dati. È possibile inserire dati in una o più aree di lavoro Log Analytics.dataFlows
: corrisponde al flusso con l'area di lavoro di destinazione e specifica la query di trasformazione e la tabella di destinazione. Nell'esempio vengono inseriti dati nella tabella personalizzata creata in precedenza. È anche possibile inserire in una tabella di Azure supportata.transformKql
: specifica una trasformazione da applicare ai dati in ingresso (dichiarazione di flusso) prima che venga inviata all'area di lavoro. Nell'esempio viene impostatotransformKql
susource
, che non modifica i dati dall'origine in alcun modo, perché si esegue il mapping dei dati in ingresso a una tabella personalizzata creata in modo specifico con lo schema corrispondente. Se si inseriscono dati in una tabella con uno schema diverso o si filtrano i dati prima dell'inserimento, definire una trasformazione della raccolta dati.
{ "$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'))]" } ] } } ] }
Nella schermata Distribuzione personalizzata, specificare una sottoscrizione e un gruppo di risorse per archiviare la regola di raccolta dati e quindi specificare i valori per i parametri definiti nel modello, tra cui:
- Area: area per la regola di raccolta dati. Popolato automaticamente in base al gruppo di risorse selezionato.
- Nome regola raccolta dati: assegnare alla regola un nome.
- ID risorsa dell'area di lavoro: vedere Raccogliere le informazioni necessarie.
- ID risorsa endpoint: generato quando si crea l'endpoint di raccolta dati.
- Nome tabella: nome della tabella di destinazione. In questo esempio e ogni volta che si usa una tabella personalizzata, il nome della tabella deve terminare con il suffisso _CL. Se si inseriscono dati in una tabella di Azure, immettere il nome della tabella, ad esempio
Syslog
, senza il suffisso. - Gruppo di consumer: per impostazione predefinita, il gruppo di consumer è impostato su
$Default
. Se necessario, modificare il valore in un gruppo di consumer dell'hub eventi diverso.
Selezionare Rivedi e crea e quindi Crea al momento di rivedere i dettagli.
Al termine della distribuzione, espandere la casella Dettagli distribuzione e selezionare la regola di raccolta dati per visualizzarne i dettagli. Selezionare Visualizzazione JSON.
Copiare l'ID risorsa per la regola di raccolta dati. Queste informazioni verranno usate nel passaggio successivo.
Configurare l'identità gestita assegnata dall'utente (facoltativo)
Per configurare la regola di raccolta dati per supportare l'identità assegnata dall'utente, nell'esempio precedente sostituire:
"identity": {
"type": "systemAssigned"
},
con:
"identity": {
"type": "userAssigned",
"userAssignedIdentities": {
"<identity_resource_Id>": {
}
}
},
Per trovare il valore <identity_resource_Id>
, passare alla risorsa identità gestita assegnata dall'utente nel portale di Azure, selezionare JSON per aprire la schermata JSON della risorsa e copiare l'ID risorsa dell'identità gestita.
Inserire dati di log in una tabella di Azure (facoltativo)
Per inserire i dati in una tabella di Azure supportata:
Nella regola di raccolta dati, modificare
outputStream
:Da:
"outputStream": "[concat('Custom-', parameters('tableName'))]"
A:
"outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"
In
transformKql
, definire una trasformazione che invia i dati inseriti nelle colonne di destinazione nella tabella di Azure di destinazione.
Concedere all'hub eventi l'autorizzazione per la regola di raccolta dati
Con l'identità gestita, è possibile concedere a qualsiasi hub eventi o spazio dei nomi di Hub eventi l'autorizzazione per inviare eventi alla regola di raccolta dati e all'endpoint di raccolta dati creato. Quando si concedono le autorizzazioni allo spazio dei nomi di Hub eventi, tutti gli hub eventi all'interno dello spazio dei nomi ereditano le autorizzazioni.
Dall'hub eventi o dallo spazio dei nomi di Hub eventi nel portale di Azure selezionare Controllo di accesso (IAM)>Aggiungi assegnazione di ruolo.
Selezionare Ricevitore dati di Hub eventi di Azure e selezionare Avanti.
Selezionare Identità gestita per Assegna l'accesso a e fare clic su Seleziona membri. Selezionare Regola di raccolta dati, cercare la regola di raccolta dati in base al nome e fare clic su Seleziona.
Selezionare Rivedi e assegna e verificare i dettagli prima di salvare l'assegnazione di ruolo.
Associare la regola di raccolta dati all'hub eventi
Il passaggio finale consiste nell'associare la regola di raccolta dati all'hub eventi da cui si desidera raccogliere gli eventi.
È possibile associare una singola regola di raccolta dati a più hub eventi che condividono lo stesso gruppo di consumer e inseriscono i dati nello stesso flusso. In alternativa, è possibile associare una regola di raccolta dati univoca a ogni hub eventi.
Importante
È necessario associare almeno una regola di raccolta dati all'hub eventi per inserire dati da un hub eventi. Quando si eliminano tutte le associazioni di regole di raccolta dati correlate all'hub eventi, si interromperà l'inserimento di dati dall'hub eventi.
Per creare un'associazione di regole di raccolta dati nel portale di Azure:
Nella casella di ricerca del portale di Azure, digitare modello e quindi selezionare Distribuisci un modello personalizzato.
Selezionare Creare un modello personalizzato nell'editor.
Incollare il modello di Resource Manager seguente nell'editor e quindi selezionare Salva.
{ "$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')]" } } ] }
Nella schermata Distribuzione personalizzata, specificare una sottoscrizione e un gruppo di risorse per archiviare l'associazione della regola di raccolta dati e quindi specificare i valori per i parametri definiti nel modello, tra cui:
- Area: popolata automaticamente in base al gruppo di risorse selezionato.
- ID risorsa dell'istanza dell'hub eventi: vedere Raccogliere le informazioni necessarie.
- Nome associazione: assegnare un nome all'associazione.
- ID regola raccolta dati: generato quando si crea la regola di raccolta dati.
Selezionare Rivedi e crea e quindi Crea al momento di rivedere i dettagli.
Controllare la tabella di destinazione per gli eventi inseriti
I log di Monitoraggio di Azure inseriscono tutti gli eventi presenti nell'hub eventi al momento della creazione della DCRA, purché il periodo di conservazione non sia scaduto e tutti i nuovi eventi.
Per controllare la presenza di eventi inseriti nella tabella di destinazione:
Passare all'area di lavoro e selezionare Log.
Scrivere una query semplice nell'editor di query e selezionare Esegui:
<table_name>
Dovrebbero essere visualizzati eventi dall'hub eventi.
Pulire le risorse
In questa esercitazione sono state create le risorse seguenti:
- Tabella personalizzata
- Endpoint di raccolta dati
- Regola di raccolta dei dati
- Associazione alla regola di raccolta dati
Valutare se queste risorse sono ancora necessarie. Eliminare le risorse che non sono necessarie singolarmente o eliminare tutte queste risorse contemporaneamente eliminando il gruppo di risorse. L'esecuzione continua delle risorse può avere un costo.
Per interrompere l'inserimento di dati dall'hub eventi, eliminare tutte le associazioni di regole di raccolta dati correlate all'hub eventi o eliminare le regole di raccolta dati stesse. Queste azioni reimpostano anche il checkpoint dell'hub eventi.
Problemi noti e limitazioni
- Se si trasferisce una sottoscrizione tra le directory di Microsoft Entra, è necessario seguire i passaggi descritti in Problemi noti relativi alle identità gestite per le risorse di Azure per continuare l'inserimento dei dati.
- È possibile inserire messaggi di un massimo di 64 kB da Hub eventi ai log di Monitoraggio di Azure.
Passaggi successivi
Altre informazioni su: