Delen via


Zelfstudie: Gegevens verzenden naar Azure Monitor met behulp van logboekopname-API (Resource Manager-sjablonen)

Met de Logboekopname-API in Azure Monitor kunt u aangepaste gegevens verzenden naar een Log Analytics-werkruimte. In deze zelfstudie wordt gebruikgemaakt van Azure Resource Manager-sjablonen (ARM-sjablonen) om de configuratie te doorlopen van de onderdelen die nodig zijn voor de ondersteuning van de API en biedt vervolgens een voorbeeldtoepassing met behulp van zowel de REST API als clientbibliotheken voor .NET, Go, Java, JavaScript en Python.

Notitie

In deze zelfstudie worden ARM-sjablonen gebruikt om de vereiste onderdelen te configureren voor de ondersteuning van de LOGBOEKopname-API. Zie Zelfstudie: Gegevens verzenden naar Azure Monitor-logboeken met logboekopname-API (Azure Portal) voor een vergelijkbare zelfstudie die gebruikmaakt van de gebruikersinterface van Azure Portal om deze onderdelen te configureren.

De stappen die nodig zijn om de logboekopname-API te configureren, zijn als volgt:

  1. Maak een Microsoft Entra-toepassing om te verifiëren bij de API.
  2. Maak een aangepaste tabel in een Log Analytics-werkruimte. Dit is de tabel waarnaar u gegevens verzendt.
  3. Maak een regel voor gegevensverzameling (DCR) om de gegevens naar de doeltabel te leiden.
  4. Geef de Microsoft Entra-toepassing toegang tot de DCR.
  5. Zie Voorbeeldcode voor het verzenden van gegevens naar Azure Monitor met behulp van logboekopname-API voor voorbeeldcode voor het verzenden van gegevens naar de logboekopname-API.

Notitie

In dit artikel is eerder een stap opgenomen voor het maken van een eindpunt voor gegevensverzameling (DCE). Dit is niet meer vereist omdat DCR's nu hun eigen eindpunt bevatten. Een DCE is alleen vereist met logboekopname-API als private link wordt gebruikt.

Vereisten

U hebt het volgende nodig om deze zelfstudie te voltooien:

Werkruimtegegevens verzamelen

Begin met het verzamelen van informatie die u nodig hebt vanuit uw werkruimte.

Ga naar uw werkruimte in het menu Log Analytics-werkruimten in Azure Portal. Kopieer op de pagina Eigenschappen de resource-id en sla deze op voor later gebruik.

Schermopname van de resource-id van de werkruimte.

Microsoft Entra-toepassing maken

Begin met het registreren van een Microsoft Entra-toepassing om te verifiëren bij de API. Elk Resource Manager-verificatieschema wordt ondersteund, maar in deze zelfstudie wordt het schema clientreferentiestroom gevolgd.

  1. Selecteer in het menu Microsoft Entra ID in Azure Portal App-registraties> Nieuwe registratie.

    Schermopname van het scherm voor app-registratie.

  2. Geef de toepassing een naam en wijzig het tenantbereik als de standaardwaarde niet geschikt is voor uw omgeving. Een omleidings-URI is niet vereist.

    Schermopname van app-details.

  3. Na de registratie kunt u de details van de toepassing bekijken. Noteer de toepassings-id (client) en de map-id (tenant). U hebt deze waarden later in het proces nodig.

    Schermopname van de app-id.

  4. Genereer een clientgeheim van een toepassing. Dit is vergelijkbaar met het maken van een wachtwoord voor gebruik met een gebruikersnaam. Selecteer Certificaten en geheimen>Nieuw clientgeheim. Geef het geheim een naam om het doel ervan te identificeren en selecteer de duur verloopt . De optie 12 maanden is hier geselecteerd. Voor een productie-implementatie volgt u de aanbevolen procedures voor een procedure voor het rouleren van geheimen of gebruikt u een veiligere verificatiemodus, zoals een certificaat.

    Schermopname van het geheim voor de nieuwe app.

  5. Selecteer Toevoegen om het geheim op te slaan en noteer de waarde. Zorg ervoor dat u deze waarde opneemt omdat u deze niet kunt herstellen nadat u deze pagina hebt verlaten. Gebruik dezelfde beveiligingsmaatregelen als voor het bewaren van een wachtwoord, omdat dit het functionele equivalent is.

    Schermopname van de geheime waarde voor de nieuwe app.

