Python için Azure İzleyici Alımı istemci kitaplığı - sürüm 1.0.3

Azure İzleyici Alma istemci kitaplığı, Günlük Alımı API'sini kullanarak Azure İzleyici'ye özel günlükler göndermek için kullanılır.

Bu kitaplık, neredeyse tüm kaynaklardan desteklenen yerleşik tablolara veya Log Analytics çalışma alanında oluşturduğunuz özel tablolara veri göndermenizi sağlar. Yerleşik tabloların şemasını özel sütunlarla da genişletebilirsiniz.

Kaynaklar:

Başlarken

Önkoşullar

Paketi yükleme

Python için Azure İzleyici Alım istemci kitaplığını pip ile yükleyin:

pip install azure-monitor-ingestion

İstemci oluşturma

Günlükleri Azure İzleyici'ye yüklemek için kimliği doğrulanmış bir istemci gerekir. Kitaplık, istemcilerin hem zaman uyumlu hem de zaman uyumsuz biçimlerini içerir. Kimlik doğrulaması yapmak için belirteç kimlik bilgilerinin bir örneğini oluşturun. Oluştururken LogsIngestionClientbu örneği kullanın. Aşağıdaki örnekler azure-identity paketinden kullanılırDefaultAzureCredential.

Zaman uyumlu istemciler

Günlükleri karşıya yüklemek için zaman uyumlu istemciler oluşturan aşağıdaki örneği göz önünde bulundurun:

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)

Zaman uyumsuz istemciler

İstemci API'lerinin zaman uyumsuz formları -suffixed ad alanında .aiobulunur. Örnek:

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)

Genel olmayan Azure bulutları için istemcileri yapılandırma

Varsayılan olarak, LogsIngestionClient genel Azure buluta bağlanacak şekilde yapılandırılır. Genel olmayan Azure bulutlarına bağlanmak için bazı ek yapılandırmalar gerekir. Kimlik doğrulaması için uygun kapsam anahtar sözcük bağımsız değişkeni kullanılarak credential_scopes sağlanmalıdır. Aşağıdaki örnekte istemcinin Azure US Government'a bağlanacak şekilde nasıl yapılandırılır gösterilmektedir:

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

Önemli kavramlar

Veri Toplama Uç Noktası

Veri Toplama Uç Noktaları (DCE' ler), Azure İzleyici için alım ayarlarını benzersiz olarak yapılandırmanıza olanak sağlar. Bu makalede , veri toplama uç noktalarına içeriklerini ve yapısını ve bunları nasıl oluşturup bunlarla çalışabileceğinizi içeren bir genel bakış sunulmaktadır.

Veri Toplama Kuralı

Veri toplama kuralları (DCR), Azure İzleyici tarafından toplanan verileri tanımlar ve bu verilerin nasıl ve nerede gönderileceğini veya depolanması gerektiğini belirtir. REST API çağrısı kullanılacak bir DCR belirtmelidir. Tek bir DCE birden çok DCR'yi destekleyebilir, böylece farklı kaynaklar ve hedef tablolar için farklı bir DCR belirtebilirsiniz.

DCR, giriş verilerinin yapısını ve hedef tablonun yapısını anlamalıdır. İkisi eşleşmiyorsa, kaynak verileri hedef tabloyla eşleşecek şekilde dönüştürmek için bir dönüştürme kullanabilir. Dönüştürmeyi kaynak verileri filtrelemek ve diğer hesaplamaları veya dönüştürmeleri gerçekleştirmek için de kullanabilirsiniz.

Daha fazla bilgi için Azure İzleyici'de veri toplama kuralları bölümüne bakın ve DCR'nin yapısı hakkında ayrıntılı bilgi için bu makaleye bakın. DCR kimliğini alma hakkında bilgi için bu öğreticiye bakın.

Log Analytics çalışma alanı tabloları

Özel günlükler, oluşturduğunuz herhangi bir özel tabloya ve Log Analytics çalışma alanınızdaki bazı yerleşik tablolara veri gönderebilir. Hedef tabloya veri gönderebilmeniz için önce var olması gerekir. Şu anda aşağıdaki yerleşik tablolar desteklenmektedir:

Günlük alma

Bu kitaplık kullanılarak karşıya yüklenen günlükler Azure İzleyici Sorgusu istemci kitaplığı kullanılarak sorgulanabilir.

Örnekler

Özel günlükleri karşıya yükleme

Bu örnekte günlüklerin Azure İzleyici'ye yüklenmesi gösterilmektedir.

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

Özel hata işleme ile karşıya yükleme

Özel hata işleme ile günlükleri karşıya yüklemek için yönteminin on_error parametresine upload bir geri çağırma işlevi geçirebilirsiniz. Geri çağırma işlevi, karşıya yükleme sırasında oluşan her hata için çağrılır ve bir nesneye karşılık gelen bir LogsUploadError bağımsız değişken beklenmelidir. Bu nesne, karşılaşılan hatayı ve karşıya yüklenemeyen günlüklerin listesini içerir.

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

Sorun giderme

Çeşitli hata senaryolarını tanılama hakkında ayrıntılı bilgi için sorun giderme kılavuzumuza bakın.

Sonraki adımlar

Azure İzleyici hakkında daha fazla bilgi edinmek için Azure İzleyici hizmeti belgelerine bakın.

Örnekler

Aşağıdaki kod örnekleri, Azure İzleyici Alma istemci kitaplığıyla ilgili yaygın senaryoları gösterir.

Günlük Alımı örnekleri

Katkıda bulunma

Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için cla.microsoft.com adresini ziyaret edin.

Bir çekme isteği gönderdiğinizde, CLA robotu bir CLA sağlamanız gerekip gerekmediğini otomatik olarak belirler ve çekme isteğini uygun şekilde donatır (örn. etiket, açıklama). Robot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Bunu CLA'mızı kullanarak tüm depolarda yalnızca bir kez yapmanız gerekir.

Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları hakkında SSS bölümüne bakın veya başka soru ya da görüşleriniz olursa opencode@microsoft.com ile iletişime geçin.