Megosztás a következőn keresztül:


Azure Monitor Betöltési ügyfélkódtár Pythonhoz – 1.0.3-s verzió

Az Azure Monitor betöltési ügyfélkódtárával egyéni naplókat küldhet az Azure Monitornak a Logs Ingestion API használatával.

Ez a kódtár lehetővé teszi, hogy gyakorlatilag bármilyen forrásból adatokat küldjön a támogatott beépített tábláknak vagy a Log Analytics-munkaterületen létrehozott egyéni tábláknak. A beépített táblák sémáját akár ki is egészítheti azzal, hogy egyéni oszlopokat ad hozzájuk.

Erőforrások:

Első lépések

Előfeltételek

A csomag telepítése

Telepítse a Pythonhoz készült Azure Monitor Betöltési ügyfélkódtárat a pip használatával:

pip install azure-monitor-ingestion

Az ügyfél létrehozása

Hitelesített ügyfélre van szükség a naplók Azure Monitorba való feltöltéséhez. A kódtár az ügyfelek szinkron és aszinkron formáit is tartalmazza. A hitelesítéshez hozzon létre egy token hitelesítőadat-példányt. Használja ezt a példányt a LogsIngestionClientlétrehozásakor. Az alábbi példák az azure-identity csomagból származnakDefaultAzureCredential.

Szinkron ügyfelek

Vegyük az alábbi példát, amely szinkron ügyfeleket hoz létre a naplók feltöltéséhez:

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)

Aszinkron ügyfelek

Az ügyfél API-k aszinkron formái a .aio-suffixed névtérben találhatók. Például:

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)

Ügyfelek konfigurálása nem nyilvános Azure-felhőkhöz

Alapértelmezés szerint LogsIngestionClient a nyilvános Azure-felhőhöz való csatlakozásra van konfigurálva. A nem nyilvános Azure-felhőkhöz való csatlakozáshoz további konfigurációra van szükség. A hitelesítés megfelelő hatókörét a credential_scopes kulcsszó argumentum használatával kell megadni. Az alábbi példa bemutatja, hogyan konfigurálhatja az ügyfelet az Azure US Governmenthez való csatlakozásra:

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

Fő fogalmak

Adatgyűjtési végpont

Az adatgyűjtési végpontok (DCE-k) lehetővé teszik az Azure Monitor betöltési beállításainak egyedi konfigurálását. Ez a cikk áttekintést nyújt az adatgyűjtési végpontokról, beleértve azok tartalmát és szerkezetét, valamint a létrehozásuk és a velük való munka módját.

Adatgyűjtési szabály

Az adatgyűjtési szabályok (DCR) meghatározzák az Azure Monitor által gyűjtött adatokat, és megadják az adatok küldésének vagy tárolásának módját és helyét. A REST API-hívásnak meg kell adnia egy használandó DCR-t. Egyetlen DCE több DCR-t is támogat, így különböző forrásokhoz és céltáblákhoz megadhat egy másik DCR-t.

A DCR-nek tisztában kell lennie a bemeneti adatok szerkezetével és a céltábla szerkezetével. Ha a kettő nem egyezik, átalakítással átalakíthatja a forrásadatokat a céltáblának megfelelően. Az átalakítással szűrheti a forrásadatokat, és bármilyen más számítást vagy átalakítást végezhet.

További információ: Adatgyűjtési szabályok az Azure Monitorban, és ez a cikk a DCR szerkezetének részleteit ismerteti. A DCR-azonosítók lekéréséről ebben az oktatóanyagban olvashat bővebben.

Log Analytics-munkaterület táblái

Az egyéni naplók bármilyen létrehozott egyéni táblába és a Log Analytics-munkaterület bizonyos beépített tábláiba küldhetnek adatokat. A céltáblának léteznie kell ahhoz, hogy adatokat küldjön neki. Jelenleg a következő beépített táblák támogatottak:

Naplók lekérése

A tár használatával feltöltött naplók lekérdezhetők az Azure Monitor Query ügyfélkódtárával.

Példák

Egyéni naplók feltöltése

Ez a példa a naplók Azure Monitorba való feltöltését mutatja be.

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}")

Feltöltés egyéni hibakezeléssel

Ha egyéni hibakezeléssel szeretne naplókat feltölteni, visszahívási függvényt adhat át a on_errorupload metódus paraméterének. A rendszer meghívja a visszahívási függvényt minden, a feltöltés során előforduló hibához, és egy objektumnak LogsUploadError megfelelő argumentumra kell számítania. Ez az objektum tartalmazza a tapasztalt hibát, valamint a nem feltölthető naplók listáját.

# 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)

Hibaelhárítás

A különböző hibaforgatókönyvek diagnosztizálásával kapcsolatos részletekért tekintse meg a hibaelhárítási útmutatónkat.

Következő lépések

Az Azure Monitorral kapcsolatos további információkért tekintse meg az Azure Monitor szolgáltatás dokumentációját.

Példák

Az alábbi kódminták az Azure Monitor betöltési ügyfélkódtárával kapcsolatos gyakori forgatókönyveket mutatják be.

Naplóbetöltési minták

Közreműködés

A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. A részletekért látogasson el a cla.microsoft.com.

A lekéréses kérelmek elküldésekor egy CLA-robot automatikusan meghatározza, hogy kell-e biztosítania CLA-t, és megfelelően kitölti a lekéréses kérelmet (például címke, megjegyzés). Egyszerűen csak kövesse a robot által megadott utasításokat. Ezt csak egyszer kell elvégeznie az összes adattárban a CLA használatával.

A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért keresse fel a Viselkedési szabályzattal kapcsolatos gyakori kérdések oldalát, illetve küldje el kérdéseit vagy észrevételeit a következő címre: opencode@microsoft.com.