Nieuwe tabel maken in Log Analytics-werkruimte

De aangepaste tabel moet worden gemaakt voordat u er gegevens naar kunt verzenden. De tabel voor deze zelfstudie bevat vijf kolommen die worden weergegeven in het onderstaande schema. De name, typeen description eigenschappen zijn verplicht voor elke kolom. De eigenschappen isHidden en isDefaultDisplay beide false worden standaard ingesteld als deze niet expliciet zijn opgegeven. Mogelijke gegevenstypen zijnstring, , int, long, real, boolean, dateTime, , en guid.dynamic

Notitie

In deze zelfstudie wordt PowerShell van Azure Cloud Shell gebruikt om REST API-aanroepen te maken met behulp van de Azure Monitor Tables-API . U kunt elke andere geldige methode gebruiken om deze aanroepen uit te voeren.

Belangrijk

Aangepaste tabellen moeten een achtervoegsel van _CL.

  1. Selecteer de knop Cloud Shell in Azure Portal en zorg ervoor dat de omgeving is ingesteld op PowerShell.

    Schermopname van het openen van Cloud Shell.

  2. Kopieer de volgende PowerShell-code en vervang de variabelen in de parameter Path door de juiste waarden voor uw werkruimte in de Invoke-AzRestMethod opdracht. Plak deze in de Cloud Shell-prompt om deze uit te voeren.

    $tableParams = @'
    {
        "properties": {
            "schema": {
                "name": "MyTable_CL",
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime",
                        "description": "The time at which the data was generated"
                    },
                   {
                        "name": "Computer",
                        "type": "string",
                        "description": "The computer that generated the data"
                    },
                    {
                        "name": "AdditionalContext",
                        "type": "dynamic",
                        "description": "Additional message properties"
                    },
                    {
                        "name": "CounterName",
                        "type": "string",
                        "description": "Name of the counter"
                    },
                    {
                        "name": "CounterValue",
                        "type": "real",
                        "description": "Value collected for the counter"
                    }
                ]
            }
        }
    }
    '@
    
    Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/MyTable_CL?api-version=2022-10-01" -Method PUT -payload $tableParams
    

Regel voor gegevensverzameling maken

