Självstudie: Skicka data till Azure Monitor med hjälp av API för logginmatning (Resource Manager-mallar)
Med API för logginmatning i Azure Monitor kan du skicka anpassade data till en Log Analytics-arbetsyta. Den här självstudien använder Azure Resource Manager-mallar (ARM-mallar) för att gå igenom konfigurationen av de komponenter som krävs för att stödja API:et och tillhandahåller sedan ett exempelprogram med både REST API och klientbibliotek för .NET, Go, Java, JavaScript och Python.
Kommentar
I den här självstudien används ARM-mallar för att konfigurera de komponenter som krävs för att stödja API:et för logginmatning. Se Självstudie: Skicka data till Azure Monitor-loggar med Logs ingestion API (Azure Portal) för en liknande självstudiekurs som använder Azure Portal-användargränssnittet för att konfigurera dessa komponenter.
Stegen som krävs för att konfigurera API:et för logginmatning är följande:
- Skapa ett Microsoft Entra-program för att autentisera mot API:et.
- Skapa en anpassad tabell på en Log Analytics-arbetsyta. Det här är tabellen som du ska skicka data till.
- Skapa en datainsamlingsregel (DCR) för att dirigera data till måltabellen.
- Ge Microsoft Entra-programmet åtkomst till DCR.
- Se Exempelkod för att skicka data till Azure Monitor med hjälp av LOGS-inmatnings-API för exempelkod för att skicka data till med hjälp av API:et för logginmatning.
Kommentar
Den här artikeln innehåller alternativ för att använda en DCR-inmatningsslutpunkt eller en datainsamlingsslutpunkt (DCE). Du kan välja att använda någon av dem, men en DCE krävs med LOGS-inmatnings-API om privat länk används. Se När krävs en DCE?.
Förutsättningar
För att slutföra självstudierna behöver du:
- En Log Analytics-arbetsyta där du har minst deltagarbehörighet.
- Behörigheter för att skapa DCR-objekt på arbetsytan.
Samla in information om arbetsytan
Börja med att samla in information som du behöver från din arbetsyta.
Gå till din arbetsyta på Log Analytics-arbetsytor-menyn i Azure Portal. På sidan Egenskaper kopierar du resurs-ID :t och sparar det för senare användning.
Skapa Microsoft Entra-program
Börja med att registrera ett Microsoft Entra-program för att autentisera mot API:et. Alla Resource Manager-autentiseringsscheman stöds, men den här självstudien följer schemat För beviljande av klientautentiseringsuppgifter.
På Microsoft Entra-ID-menyn i Azure Portal väljer du Appregistreringar> Ny registrering.
Ge programmet ett namn och ändra innehavaromfånget om standardvärdet inte är lämpligt för din miljö. En omdirigerings-URI krävs inte.
Efter registreringen kan du visa information om programmet. Observera program-ID:t (klient)-ID:t och katalog-ID:t (klientorganisation). Du behöver dessa värden senare i processen.
Generera en programklienthemlighet som liknar att skapa ett lösenord som ska användas med ett användarnamn. Välj Certifikat och hemligheter>Ny klienthemlighet. Ge hemligheten ett namn för att identifiera dess syfte och välj varaktigheten Upphör att gälla . Alternativet 12 månader väljs här. För en produktionsimplementering följer du metodtipsen för en hemlig rotationsprocedur eller använder ett säkrare autentiseringsläge, till exempel ett certifikat.
Välj Lägg till för att spara hemligheten och notera sedan Värdet. Se till att du registrerar det här värdet eftersom du inte kan återställa det när du har lämnat den här sidan. Använd samma säkerhetsåtgärder som för att skydda ett lösenord eftersom det är den funktionella motsvarigheten.
Skapa slutpunkt för datainsamling
En DCE krävs inte om du använder DCR-inmatningsslutpunkten.
Skapa ny tabell på Log Analytics-arbetsytan
Den anpassade tabellen måste skapas innan du kan skicka data till den. Tabellen för den här självstudien innehåller fem kolumner som visas i schemat nedan. Egenskaperna name
, type
och description
är obligatoriska för varje kolumn. Egenskaperna isHidden
och isDefaultDisplay
båda standardvärdena är false
om de inte uttryckligen anges. Möjliga datatyper är string
, int
, long
, real
, boolean
, dateTime
, guid
och dynamic
.
Kommentar
I den här självstudien används PowerShell från Azure Cloud Shell för att göra REST API-anrop med hjälp av API:et För Azure Monitor-tabeller. Du kan använda valfri annan giltig metod för att göra dessa anrop.
Viktigt!
Anpassade tabeller måste använda suffixet _CL
.
Välj Cloud Shell-knappen i Azure Portal och se till att miljön är inställd på PowerShell.
Kopiera följande PowerShell-kod och ersätt variablerna i parametern Path med lämpliga värden för din arbetsyta i
Invoke-AzRestMethod
kommandot . Klistra in den i Cloud Shell-prompten för att köra den.$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
Skapa datainsamlingsregel
DCR definierar hur data ska hanteras när de tas emot. Detta omfattar:
- Schema för data som skickas till slutpunkten
- Transformering som ska tillämpas på data innan den skickas till arbetsytan
- Målarbetsyta och tabell som transformerade data skickas till
I sökrutan Azure Portal anger du mallen och väljer sedan Distribuera en anpassad mall.
Välj alternativet för att skapa din egen mall i redigeringsprogrammet.
Klistra in följande ARM-mall i redigeraren och välj sedan Spara.
Observera följande information i DCR som definierats i den här mallen:
streamDeclarations
: Kolumndefinitioner för inkommande data.destinations
: Målarbetsyta.dataFlows
: Matchar strömmen med målarbetsytan och anger transformeringsfrågan och måltabellen. Utdata från målfrågan är vad som ska skickas till måltabellen.
{ "$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'))]" } } }
På skärmen Anpassad distribution anger du en prenumerations- och resursgrupp för att lagra DCR. Ange sedan värden som definierats i mallen. Värdena innehåller ett namn för DCR och arbetsytans resurs-ID som du samlade in i ett tidigare steg. Platsen ska vara samma plats som arbetsytan. Regionen kommer redan att fyllas i och kommer att användas för platsen för DCR.
Välj Granska + skapa och välj sedan Skapa när du har granskat informationen.
När distributionen är klar expanderar du rutan Distributionsinformation och väljer din DCR för att visa dess information. Välj JSON-vy.
Kopiera inmatnings-URI:n oföränderligt ID och loggar för DCR. Du använder dessa när du skickar data till Azure Monitor med hjälp av API:et.
Tilldela behörigheter till en DCR
När DCR har skapats måste programmet ges behörighet till det. Behörighet gör att alla program som använder rätt program-ID och programnyckel kan skicka data till den nya domänkontrollanten.
Från DCR i Azure Portal väljer du Åtkomstkontroll (IAM)>Lägg till rolltilldelning.
Välj Monitoring Metrics Publisher (Övervaka måttutgivare ) och välj Nästa. Du kan i stället skapa en anpassad åtgärd med dataåtgärden
Microsoft.Insights/Telemetry/Write
.Välj Användare, grupp eller tjänstens huvudnamn för Tilldela åtkomst till och välj Välj medlemmar. Välj det program som du skapade och välj Välj.
Välj Granska + tilldela och verifiera informationen innan du sparar rolltilldelningen.
Exempelkod
Se Exempelkod för att skicka data till Azure Monitor med hjälp av LOGGinmatnings-API för exempelkod med hjälp av komponenterna som skapades i den här självstudien.