Migreren van de HTTP Data Collector-API naar de API voor logboekopname om gegevens naar Azure Monitor-logboeken te verzenden

De Azure Monitor Logboekopname-API biedt meer verwerkingskracht en meer flexibiliteit bij het opnemen van logboeken en het beheren van tabellen dan de verouderde HTTP-gegevensverzamelaar-API. In dit artikel worden de verschillen tussen de Data Collector-API en de API voor logboekopname beschreven en vindt u richtlijnen en aanbevolen procedures voor het migreren naar de nieuwe logboekopname-API.

Notitie

Als Microsoft MVP heeft Morten Waltorp Knudsen bijgedragen aan en materiële feedback gegeven voor dit artikel. Zie de openbaar beschikbare AzLogDcrIngestPS PowerShell-module van Morten voor een voorbeeld van hoe u de installatie en het doorlopende gebruik van de API voor logboekopname kunt automatiseren.

Voordelen van de API voor logboekopname

De API voor logboekopname biedt de volgende voordelen ten opzichte van de Data Collector-API:

  • Ondersteunt transformaties, waarmee u de gegevens kunt wijzigen voordat deze worden opgenomen in de doeltabel, inclusief filteren en bewerken van gegevens.
  • Hiermee kunt u gegevens verzenden naar meerdere bestemmingen.
  • Hiermee kunt u het doeltabelschema beheren, inclusief kolomnamen, en of u nieuwe kolommen wilt toevoegen aan de doeltabel wanneer het brongegevensschema wordt gewijzigd.

Vereisten

Bij de migratieprocedure die in dit artikel wordt beschreven, wordt ervan uitgegaan dat u het volgende hebt:

Vereiste machtigingen

Actie Vereiste machtigingen
Maak een eindpunt voor gegevensverzameling. Microsoft.Insights/dataCollectionEndpoints/write machtigingen zoals opgegeven door de ingebouwde rol Inzender voor bewaking.
Een regel voor gegevensverzameling maken of wijzigen. Microsoft.Insights/DataCollectionRules/Write machtigingen zoals opgegeven door de ingebouwde rol Inzender voor bewaking.
Converteer een tabel die gebruikmaakt van de Data Collector-API naar regels voor gegevensverzameling en de API voor logboekopname. Microsoft.OperationalInsights/workspaces/tables/migrate/action machtigingen zoals verstrekt door de ingebouwde rol Log Analytics-inzender.
Maak nieuwe tabellen of wijzig tabelschema's. microsoft.operationalinsights/workspaces/tables/write machtigingen zoals verstrekt door de ingebouwde rol Log Analytics-inzender.
Roep de API voor logboekopname aan. Zie Machtigingen toewijzen aan een DCR.

Nieuwe resources maken die vereist zijn voor de API voor logboekopname

Voor de API voor logboekopname moet u twee nieuwe typen resources maken, waarvoor de HTTP-gegevensverzamelaar-API niet vereist is:

Bestaande aangepaste tabellen migreren of nieuwe tabellen maken

Als u een bestaande aangepaste tabel hebt waarnaar u momenteel gegevens verzendt met behulp van de Data Collector-API, kunt u het volgende doen:

  • Migreer de tabel om door te gaan met het opnemen van gegevens in dezelfde tabel met behulp van de API voor logboekopname.

  • Behoud de bestaande tabel en gegevens en stel een nieuwe tabel in waarin u gegevens opneemt met behulp van de API voor logboekopname. Vervolgens kunt u de oude tabel verwijderen wanneer u klaar bent.

    Dit is de voorkeursoptie, met name als u wijzigingen wilt aanbrengen in de bestaande tabel. Wijzigingen in bestaande gegevenstypen en meerdere schemawijzigingen in aangepaste tabellen van de Data Collector-API kunnen leiden tot fouten.

Tip

Bekijk tabeleigenschappen om te bepalen welke tabellen gebruikmaken van de Data Collector-API. De eigenschap Type van tabellen die gebruikmaken van de Data Collector-API is ingesteld op aangepaste tabel (klassiek). Houd er rekening mee dat voor tabellen die gegevens opnemen met behulp van de verouderde Log Analytics-agent (MMA) ook de eigenschap Type is ingesteld op Aangepaste tabel (klassiek). Zorg ervoor dat u migreert van de Log Analytics-agent naar Azure Monitor Agent voordat u MMA-tabellen converteert. Anders stopt u met het opnemen van gegevens in aangepaste velden in deze tabellen na de tabelconversie.

In deze tabel worden overwegingen samengevat waarmee u rekening moet houden voor elke optie:

Tabelmigratie Implementatie naast elkaar
Naamgeving van tabellen en kolommen Bestaande tabelnaam opnieuw gebruiken.
Opties voor kolomnamen:
- Gebruik nieuwe kolomnamen en definieer een transformatie om binnenkomende gegevens naar de nieuwe benoemde kolom te leiden.
- Ga door met het gebruik van oude namen.
Stel de naam van de nieuwe tabel vrij in.
Integraties, dashboards en waarschuwingen moeten worden aangepast voordat u overschakelt naar de nieuwe tabel.
Migratieprocedure Eenmalige tabelmigratie. Kan een gemigreerde tabel niet terugdraaien. Migratie kan geleidelijk per tabel worden uitgevoerd.
Na de migratie U kunt gegevens blijven opnemen met behulp van de HTTP-gegevensverzamelaar-API met bestaande kolommen, behalve aangepaste kolommen.
Gegevens opnemen in nieuwe kolommen met behulp van de API voor logboekopname.
Gegevens in de oude tabel zijn beschikbaar tot het einde van de bewaarperiode.
Wanneer u voor het eerst een nieuwe tabel instelt of schemawijzigingen aanbrengt, kan het 10-15 minuten duren voordat de gegevenswijzigingen in de doeltabel worden weergegeven.

Als u een tabel wilt converteren die gebruikmaakt van de Data Collector-API naar regels voor gegevensverzameling en de API voor logboekopname, moet u deze API-aanroep uitvoeren voor de tabel:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/tables/{tableName}/migrate?api-version=2021-12-01-preview

Deze aanroep is idempotent, dus het heeft geen effect als de tabel al is geconverteerd.

De API-aanroep maakt alle op DCR gebaseerde aangepaste logboekfuncties in de tabel mogelijk. De Data Collector-API blijft gegevens opnemen in bestaande kolommen, maar er worden geen nieuwe kolommen gemaakt. Eerder gedefinieerde aangepaste velden worden niet meer ingevuld. Een andere manier om een bestaande tabel te migreren naar het gebruik van regels voor gegevensverzameling, maar niet noodzakelijkerwijs de API voor logboekopname is het toepassen van een werkruimtetransformatie op de tabel.

Belangrijk

  • Kolomnamen moeten beginnen met een letter en kunnen bestaan uit maximaal 45 alfanumerieke tekens en onderstrepingstekens (_).
  • _ResourceId, , _ResourceIdid, _SubscriptionId, , TenantId, , Typeen TitleUniqueIdzijn gereserveerde kolomnamen.
  • Aangepaste kolommen die u aan een Azure-tabel toevoegt, moeten het achtervoegsel _CFhebben.
  • Als u het tabelschema in uw Log Analytics-werkruimte bijwerkt, moet u ook de definitie van de invoerstroom in de regel voor gegevensverzameling bijwerken om gegevens op te nemen in nieuwe of gewijzigde kolommen.

De API voor logboekopname aanroepen

Met de API voor logboekopname kunt u maximaal 1 MB aan gecomprimeerde of niet-gecomprimeerde gegevens per aanroep verzenden. Als u meer dan 1 MB aan gegevens wilt verzenden, kunt u meerdere aanroepen parallel verzenden. Dit is een wijziging van de Data Collector-API, waarmee u maximaal 32 MB aan gegevens per aanroep kunt verzenden.

Zie de REST API-aanroep voor logboekopname voor meer informatie over het aanroepen van de LOG Ingestion-API.

Tabelschema's en regels voor gegevensverzameling wijzigen op basis van wijzigingen in brongegevensobject

Terwijl de Data Collector-API het doeltabelschema automatisch aanpast wanneer het schema van het brongegevensobject wordt gewijzigd, wordt de API voor logboekopname niet aangepast. Dit zorgt ervoor dat u geen nieuwe gegevens verzamelt in kolommen die u niet wilde maken.

Wanneer het brongegevensschema wordt gewijzigd, kunt u het volgende doen:

  • Wijzig doeltabelschema's en regels voor gegevensverzameling om te worden uitgelijnd met wijzigingen in het brongegevensschema.
  • Definieer een transformatie in de regel voor gegevensverzameling om de nieuwe gegevens naar bestaande kolommen in de doeltabel te verzenden.
  • Laat de doeltabel en de regel voor gegevensverzameling ongewijzigd. In dit geval neemt u de nieuwe gegevens niet op.

Notitie

U kunt een kolomnaam niet opnieuw gebruiken met een gegevenstype dat verschilt van het oorspronkelijke gegevenstype dat voor de kolom is gedefinieerd.

Volgende stappen