Loggar inmatnings-API i Azure Monitor
Med API för logginmatning i Azure Monitor kan du skicka data till en Log Analytics-arbetsyta med antingen ett REST API-anrop eller klientbibliotek. Med API:et kan du skicka data till Azure-tabeller som stöds eller till anpassade tabeller som du skapar. Du kan också utöka schemat för Azure-tabeller med anpassade kolumner för att acceptera ytterligare data.
Grundläggande åtgärd
Data kan skickas till LOGS Ingestion API från alla program som kan göra ett REST API-anrop. Detta kan vara ett anpassat program som du skapar, eller så kan det vara ett program eller en agent som förstår hur du skickar data till API:et. Programmet skickar data till en datainsamlingsslutpunkt (DCE) som är en unik anslutningspunkt för din Azure-prenumeration. Den anger en datainsamlingsregel (DCR) som innehåller måltabellen och arbetsytan och autentiseringsuppgifterna för en appregistrering med åtkomst till den angivna DOMÄNKONTROLLanten.
De data som skickas av ditt program till API:et måste formateras i JSON och matcha den struktur som förväntas av DCR. Det behöver inte nödvändigtvis matcha måltabellens struktur eftersom DCR kan innehålla en transformering för att konvertera data så att de matchar tabellens struktur. Du kan ändra måltabellen och arbetsytan genom att ändra DCR utan att ändra API-anropet eller källdata.
Konfiguration
I följande tabell beskrivs varje komponent i Azure som du måste konfigurera innan du kan använda API:et För inmatning av loggar.
Kommentar
Ett PowerShell-skript som automatiserar konfigurationen av dessa komponenter finns i Exempelkod för att skicka data till Azure Monitor med hjälp av Logs-inmatnings-API.
Komponent | Funktion |
---|---|
Appregistrering och hemlighet | Programregistreringen används för att autentisera API-anropet. Den måste beviljas behörighet till dcr som beskrivs nedan. API-anropet innehåller programmets program-ID (klient- och katalog-ID) och värdet för en programhemlighet. Se Skapa ett Microsoft Entra-program och tjänstens huvudnamn som kan komma åt resurser och Skapa en ny programhemlighet. |
Datainsamlingsslutpunkt (DCE) | DCE tillhandahåller en slutpunkt som programmet ska skickas till. En enskild domänkontrollant kan ha stöd för flera domänkontrollanter, så du kan använda en befintlig domänkontrollant om du redan har en i samma region som Log Analytics-arbetsytan. Se Skapa en slutpunkt för datainsamling. |
Tabell i Log Analytics-arbetsytan | Tabellen på Log Analytics-arbetsytan måste finnas innan du kan skicka data till den. Du kan använda en av de Azure-tabeller som stöds eller skapa en anpassad tabell med någon av de tillgängliga metoderna. Om du använder Azure-portalen för att skapa tabellen skapas DCR åt dig, inklusive en transformering om det behövs. Med andra metoder måste du skapa DCR manuellt enligt beskrivningen i nästa avsnitt. Se Skapa en anpassad tabell. |
Datainsamlingsregel (DCR) | Azure Monitor använder datainsamlingsregeln (DCR) för att förstå strukturen för inkommande data och vad du ska göra med dem. Om tabellens struktur och inkommande data inte matchar kan DCR innehålla en transformering för att konvertera källdata så att de matchar måltabellen. Du kan också använda omvandlingen för att filtrera källdata och utföra andra beräkningar eller konverteringar. Om du skapar en anpassad tabell med hjälp av Azure-portalen skapas DCR och omvandlingen åt dig baserat på exempeldata som du anger. Om du använder en befintlig tabell eller skapar en anpassad tabell med en annan metod måste du manuellt skapa DCR med hjälp av information i följande avsnitt. När domänkontrollanten har skapats måste du bevilja åtkomst till den för det program som du skapade i det första steget. På menyn Övervaka i Azure-portalen väljer du Regler för datainsamling och sedan den DCR som du skapade. Välj Åtkomstkontroll (IAM) för DCR och välj sedan Lägg till rolltilldelning för att lägga till utgivarrollen Övervakningsmått. |
Skapa DCR manuellt
Om du skickar data till en tabell som redan finns måste du skapa DCR manuellt. Börja med DCR-exempel för API för logginmatning och ändra följande parametrar i mallen. Använd sedan någon av metoderna som beskrivs i Skapa och redigera regler för datainsamling (DCR) i Azure Monitor för att skapa DCR.
Parameter | Description |
---|---|
region |
Region för att skapa din DCR. Detta måste matcha regionen för DCE och Log Analytics-arbetsytan. |
dataCollectionEndpointId |
Resurs-ID för din DCE. |
streamDeclarations |
Ändra kolumnlistan till kolumnerna i dina inkommande data. Du behöver inte ändra namnet på strömmen eftersom det bara behöver matcha streams namnet i dataFlows . |
workspaceResourceId |
Resurs-ID för din Log Analytics-arbetsyta. Du behöver inte ändra namnet eftersom det bara behöver matcha destinations namnet i dataFlows . |
transformKql |
KQL-fråga som ska tillämpas på inkommande data. Om schemat för inkommande data matchar schemat för tabellen kan du använda source för omvandlingen som skickar inkommande data oförändrade. Annars använder du en fråga som transformerar data för att matcha tabellschemat. |
outputStream |
Namnet på tabellen som ska skicka data. Lägg till prefixet Custom-table-name<> för en anpassad tabell. För en inbyggd tabell lägger du till prefixet Microsoft-table-name><. |
Klientbibliotek
Förutom att göra ett REST API-anrop kan du använda följande klientbibliotek för att skicka data till API:et för logginmatning. Biblioteken kräver samma komponenter som beskrivs i Konfiguration. Exempel på hur du använder vart och ett av dessa bibliotek finns i Exempelkod för att skicka data till Azure Monitor med hjälp av API för logginmatning.
REST API-anrop
Om du vill skicka data till Azure Monitor med ett REST API-anrop gör du ett POST-anrop via HTTP. Information som krävs för det här anropet beskrivs i det här avsnittet.
Slutpunkts-URI
Slutpunkts-URI:n använder följande format, där Data Collection Endpoint
och DCR Immutable ID
identifierar DCE och DCR. Det oföränderliga ID:t genereras för DCR när det skapas. Du kan hämta den från JSON-vyn för DCR i Azure-portalen. Stream Name
refererar till strömmen i DCR som ska hantera anpassade data.
{Data Collection Endpoint URI}/dataCollectionRules/{DCR Immutable ID}/streams/{Stream Name}?api-version=2023-01-01
Till exempel:
https://my-dce-5kyl.eastus-1.ingest.monitor.azure.com/dataCollectionRules/dcr-000a00a000a00000a000000aa000a0aa/streams/Custom-MyTable?api-version=2023-01-01
Sidhuvuden
I följande tabell beskrivs rubrikerna för DITT API-anrop.
Header | Obligatoriskt? | beskrivning |
---|---|---|
Auktorisering | Ja | Ägartoken som hämtas via flödet för klientautentiseringsuppgifter. Använd tokenmålgruppens värde för ditt moln: Offentligt Azure-moln – https://monitor.azure.com Microsoft Azure drivs av 21Vianet-molnet – https://monitor.azure.cn Azure US Government-moln – https://monitor.azure.us |
Innehållstyp | Ja | application/json |
Content-Encoding | Nej | gzip |
x-ms-client-request-id | Nej | Strängformaterat GUID. Det här är ett begärande-ID som kan användas av Microsoft i alla felsökningssyften. |
Brödtext
Anropets brödtext innehåller anpassade data som ska skickas till Azure Monitor. Dataformen måste vara en JSON-matris med objektstruktur som matchar det format som förväntas av dataströmmen i DCR. Om det behövs för att skicka ett enskilt objekt i API-anropet ska data skickas som en matris med ett objekt.
Till exempel:
[
{
"TimeGenerated": "2023-11-14 15:10:02",
"Column01": "Value01",
"Column02": "Value02"
}
]
Se till att begärandetexten är korrekt kodad i UTF-8 för att förhindra problem med dataöverföring.
Exempel
Se Exempelkod för att skicka data till Azure Monitor med logginmatnings-API för ett exempel på API-anropet med Hjälp av PowerShell.
Tabeller som stöds
Data som skickas till inmatnings-API:et kan skickas till följande tabeller:
Tabeller | beskrivning |
---|---|
Anpassade tabeller | Alla anpassade tabeller som du skapar på Log Analytics-arbetsytan. Måltabellen måste finnas innan du kan skicka data till den. Anpassade tabeller måste ha suffixet _CL . |
Azure-tabeller | Följande Azure-tabeller stöds för närvarande. Andra tabeller kan läggas till i den här listan när stöd för dem implementeras. |
- ADAssessmentRecommendation
- ADSecurityAssessmentRecommendation
- ASimAuditEventLogs
- ASimAuthenticationEventLogs
- ASimDhcpEventLogs
- ASimDnsActivityLogs
- ASimDnsAuditLogs
- ASimFileEventLogs
- ASimNetworkSessionLogs
- ASimProcessEventLogs
- ASimRegistryEventLogs
- ASimUserManagementActivityLogs
- ASimWebSessionLogs
- AWSCloudTrail
- AWSCloudWatch
- AWSGuardDuty
- AWSVPCFlow
- AzureAssessmentRecommendation
- CommonSecurityLog
- DeviceTvmSecureConfigurationAssessmentKB
- DeviceTvmSoftwareVulnerabilitiesKB
- ExchangeAssessmentRecommendation
- ExchangeOnlineAssessmentRecommendation
- GCPAuditLogs
- GoogleCloudSCC
- SCCMAssessmentRecommendation
- SCOMAssessmentRecommendation
- SecurityEvent
- SfBAssessmentRecommendation
- SfBOnlineAssessmentRecommendation
- SharePointOnlineAssessmentRecommendation
- SPAssessmentRecommendation
- SQLAssessmentRecommendation
- StorageInsightsAccountPropertiesDaily
- StorageInsightsDailyMetrics
- StorageInsightsHourlyMetrics
- StorageInsightsMonthlyMetrics
- StorageInsightsWeeklyMetrics
- Syslog
- UCClient
- UCClientReadinessStatus
- UCClientUpdateStatus
- UCDeviceAlert
- UCDOAggregatedStatus
- UCDOStatus
- UCServiceUpdateStatus
- UCUpdateAlert
- WindowsClientAssessmentRecommendation
- WindowsEvent
- WindowsServerAssessmentRecommendation
Kommentar
Kolumnnamn måste börja med en bokstav och kan bestå av upp till 45 alfanumeriska tecken och understreck (_
). _ResourceId
, id
, _ResourceId
, _SubscriptionId
, TenantId
, Type
, , UniqueId
och Title
är reserverade kolumnnamn. Anpassade kolumner som du lägger till i en Azure-tabell måste ha suffixet _CF
.
Gränser och begränsningar
Begränsningar som rör API :et för logginmatning finns i Tjänstbegränsningar för Azure Monitor.
Nästa steg
- Gå igenom en självstudiekurs om att skicka data till Azure Monitor-loggar med inmatnings-API för loggar på Azure-portalen
- Gå igenom en självstudie som skickar anpassade loggar med Hjälp av Resource Manager-mallar och REST API
- Få vägledning om hur du använder klientbiblioteken för LOGS-inmatnings-API:et för .NET, Java, JavaScript eller Python.