Öğ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:
- API'de kimlik doğrulaması yapmak için bir Microsoft Entra uygulaması oluşturun.
- Log Analytics çalışma alanında özel tablo oluşturma. Bu, veri gönderileceği tablodur.
- Verileri hedef tabloya yönlendirmek için bir veri toplama kuralı (DCR) oluşturun.
- Microsoft Entra uygulamasına DCR erişimi verin.
- 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.
Not
Bu makale, DCR alma uç noktasını veya veri toplama uç noktasını (DCE) kullanma seçeneklerini içerir. Bunlardan birini kullanabilirsiniz, ancak özel bağlantı kullanılıyorsa Günlük alımı API'si ile DCE gerekir. Bkz. DCE ne zaman gereklidir?.
Önkoşullar
Bu öğreticiyi tamamlamak için aşağıdakiler gerekir:
- En az katkıda bulunan haklarına sahip olduğunuz bir Log Analytics çalışma alanı.
- Çalışma alanında DCR nesneleri oluşturma izinleri.
Ç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.
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.
Azure portalındaki Microsoft Entra Id menüsünde Uygulama kayıtları> Yeni kayıt'ı seçin.
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.
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.
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.
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.
Veri toplama uç noktası oluşturma
DCR alma uç noktasını kullanıyorsanız DCE gerekli değildir.
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
, type
ve 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
, , guid
ve 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 _CL
kullanılmalıdır.
Azure portalında Cloud Shell düğmesini seçin ve ortamın PowerShell olarak ayarlandığından emin olun.
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
Azure portalının arama kutusuna şablon yazın ve ardından Özel şablon dağıt'ı seçin.
Düzenleyicide kendi şablonunuzu oluşturun'u seçin.
Aşağıdaki ARM şablonunu düzenleyiciye yapıştırın ve kaydet'i seçin.
Bu şablonda tanımlanan DCR'de aşağıdaki ayrıntılara dikkat edin:
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-08-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." } } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRules", "name": "[parameters('dataCollectionRuleName')]", "location": "[parameters('location')]", "apiVersion": "2023-03-11", "kind": "Direct", "properties": { "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'))]" } } }
Ö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.
Gözden geçir + oluştur'u ve ardından ayrıntıları gözden geçirdikten sonra Oluştur'u seçin.
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 için Sabit Kimlik ve Günlük alımı URI'sini kopyalayın. Api'yi kullanarak Azure İzleyici'ye veri gönderirken bunları kullanacaksınız.
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 DCR'ye veri göndermesine izin verir.
Azure portalındaki DCR'den Erişim Denetimi (IAM)Rol ataması ekle'yi> seçin.
İ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.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.
Rol atamanızı kaydetmeden önce Gözden geçir + ata'yı seçin ve ayrıntıları doğrulayın.
Ö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.