Delen via


Azure Monitor-clientbibliotheek voor opname voor Python - versie 1.0.3

De Azure Monitor-clientbibliotheek voor opname wordt gebruikt voor het verzenden van aangepaste logboeken naar Azure Monitor met behulp van de Logboekopname-API.

Met deze bibliotheek kunt u gegevens van vrijwel elke bron verzenden naar ondersteunde ingebouwde tabellen of naar aangepaste tabellen die u in de Log Analytics-werkruimte maakt. U kunt zelfs het schema van ingebouwde tabellen uitbreiden met aangepaste kolommen.

Bronnen:

Aan de slag

Vereisten

Het pakket installeren

Installeer de Azure Monitor-clientbibliotheek voor opname voor Python met pip:

pip install azure-monitor-ingestion

De client maken

Een geverifieerde client is vereist voor het uploaden van logboeken naar Azure Monitor. De bibliotheek bevat zowel synchrone als asynchrone vormen van de clients. Als u wilt verifiëren, maakt u een exemplaar van een tokenreferentie. Gebruik dat exemplaar bij het maken van een LogsIngestionClient. In de volgende voorbeelden wordt gebruikgemaakt DefaultAzureCredential van het pakket azure-identity .

Synchrone clients

Bekijk het volgende voorbeeld, waarin synchrone clients worden gemaakt voor het uploaden van logboeken:

import os
from azure.identity import DefaultAzureCredential
from azure.monitor.ingestion import LogsIngestionClient

endpoint = os.environ['DATA_COLLECTION_ENDPOINT']
credential = DefaultAzureCredential()
logs_client = LogsIngestionClient(endpoint, credential)

Asynchrone clients

De asynchrone vormen van de client-API's zijn te vinden in de .aio-achtervoegselnaamruimte. Bijvoorbeeld:

import os
from azure.identity.aio import DefaultAzureCredential
from azure.monitor.ingestion.aio import LogsIngestionClient

endpoint = os.environ['DATA_COLLECTION_ENDPOINT']
credential = DefaultAzureCredential()
logs_client = LogsIngestionClient(endpoint, credential)

Clients configureren voor niet-openbare Azure-clouds

Is standaard LogsIngestionClient geconfigureerd om verbinding te maken met de openbare Azure-cloud. Als u verbinding wilt maken met niet-openbare Azure-clouds, is een aanvullende configuratie vereist. Het juiste bereik voor verificatie moet worden opgegeven met behulp van het credential_scopes trefwoordargument. In het volgende voorbeeld ziet u hoe u de client configureert om verbinding te maken met Azure US Government:

logs_client = LogsIngestionClient(endpoint, credential_scopes=["https://monitor.azure.us//.default"])

Belangrijkste concepten

Eindpunt voor gegevensverzameling

