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:
- Maak een Microsoft Entra-toepassing om te verifiëren bij de API.
- Maak een aangepaste tabel in een Log Analytics-werkruimte. Dit is de tabel waarnaar u gegevens verzendt.
- Maak een regel voor gegevensverzameling (DCR) om de gegevens naar de doeltabel te leiden.
- Geef de Microsoft Entra-toepassing toegang tot de DCR.
- 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
Dit artikel bevat opties voor het gebruik van een DCR-opname-eindpunt of een eindpunt voor gegevensverzameling (DCE). U kunt ervoor kiezen om een van beide gebruikers te gebruiken, maar een DCE is vereist met de API voor logboekopname als private link wordt gebruikt. Zie wanneer is een DCE vereist?.
Vereisten
U hebt het volgende nodig om deze zelfstudie te voltooien:
- Een Log Analytics-werkruimte met ten minste inzenderrechten.
- Machtigingen voor het maken van DCR-objecten in de werkruimte.
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.
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.
Selecteer in het menu Microsoft Entra ID in Azure Portal App-registraties> Nieuwe registratie.
Geef de toepassing een naam en wijzig het tenantbereik als de standaardwaarde niet geschikt is voor uw omgeving. Een omleidings-URI is niet vereist.
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.
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.
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.
Eindpunt voor gegevensverzameling maken
Een DCE is niet vereist als u het DCR-opname-eindpunt gebruikt.
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
, type
en 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
.
Selecteer de knop Cloud Shell in Azure Portal en zorg ervoor dat de omgeving is ingesteld op PowerShell.
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
Voer in het zoekvak van Azure Portal een sjabloon in en selecteer vervolgens Een aangepaste sjabloon implementeren.
Selecteer Bouw uw eigen sjabloon in de editor.
Plak de volgende ARM-sjabloon in de editor en selecteer Opslaan.
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-08-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." } } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRules", "name": "[parameters('dataCollectionRuleName')]", "location": "[parameters('location')]", "apiVersion": "2023-03-11", "kind": "Direct", "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'))]" } } }
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.
Selecteer Beoordelen en maken en selecteer Vervolgens Maken nadat u de details hebt bekeken.
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.
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.
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.
Selecteer in de DCR in Azure Portal toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Selecteer Monitoring Metrics Publisher en selecteer Volgende. U kunt in plaats daarvan een aangepaste actie maken met de
Microsoft.Insights/Telemetry/Write
gegevensactie.Selecteer Gebruiker, groep of service-principal voor Toegang toewijzen aan en kies Leden selecteren. Selecteer de toepassing die u hebt gemaakt en kies Selecteren.
Selecteer Beoordelen en toewijzen en de details controleren voordat u uw roltoewijzing opslaat.
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.