De DCR definieert hoe de gegevens worden verwerkt zodra deze zijn ontvangen. Dit zijn onder andere de nieuwe mogelijkheden:

  • Schema van gegevens die naar het eindpunt worden verzonden
  • Transformatie die wordt toegepast op de gegevens voordat deze naar de werkruimte worden verzonden
  • Doelwerkruimte en tabel waarnaar de getransformeerde gegevens worden verzonden
  1. Voer in het zoekvak van Azure Portal een sjabloon in en selecteer vervolgens Een aangepaste sjabloon implementeren.

    Schermopname van het implementeren van een aangepaste sjabloon.

  2. Selecteer Bouw uw eigen sjabloon in de editor.

    Schermopname van het bouwen van een sjabloon in de editor.

  3. Plak de volgende ARM-sjabloon in de editor en selecteer Opslaan.

    Schermopname van het bewerken van een ARM-sjabloon.

    Let op de volgende details in de DCR die in deze sjabloon is gedefinieerd:

    • streamDeclarations: Kolomdefinities van de binnenkomende gegevens.
    • destinations: doelwerkruimte.
    • dataFlows: komt overeen met de stream met de doelwerkruimte en geeft de transformatiequery en de doeltabel op. De uitvoer van de doelquery is wat naar de doeltabel wordt verzonden.
    {
        "$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."
                }
            },
            "location": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the location in which to create the Data Collection Rule."
                }
            },
            "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."
                }
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionRules",
                "name": "[parameters('dataCollectionRuleName')]",
                "location": "[parameters('location')]",
                "apiVersion": "2021-09-01-preview",
                "properties": {
                    "streamDeclarations": {
                        "Custom-MyTableRawData": {
                            "columns": [
                                {
                                    "name": "Time",
                                    "type": "datetime"
                                },
                                {
                                    "name": "Computer",
                                    "type": "string"
                                },
                                {
                                    "name": "AdditionalContext",
                                    "type": "string"
                                },
                                {
                                    "name": "CounterName",
                                    "type": "string"
                                },
                                {
                                    "name": "CounterValue",
                                    "type": "real"
                                }
                            ]
                        }
                    },
                    "destinations": {
                        "logAnalytics": [
                            {
                                "workspaceResourceId": "[parameters('workspaceResourceId')]",
                                "name": "myworkspace"
                            }
                        ]
                    },
                    "dataFlows": [
                        {
                            "streams": [
                                "Custom-MyTableRawData"
                            ],
                            "destinations": [
                                "myworkspace"
                            ],
                            "transformKql": "source | extend jsonContext = parse_json(AdditionalContext) | project TimeGenerated = Time, Computer, AdditionalContext = jsonContext, CounterName=tostring(jsonContext.CounterName), CounterValue=toreal(jsonContext.CounterValue)",
                            "outputStream": "Custom-MyTable_CL"
                        }
                    ]
                }
            }
        ],
        "outputs": {
            "dataCollectionRuleId": {
                "type": "string",
                "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
            }
        }
    }
    
  4. Geef in het scherm Aangepaste implementatie een abonnement en resourcegroep op om de DCR op te slaan. Geef vervolgens waarden op die zijn gedefinieerd in de sjabloon. De waarden bevatten een naam voor de DCR en de resource-id van de werkruimte die u in een vorige stap hebt verzameld. De locatie moet dezelfde locatie zijn als de werkruimte. De regio wordt al ingevuld en wordt gebruikt voor de locatie van de DCR.

    Schermopname van het bewerken van aangepaste implementatiewaarden.

  5. Selecteer Beoordelen en maken en selecteer Vervolgens Maken nadat u de details hebt bekeken.

  6. Wanneer de implementatie is voltooid, vouwt u het vak Implementatiedetails uit en selecteert u uw DCR om de details ervan weer te geven. Selecteer de JSON-weergave.

    Schermopname van DCR-details.

  7. Kopieer de onveranderbare id en logboekopname-URI voor de DCR. U gebruikt deze wanneer u gegevens naar Azure Monitor verzendt met behulp van de API.

    Schermopname van de DCR JSON-weergave.

Machtigingen toewijzen aan een DCR

Nadat de DCR is gemaakt, moet de toepassing hiervoor toestemming krijgen. Met de machtiging kunnen alle toepassingen met de juiste toepassings-id en toepassingssleutel gegevens verzenden naar de nieuwe DCR.

  1. Selecteer in de DCR in Azure Portal toegangsbeheer (IAM)>Roltoewijzing toevoegen.

    Schermopname van het toevoegen van een aangepaste roltoewijzing aan DCR.

  2. Selecteer Monitoring Metrics Publisher en selecteer Volgende. U kunt in plaats daarvan een aangepaste actie maken met de Microsoft.Insights/Telemetry/Write gegevensactie.

    Schermopname van het selecteren van een rol voor DCR-roltoewijzing.

  3. Selecteer Gebruiker, groep of service-principal voor Toegang toewijzen aan en kies Leden selecteren. Selecteer de toepassing die u hebt gemaakt en kies Selecteren.

    Schermopname van het selecteren van leden voor de DCR-roltoewijzing.

  4. Selecteer Beoordelen en toewijzen en de details controleren voordat u uw roltoewijzing opslaat.

    Schermopname van het opslaan van de DCR-roltoewijzing.

Voorbeeldcode

Zie Voorbeeldcode voor het verzenden van gegevens naar Azure Monitor met behulp van logboekopname-API voor voorbeeldcode met behulp van de onderdelen die in deze zelfstudie zijn gemaakt.

Volgende stappen