Met eindpunten voor gegevensverzameling (DCE's) kunt u de opname-instellingen voor Azure Monitor uniek configureren. Dit artikel biedt een overzicht van eindpunten voor gegevensverzameling, inclusief de inhoud en structuur ervan en hoe u deze kunt maken en ermee kunt werken.

Regel voor gegevensverzameling

Regels voor gegevensverzameling (DCR) definiëren gegevens die worden verzameld door Azure Monitor en geven aan hoe en waar die gegevens moeten worden verzonden of opgeslagen. De REST API-aanroep moet een DCR opgeven die moet worden gebruikt. Eén DCE kan meerdere DCR's ondersteunen, zodat u een andere DCR voor verschillende bronnen en doeltabellen kunt opgeven.

De DCR moet de structuur van de invoergegevens en de structuur van de doeltabel begrijpen. Als de twee niet overeenkomen, kan een transformatie worden gebruikt om de brongegevens te converteren zodat deze overeenkomen met de doeltabel. U kunt de transformatie ook gebruiken om brongegevens te filteren en andere berekeningen of conversies uit te voeren.

Zie Regels voor gegevensverzameling in Azure Monitor voor meer informatie en raadpleeg dit artikel voor meer informatie over de structuur van een DCR. Zie deze zelfstudie voor meer informatie over het ophalen van een DCR-id.

Tabellen in Log Analytics-werkruimte

Aangepaste logboeken kunnen gegevens verzenden naar elke aangepaste tabel die u maakt en naar bepaalde ingebouwde tabellen in uw Log Analytics-werkruimte. De doeltabel moet bestaan voordat u er gegevens naar kunt verzenden. De volgende ingebouwde tabellen worden momenteel ondersteund:

Logboeken ophalen

De logboeken die met deze bibliotheek zijn geüpload, kunnen worden opgevraagd met behulp van de Azure Monitor Query-clientbibliotheek .

Voorbeelden

Aangepaste logboeken uploaden

In dit voorbeeld ziet u het uploaden van logboeken naar Azure Monitor.

import os

from azure.core.exceptions import HttpResponseError
from azure.identity import DefaultAzureCredential
from azure.monitor.ingestion import LogsIngestionClient

endpoint = os.environ['DATA_COLLECTION_ENDPOINT']
credential = DefaultAzureCredential()

client = LogsIngestionClient(endpoint=endpoint, credential=credential, logging_enable=True)

rule_id = os.environ['LOGS_DCR_RULE_ID']
body = [
      {
        "Time": "2021-12-08T23:51:14.1104269Z",
        "Computer": "Computer1",
        "AdditionalContext": "context-2"
      },
      {
        "Time": "2021-12-08T23:51:14.1104269Z",
        "Computer": "Computer2",
        "AdditionalContext": "context"
      }
    ]

try:
    client.upload(rule_id=rule_id, stream_name=os.environ['LOGS_DCR_STREAM_NAME'], logs=body)
except HttpResponseError as e:
    print(f"Upload failed: {e}")

Uploaden met aangepaste foutafhandeling

Als u logboeken wilt uploaden met aangepaste foutafhandeling, kunt u een callback-functie doorgeven aan de on_error parameter van de upload methode. De callback-functie wordt aangeroepen voor elke fout die optreedt tijdens het uploaden en verwacht één argument dat overeenkomt met een LogsUploadError object. Dit object bevat de fout die is opgetreden en de lijst met logboeken die niet zijn geüpload.

# Example 1: Collect all logs that failed to upload.
failed_logs = []
def on_error(error):
    print("Log chunk failed to upload with error: ", error.error)
    failed_logs.extend(error.failed_logs)

# Example 2: Ignore all errors.
def on_error_pass(error):
    pass

client.upload(rule_id=rule_id, stream_name=os.environ['LOGS_DCR_STREAM_NAME'], logs=body, on_error=on_error)

Problemen oplossen

Zie onze handleiding voor probleemoplossing voor meer informatie over het diagnosticeren van verschillende foutscenario's.

Volgende stappen

Zie de documentatie voor de Azure Monitor-service voor meer informatie over Azure Monitor.

Voorbeelden

De volgende codevoorbeelden tonen veelvoorkomende scenario's met de Azure Monitor-clientbibliotheek voor opname.

Voorbeelden van opname van logboeken

Bijdragen

Wij verwelkomen bijdragen en suggesties voor dit project. Voor de meeste bijdragen moet u instemmen met een licentieovereenkomst voor bijdragers (CLA: Contributor License Agreement) waarin u verklaart dat u gerechtigd bent ons het recht te geven uw bijdrage te gebruiken, en dat u dit ook doet. Ga naar cla.microsoft.com voor meer informatie.

Wanneer u een pull-aanvraag indient, wordt met een CLA-bot automatisch bepaald of u een CLA moet verschaffen en wordt de pull-aanvraag dienovereenkomstig opgemaakt (bijvoorbeeld met een label of commentaar). Volg gewoon de instructies van de bot. U hoeft dit slechts één keer te doen voor alle opslagplaatsen met behulp van onze CLA.

Op dit project is de Microsoft Open Source Code of Conduct (Microsoft Open Source-gedragscode) van toepassing. Raadpleeg de Veelgestelde vragen over de gedragscode voor meer informatie of neem contact op met opencode@microsoft.com als u meer vragen of opmerkingen hebt.