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, tutte nella stessa area:

Aree geografiche supportate

Monitoraggio di Azure supporta attualmente l'inserimento da Hub eventi in queste aree:

America 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

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:

  1. 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.

    Screenshot showing Log Analytics workspace overview screen with subscription ID, resource group name, and workspace name highlighted.

  2. Selezionare JSON per aprire la schermata JSON della risorsa e copiare l'ID risorsa dell'area di lavoro. Per creare una regola di raccolta dati, è necessario l'ID risorsa dell'area di lavoro.

    Screenshot showing the Resource JSON screen with the workspace resource ID highlighted.

  3. Passare all'istanza dell'hub eventi, selezionare JSON per aprire la schermata JSON della risorsa 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.

    Screenshot showing the Resource JSON screen with the event hub resource ID highlighted.

Creare 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, nella portale di Azure:

  1. Selezionare il pulsante Cloud Shell e assicurarsi che l'ambiente sia impostato su PowerShell.

    Screenshot showing how to open Cloud Shell.

  2. 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 <subscription_id>valori , <resource_group_name>, <workspace_name>e <table_name> nel Invoke-AzRestMethod -Path comando:

    $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, , _SubscriptionIdTenantIdType, , , UniqueId, e Title sono nomi di colonna riservati. _ResourceId
  • 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:

  1. Creare un endpoint di raccolta dati.

    Importante

    Creare l'endpoint di raccolta dati nella stessa area dell'area di lavoro Log Analytics.

  2. Nella schermata Panoramica dell'endpoint di raccolta dati selezionare Visualizzazione JSON.

    Screenshot that shows the data collection endpoint Overview screen.

  3. Copiare l'ID risorsa per la regola di raccolta dati. Queste informazioni verranno usate nel passaggio successivo.

    Screenshot that shows the data collection endpoint JSON view.

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:

  1. Nella casella di ricerca del portale digitare il modello e quindi selezionare Distribuisci un modello personalizzato.

    Screenshot to deploy custom template.

  2. Selezionare Creare un modello personalizzato nell'editor.

    Screenshot to build template in the editor.

  3. Incollare il modello di Resource Manager seguente nell'editor e quindi selezionare Salva.

    Screenshot to edit Resource Manager template.

    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 impostato su transformKqlsource, 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'))]"
                        }
                    ]
                }
            }
        ]
    }
    
  4. 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 senza Syslog 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.

    Screenshot showing the Custom Template Deployment screen with the deployment values for the data collection rule set up in this tutorial.

  5. Selezionare Rivedi e crea e quindi Crea quando si esaminano i dettagli.

  6. Al termine della distribuzione, espandere la casella Dettagli distribuzione e selezionare la regola di raccolta dati per visualizzarne i dettagli. Selezionare Visualizzazione JSON.

    Screenshot that shows the Data Collection Rule Overview screen.

  7. Copiare l'ID risorsa per la regola di raccolta dati. Queste informazioni verranno usate nel passaggio successivo.

    Screenshot that shows the data collection rule JSON view.

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 <identity_resource_Id> valore, passare alla risorsa identità gestita assegnata dall'utente nella portale di Azure, selezionare JSON per aprire la schermata JSON della risorsa e copiare l'ID risorsa dell'identità gestita.

Screenshot showing Resource JSON screen with the managed identity resource ID highlighted.

Inserire dati di log in una tabella di Azure (facoltativo)

Per inserire i dati in una tabella di Azure supportata:

  1. Nella regola di raccolta dati modificare outputStream:

    Da: "outputStream": "[concat('Custom-', parameters('tableName'))]"

    A: "outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"

  2. In transformKqldefinire 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.

  1. Nell'hub eventi o nello spazio dei nomi di Hub eventi nella portale di Azure selezionare Controllo di accesso (IAM)>Aggiungi assegnazione di ruolo.

    Screenshot that shows the Access control screen for the data collection rule.

  2. Selezionare Hub eventi di Azure Ricevitore dati e selezionare Avanti.

    Screenshot that shows the Add Role Assignment screen for the event hub with the Azure Event Hubs Data Receiver role highlighted.

  3. Selezionare Identità gestita per Assegnare 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.

    Screenshot that shows how to assign access to managed identity.

  4. Selezionare Rivedi e assegna e verificare i dettagli prima di salvare l'assegnazione di ruolo.

    Screenshot that shows the Review and Assign tab of the Add Role Assignment screen.

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:

  1. Nella casella di ricerca del portale di Azure digitare il modello e quindi selezionare Distribuisci un modello personalizzato.

  2. Selezionare Creare un modello personalizzato nell'editor.

  3. 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')]"
          }
        }
      ]
    }
    
  4. 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.

    Screenshot showing the Custom Template Deployment screen with the deployment values for the data collection rule association set up in this tutorial.

  5. Selezionare Rivedi e crea e quindi Crea quando si esaminano i dettagli.

Controllare la tabella di destinazione per gli eventi inseriti

Dopo aver associato la regola di raccolta dati all'hub eventi, i log di Monitoraggio di Azure inseriscono tutti gli eventi esistenti il cui periodo di conservazione non è scaduto e tutti i nuovi eventi.

Per controllare la presenza di eventi inseriti nella tabella di destinazione:

  1. Passare all'area di lavoro e selezionare Log.

  2. Scrivere una query semplice nell'editor di query e selezionare Esegui:

    <table_name>
    

    Dovrebbero essere visualizzati eventi dall'hub eventi.

Screenshot showing the results of a simple query on a custom table. The results consist of events ingested from an event hub.

Pulire le risorse

In questa esercitazione sono state create le risorse seguenti:

  • Tabella personalizzata
  • Endpoint di raccolta dati
  • Regola di raccolta dati
  • Associazione di regole 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. Le risorse lasciate in esecuzione possono costare denaro.

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: