Öğretici: Günlük alımı API'sini (Resource Manager şablonları) kullanarak Azure İzleyici'ye veri gönderme

Azure İzleyici'deki Günlük Alımı API'si, bir Log Analytics çalışma alanına özel veri göndermenizi sağlar. Bu öğreticide AZURE Resource Manager şablonları (ARM şablonları) kullanılarak API'yi desteklemek için gereken bileşenlerin yapılandırmasında yol gösterilir ve ardından .NET, Go, Java, JavaScript ve Python için rest API'yi ve istemci kitaplıklarını kullanan örnek bir uygulama sağlanır.

Not

Bu öğreticide, Günlük alımı API'sini desteklemek için gereken bileşenleri yapılandırmak için ARM şablonları kullanılır. Bu bileşenleri yapılandırmak için Azure portalı kullanıcı arabirimini kullanan benzer bir öğretici için bkz . Öğretici: Günlük alma API'siyle (Azure portalı) Azure İzleyici Günlüklerine veri gönderme.

Günlük alımı API'sini yapılandırmak için gereken adımlar şunlardır:

  1. API'de kimlik doğrulaması yapmak için bir Microsoft Entra uygulaması oluşturun.
  2. Veri almak için bir veri toplama uç noktası (DCE) oluşturun.
  3. Log Analytics çalışma alanında özel tablo oluşturma. Bu, veri gönderileceği tablodur.
  4. Verileri hedef tabloya yönlendirmek için bir veri toplama kuralı (DCR) oluşturun.
  5. Microsoft Entra uygulamasına DCR erişimi verin.
  6. Günlük alımı API'sini kullanarak veri göndermek üzere örnek kod için bkz . Günlük alımı API'sini kullanarak Azure İzleyici'ye veri göndermek için örnek kod.

Önkoşullar

Bu öğreticiyi tamamlamak için aşağıdakiler gerekir:

Çalışma alanı ayrıntılarını toplama

Çalışma alanınızdan ihtiyacınız olacak bilgileri toplayarak başlayın.

Azure portalındaki Log Analytics çalışma alanları menüsünde çalışma alanınıza gidin. Özellikler sayfasında Kaynak Kimliğini kopyalayın ve daha sonra kullanmak üzere kaydedin.

Çalışma alanı kaynak kimliğini gösteren ekran görüntüsü.

Microsoft Entra uygulaması oluşturma

API'de kimlik doğrulaması yapmak için bir Microsoft Entra uygulaması kaydederek başlayın. Tüm Resource Manager kimlik doğrulama düzenleri desteklenir, ancak bu öğretici İstemci Kimlik Bilgisi Verme Akışı düzenini izler.

  1. Azure portalındaki Microsoft Entra Id menüsünde Uygulama kayıtları> Yeni kayıt'ı seçin.

    Uygulama kayıt ekranını gösteren ekran görüntüsü.

  2. Varsayılan değer ortamınız için uygun değilse uygulamaya bir ad verin ve kiracı kapsamını değiştirin. Yeniden Yönlendirme URI'sine gerek yoktur.

    Uygulama ayrıntılarını gösteren ekran görüntüsü.

  3. Kayıt sonrasında uygulamanın ayrıntılarını görüntüleyebilirsiniz. Uygulama (istemci) kimliğini ve Dizin (kiracı) kimliğini not edin. İşlemin ilerleyen bölümlerinde bu değerlere ihtiyacınız olacaktır.

    Uygulama kimliğini gösteren ekran görüntüsü.

  4. Kullanıcı adıyla kullanmak üzere parola oluşturmaya benzer bir uygulama istemci gizli dizisi oluşturun. Sertifikalar ve gizli diziler>Yeni istemci gizli dizisi'ni seçin. Gizli diziye amacını tanımlamak için bir ad verin ve Süre sonu seçin. Burada 12 ay seçeneği belirlenmiştir. Bir üretim uygulaması için gizli dizi döndürme yordamı için en iyi yöntemleri izler veya sertifika gibi daha güvenli bir kimlik doğrulama modu kullanırsınız.

    Yeni uygulamanın gizli dizisini gösteren ekran görüntüsü.

  5. Gizli diziyi kaydetmek için Ekle'yi seçin ve ardından Değer'i not edin. Bu sayfadan ayrıldıktan sonra kurtaramadığınız için bu değeri kaydettiğinizden emin olun. Parolanın işlevsel eşdeğeri olduğundan, parolayı güvende tutmayla aynı güvenlik önlemlerini kullanın.

    Yeni uygulamanın gizli dizi değerini gösteren ekran görüntüsü.

Veri toplama uç noktası oluşturma

Azure İzleyici'ye gönderilen verileri kabul etmek için bir DCE gereklidir. DCE'yi yapılandırdıktan ve bir DCR'ye bağladıktan sonra, uygulamanızdan HTTP üzerinden veri gönderebilirsiniz. DCE, verilerin gönderileceği DCR ve Log Analytics çalışma alanıyla aynı bölgede bulunmalıdır.

  1. Azure portalının arama kutusuna şablon yazın ve ardından Özel şablon dağıt'ı seçin.

    Özel şablonun nasıl dağıtıldığını gösteren ekran görüntüsü.

  2. Düzenleyicide kendi şablonunuzu oluşturun'u seçin.

    Düzenleyicide şablon oluşturmayı gösteren ekran görüntüsü.

  3. Aşağıdaki ARM şablonunu düzenleyiciye yapıştırın ve kaydet'i seçin. Parametreleri için değerler sağlayacağınız için bu şablonu değiştirmeniz gerekmez.

    ARM şablonunun nasıl düzenlendiğini gösteren ekran görüntüsü.

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "dataCollectionEndpointName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the Data Collection Endpoint to create."
                }
            },
            "location": {
                "type": "string",
                "defaultValue": "westus2",
                "metadata": {
                    "description": "Specifies the location for the Data Collection Endpoint."
                }
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionEndpoints",
                "name": "[parameters('dataCollectionEndpointName')]",
                "location": "[parameters('location')]",
                "apiVersion": "2021-04-01",
                "properties": {
                    "networkAcls": {
                    "publicNetworkAccess": "Enabled"
                    }
                }
            }
        ],
        "outputs": {
            "dataCollectionEndpointId": {
                "type": "string",
                "value": "[resourceId('Microsoft.Insights/dataCollectionEndpoints', parameters('dataCollectionEndpointName'))]"
            }
        }
    }
    
  4. Özel dağıtım ekranında, DCR'yi depolamak için bir Abonelik ve Kaynak grubu belirtin ve ardından DCE için Ad gibi değerler sağlayın. Konum, çalışma alanıyla aynı konum olmalıdır. Bölge zaten doldurulur ve DCE'nin konumu için kullanılır.

    Özel dağıtım değerlerini düzenlemek için ekran görüntüsü.

  5. Gözden geçir + oluştur'u ve ardından ayrıntıları gözden geçirdikten sonra Oluştur'u seçin.

  6. DCE'nin diğer ayrıntılarını görüntülemek için JSON Görünümü'nü seçin. Sonraki bir adımda ihtiyacınız olacak Kaynak Kimliğini ve logsIngestion uç noktasını kopyalayın.

    DCE kaynak kimliğini gösteren ekran görüntüsü.

Log Analytics çalışma alanında yeni tablo oluşturma

Özel tabloya veri gönderebilmeniz için önce bu tablo oluşturulmalıdır. Bu öğreticinin tablosu aşağıdaki şemada gösterilen beş sütunu içerir. name, typeve description özellikleri her sütun için zorunlu olarak bulunur. Özellikler isHidden ve isDefaultDisplay her ikisi de açıkça belirtilmezse varsayılan false olarak belirlenir. Olası veri türleri : string, int, long, real, boolean, dateTime, , guidve dynamic.

Not

Bu öğreticide Azure İzleyici Tabloları API'sini kullanarak REST API çağrıları yapmak için Azure Cloud Shell'den PowerShell kullanılır. Bu çağrıları yapmak için başka geçerli bir yöntem kullanabilirsiniz.

Önemli

Özel tablolarda sonek _CLkullanılmalıdır.

  1. Azure portalında Cloud Shell düğmesini seçin ve ortamın PowerShell olarak ayarlandığından emin olun.

    Cloud Shell'in açılmasını gösteren ekran görüntüsü.

  2. Aşağıdaki PowerShell kodunu kopyalayın ve Path parametresindeki değişkenleri komuttaki Invoke-AzRestMethod çalışma alanınız için uygun değerlerle değiştirin. Çalıştırmak için Cloud Shell istemine yapıştırın.

    $tableParams = @'
    {
        "properties": {
            "schema": {
                "name": "MyTable_CL",
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime",
                        "description": "The time at which the data was generated"
                    },
                   {
                        "name": "Computer",
                        "type": "string",
                        "description": "The computer that generated the data"
                    },
                    {
                        "name": "AdditionalContext",
                        "type": "dynamic",
                        "description": "Additional message properties"
                    },
                    {
                        "name": "CounterName",
                        "type": "string",
                        "description": "Name of the counter"
                    },
                    {
                        "name": "CounterValue",
                        "type": "real",
                        "description": "Value collected for the counter"
                    }
                ]
            }
        }
    }
    '@
    
    Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/MyTable_CL?api-version=2022-10-01" -Method PUT -payload $tableParams
    

Veri toplama kuralı oluşturma

DCR, verilerin alındıktan sonra nasıl işleneceğini tanımlar. Buna aşağıdakiler dahildir:

  • Uç noktaya gönderilen verilerin şeması
  • Çalışma alanına gönderilmeden önce verilere uygulanacak dönüştürme
  • Dönüştürülen verilerin gönderileceği hedef çalışma alanı ve tablo
  1. Azure portalının arama kutusuna şablon yazın ve ardından Özel şablon dağıt'ı seçin.

    Özel şablonun nasıl dağıtıldığını gösteren ekran görüntüsü.

  2. Düzenleyicide kendi şablonunuzu oluşturun'u seçin.

    Düzenleyicide şablon oluşturmayı gösteren ekran görüntüsü.

  3. Aşağıdaki ARM şablonunu düzenleyiciye yapıştırın ve kaydet'i seçin.

    ARM şablonunun nasıl düzenlendiğini gösteren ekran görüntüsü.

    Bu şablonda tanımlanan DCR'de aşağıdaki ayrıntılara dikkat edin:

    • dataCollectionEndpointId: Veri toplama uç noktasının kaynak kimliği.
    • streamDeclarations: Gelen verilerin sütun tanımları.
    • destinations: Hedef çalışma alanı.
    • dataFlows: Akışı hedef çalışma alanıyla eşleştirir ve dönüştürme sorgusunu ve hedef tabloyu belirtir. Hedef sorgunun çıktısı, hedef tabloya gönderilecek olan sorgudur.
    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "dataCollectionRuleName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the Data Collection Rule to create."
                }
            },
            "location": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the location in which to create the Data Collection Rule."
                }
            },
            "workspaceResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
                }
            },
            "endpointResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the Data Collection Endpoint to use."
                }
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionRules",
                "name": "[parameters('dataCollectionRuleName')]",
                "location": "[parameters('location')]",
                "apiVersion": "2021-09-01-preview",
                "properties": {
                    "dataCollectionEndpointId": "[parameters('endpointResourceId')]",
                    "streamDeclarations": {
                        "Custom-MyTableRawData": {
                            "columns": [
                                {
                                    "name": "Time",
                                    "type": "datetime"
                                },
                                {
                                    "name": "Computer",
                                    "type": "string"
                                },
                                {
                                    "name": "AdditionalContext",
                                    "type": "string"
                                },
                                {
                                    "name": "CounterName",
                                    "type": "string"
                                },
                                {
                                    "name": "CounterValue",
                                    "type": "real"
                                }
                            ]
                        }
                    },
                    "destinations": {
                        "logAnalytics": [
                            {
                                "workspaceResourceId": "[parameters('workspaceResourceId')]",
                                "name": "myworkspace"
                            }
                        ]
                    },
                    "dataFlows": [
                        {
                            "streams": [
                                "Custom-MyTableRawData"
                            ],
                            "destinations": [
                                "myworkspace"
                            ],
                            "transformKql": "source | extend jsonContext = parse_json(AdditionalContext) | project TimeGenerated = Time, Computer, AdditionalContext = jsonContext, CounterName=tostring(jsonContext.CounterName), CounterValue=toreal(jsonContext.CounterValue)",
                            "outputStream": "Custom-MyTable_CL"
                        }
                    ]
                }
            }
        ],
        "outputs": {
            "dataCollectionRuleId": {
                "type": "string",
                "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
            }
        }
    }
    
  4. Özel dağıtım ekranında, DCR'yi depolamak için bir Abonelik ve Kaynak grubu belirtin. Ardından şablonda tanımlanan değerleri sağlayın. Değerler, önceki adımda topladığınız DCR için bir Ad ve Çalışma Alanı Kaynak Kimliği'ni içerir. Konum, çalışma alanıyla aynı konum olmalıdır. Bölge zaten doldurulur ve DCR'nin konumu için kullanılır.

    Özel dağıtım değerlerini düzenlemeyi gösteren ekran görüntüsü.

  5. Gözden geçir + oluştur'u ve ardından ayrıntıları gözden geçirdikten sonra Oluştur'u seçin.

  6. Dağıtım tamamlandığında Dağıtım ayrıntıları kutusunu genişletin ve ayrıntılarını görüntülemek için DCR'nizi seçin. JSON Görünümü'nü seçin.

    DCR ayrıntılarını gösteren ekran görüntüsü.

  7. DCR için Sabit Kimliği kopyalayın. Api kullanarak örnek veriler gönderirken sonraki bir adımda kullanacaksınız.

    DCR JSON görünümünü gösteren ekran görüntüsü.

    Not

    DCR bu özelliklerle başarıyla oluşturulmuş olsa bile DCR'nin dönüştürme gibi tüm özellikleri Azure portalında görüntülenmeyebilir.

DCR'ye izin atama

DCR oluşturulduktan sonra uygulamaya izin verilmesi gerekir. İzin, doğru uygulama kimliğini ve uygulama anahtarını kullanan tüm uygulamaların yeni DCE ve DCR'ye veri göndermesine izin verir.

  1. Azure portalındaki DCR'den Erişim Denetimi (IAM)Rol ataması ekle'yi> seçin.

    DCR'ye özel rol ataması eklemeyi gösteren ekran görüntüsü.

  2. İzleme Ölçümleri Yayımcısı'nın ardından İleri'yi seçin. Bunun yerine veri eylemiyle Microsoft.Insights/Telemetry/Write özel bir eylem oluşturabilirsiniz.

    DCR rol ataması için rol seçmeyi gösteren ekran görüntüsü.

  3. Erişim ata için Kullanıcı, grup veya hizmet sorumlusu'na tıklayın ve Ardından Üye seç'e tıklayın. Oluşturduğunuz uygulamayı seçin ve Seç'i seçin.

    DCR rol ataması için üyeleri seçmeyi gösteren ekran görüntüsü.

  4. Rol atamanızı kaydetmeden önce Gözden geçir + ata'yı seçin ve ayrıntıları doğrulayın.

    DCR rol atamasının kaydedilmesini gösteren ekran görüntüsü.

Örnek kod

Bu öğreticide oluşturulan bileşenleri kullanarak örnek kod için Günlük alımı API'sini kullanarak Azure İzleyici'ye veri göndermek için örnek kod bölümüne bakın.

Sonraki adımlar