Condividi tramite


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:

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

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 che mostra la schermata di panoramica dell'area di lavoro Log Analytics con l'ID sottoscrizione, il nome del gruppo di risorse e il nome dell'area di lavoro evidenziati.

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

    Screenshot che mostra la schermata Risorsa JSON con l'ID risorsa dell'area di lavoro evidenziato.

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

    Screenshot che mostra la schermata Risorsa JSON con l'ID risorsa dell'hub eventi evidenziato.

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:

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

    Screenshot che mostra come aprire 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 valori <subscription_id>, <resource_group_name>, <workspace_name> e <table_name> nel comando Invoke-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 e Title 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:

  1. Creare un endpoint di raccolta dati.

    Importante

    Creare l'endopoint 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 che mostra la schermata Panoramica dell'endpoint di raccolta dati.

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

    Screenshot che mostra la visualizzazione JSON dell'endpoint della raccolta dati.

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 modello e quindi selezionare Distribuisci un modello personalizzato.

    Screenshot per distribuire un modello personalizzato.

  2. Selezionare Creare un modello personalizzato nell'editor.

    Screenshot per compilare il modello nell'editor.

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

    Screenshot per modificare il modello di Resource Manager.

    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 transformKql su source, 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 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.

    Screenshot che mostra la schermata Distribuzione modello personalizzata con i valori di distribuzione per la regola di raccolta dati configurata in questa esercitazione.

  5. Selezionare Rivedi e crea e quindi Crea al momento di rivedere 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 che mostra la schermata Panoramica delle regole di raccolta dati.

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

    Screenshot che mostra la visualizzazione JSON della regola di raccolta dati.

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.

Screenshot che mostra la schermata RESOURCE JSON con l'ID risorsa identità gestita evidenziato.

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

  1. Dall'hub eventi o dallo spazio dei nomi di Hub eventi nel portale di Azure selezionare Controllo di accesso (IAM)>Aggiungi assegnazione di ruolo.

    Screenshot che mostra la schermata Controllo di accesso per la regola di raccolta dati.

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

    Screenshot che mostra la schermata Aggiungi assegnazione di ruolo per l'hub eventi con il ruolo Ricevitore dati di Hub eventi di Azure evidenziato.

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

    Screenshot che mostra come assegnare l'accesso all'identità gestita.

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

    Screenshot che mostra la scheda Rivedi e assegna della schermata Aggiungi 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:

  1. Nella casella di ricerca del portale di Azure, digitare 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:

    Screenshot che mostra la schermata Distribuzione modello personalizzata con i valori di distribuzione per l'associazione di regole di raccolta dati configurata in questa esercitazione.

  5. Selezionare Rivedi e crea e quindi Crea al momento di rivedere 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 che mostra i risultati di una query semplice in una tabella personalizzata. I risultati sono costituiti da eventi inseriti da un 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

Passaggi successivi

Altre informazioni su: