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:
- Forráskód
- Csomag (PyPI)
- Csomag (Conda)
- API-referenciadokumentáció
- Szolgáltatásdokumentáció
- Példák
- Változási napló
Első lépések
Előfeltételek
- Python 3.7 vagy újabb
- Azure-előfizetés
- Azure Log Analytics-munkaterület
- Adatgyűjtési végpont
- Adatgyűjtési szabály
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 LogsIngestionClient
lé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_error
upload
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
- Naplók listájának feltöltése (aszinkron minta)
- Naplók listájának feltöltése egyéni hibakezeléssel (aszinkron minta)
- Fájl tartalmának feltöltése (aszinkron minta)
- Adatok feltöltése pandas DataFrame-be (aszinkron minta)
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.
Azure SDK for Python