Öğretici: Resource Manager şablonlarını kullanarak Azure İzleyici'ye çalışma alanı veri toplama kuralında dönüştürme ekleme
Bu öğretici, Resource Manager şablonlarını kullanarak çalışma alanı veri toplama kuralında örnek dönüştürme yapılandırmasında size yol gösterir. Azure İzleyici'deki dönüştürmeler , gelen verileri hedefine gönderilmeden önce filtrelemenize veya değiştirmenize olanak sağlar. Çalışma alanı dönüştürmeleri, henüz Azure İzleyici veri alımı işlem hattını kullanmayan iş akışları için alım süresi dönüştürmeleri için destek sağlar.
Çalışma alanı dönüştürmeleri, çalışma alanı için DCR adı verilen tek bir veri toplama kuralında (DCR) birlikte depolanır. Her dönüştürme belirli bir tabloyla ilişkilendirilir. Dönüştürme, DCR kullanmayan herhangi bir iş akışından bu tabloya gönderilen tüm verilere uygulanır.
Not
Bu öğreticide, çalışma alanı dönüşümünü yapılandırmak için Resource Manager şablonları ve REST API kullanılır. Bkz . Öğretici: Azure portalını kullanarak aynı öğretici için Azure portalını kullanarak Azure İzleyici'ye çalışma alanı veri toplama kuralında dönüştürme ekleme.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Log Analytics çalışma alanında bir tablo için çalışma alanı dönüştürmeyi yapılandırın.
- Alma zamanı dönüşümü için günlük sorgusu yazın.
Not
Bu öğreticide Azure İzleyici Tabloları API'sini ve Azure portalını kullanarak Resource Manager şablonlarını yüklemek üzere 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 bir yöntem kullanabilirsiniz.
Önkoşullar
Bu öğreticiyi tamamlamak için aşağıdakiler gerekir:
- En az katkıda bulunan haklarına sahip olduğunuz Log Analytics çalışma alanı.
- Çalışma alanında Veri Toplama Kuralı nesneleri oluşturma izinleri.
- Tabloda zaten bazı veriler olmalıdır.
- Tablo zaten çalışma alanı dönüştürme DCR'sine bağlanamıyor.
Öğreticiye genel bakış
Bu öğreticide, belirli kayıtları filtreleyerek tablonun depolama gereksinimini LAQueryLogs
azaltacaksınız. Ayrıca, bir veri parçasını özel bir sütunda depolamak için sütun verilerini ayrıştırırken sütunun içeriğini de kaldıracaksınız. LAQueryLogs tablosu, çalışma alanında günlük sorgusu denetimini etkinleştirdiğinizde oluşturulur, ancak bu yalnızca öğretici için örnek olarak kullanılır. Log Analytics çalışma alanında desteklenen herhangi bir tablo için dönüştürme oluşturmak için aynı temel işlemi kullanabilirsiniz.
Sorgu denetim günlüklerini etkinleştirme
Üzerinde çalışacağınız tabloyu oluşturmak LAQueryLogs
için çalışma alanınızda sorgu denetimini etkinleştirmeniz gerekir. Bu, tüm alım süresi dönüştürmeleri için gerekli değildir. Yalnızca bu örnek dönüşümün kullanacağı örnek verileri oluşturmaktır.
Azure portalındaki Log Analytics çalışma alanları menüsünde Tanılama ayarları'nı ve ardından Tanılama ayarı ekle'yi seçin.
Tanılama ayarı için bir ad sağlayın ve denetim verilerinin aynı çalışma alanında depolanması için çalışma alanını seçin. Denetim kategorisini seçin ve ardından Kaydet'e tıklayarak tanılama ayarını kaydedin ve tanılama ayarı sayfasını kapatın.
Günlükler'i seçin ve ardından bazı verileri doldurmak
LAQueryLogs
için bazı sorgular çalıştırın. Bu sorguların gerçekten veri döndürmesi gerekmez.
Tablo şemasını güncelleştirme
Dönüşümü oluşturabilmeniz için önce tabloda aşağıdaki iki değişikliğin yapılması gerekir:
- Çalışma alanı dönüşümü için tablonun etkinleştirilmesi gerekir. Dönüştürme, tablonun şemasını değiştirmese bile, dönüştürmesi olan tüm tablolarda bu gereklidir.
- Dönüştürme tarafından doldurulan tüm ek sütunlar tabloya eklenmelidir.
Tabloyu aşağıdaki PowerShell koduyla yapılandırmak için Tablolar - Güncelleştirme API'sini kullanın. API'nin çağrılması, özel sütunların tanımlanıp tanımlanmadığına bakılmaksızın çalışma alanı dönüştürmeleri için tabloyu etkinleştirir. Bu örnekte, dönüştürme sorgusuyla doldurulacak Resources_CF adlı özel bir sütun içerir.
Önemli
Yerleşik tabloya eklenen tüm özel sütunların _CF bitmesi gerekir. Özel tabloya eklenen sütunların (_CL ile biten bir ada sahip bir tablo) bu son eke sahip olması gerekmez.
Azure portalında Cloud Shell düğmesine tıklayın ve ortamın PowerShell olarak ayarlandığından emin olun.
Aşağıdaki PowerShell kodunu kopyalayın ve Path parametresini çalışma alanınızın ayrıntılarıyla değiştirin.
$tableParams = @' { "properties": { "schema": { "name": "LAQueryLogs", "columns": [ { "name": "Resources_CF", "description": "The list of resources, this query ran against", "type": "string", "isDefaultDisplay": true, "isHidden": false } ] } } } '@ Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/LAQueryLogs?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
Kodu çalıştırmak için Cloud Shell istemine yapıştırın.
Azure portalında Log Analytics çalışma alanı menüsüne giderek sütunun eklendiğini doğrulayabilirsiniz. Log Analytics'i açmak için Günlükler'i seçin ve sonra tabloyu genişleterek
LAQueryLogs
sütunlarını görüntüleyin.
Dönüştürme sorgusunu tanımlama
Veri toplama kuralına eklemeden önce dönüştürme sorgusunu test etmek için Log Analytics'i kullanın.
Azure portalındaki Log Analytics çalışma alanları menüsünde çalışma alanınızı açın ve Log Analytics'i açmak için Günlükler'i seçin.
Tablonun içeriğini görüntülemek için aşağıdaki sorguyu
LAQueryLogs
çalıştırın. Sütunun içeriğineRequestContext
dikkat edin. Dönüştürme, çalışma alanı adını bu sütundan alır ve içindeki verilerin geri kalanını kaldırır.LAQueryLogs | take 10
Sorguyu aşağıdaki şekilde değiştirin:
LAQueryLogs | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Workspace_CF = tostring(Context['workspaces'][0]) | project-away RequestContext, Context
Bu, aşağıdaki değişiklikleri yapar:
- Bu günlük girişleri kullanışlı olmadığından, alandan
LAQueryLogs
tasarruf etmek için tablonun kendisini sorgulamayla ilgili satırları bırakın. - Sorgulanan çalışma alanının adı için bir sütun ekleyin.
- Alandan tasarruf etmek için sütundaki
RequestContext
verileri kaldırın.
- Bu günlük girişleri kullanışlı olmadığından, alandan
Dönüştürmede kullanmak için sorguda aşağıdaki değişiklikleri yapın:
- Bu sorgunun veri kaynağı olarak bir tablo adı (
LAQueryLogs
bu örnekte) belirtmek yerine anahtar sözcüğünüsource
kullanın. Bu, her zaman bir dönüştürme sorgusundaki gelen verileri temsil eden bir sanal tablodur. - Dönüştürme sorguları tarafından desteklenmeyen işleçleri kaldırın. Desteklenen işleçlerin ayrıntılı listesi için bkz . Desteklenen KQL özellikleri .
- DCR JSON'a sığabilmesi için sorguyu tek bir satıra düzleştirme.
Aşağıda, bu değişikliklerden sonra dönüştürmede kullanacağınız sorgu yer alır:
source | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''
- Bu sorgunun veri kaynağı olarak bir tablo adı (
Veri toplama kuralı oluşturma (DCR)
Bu çalışma alanında ilk dönüşüm olduğundan, bir çalışma alanı dönüştürme DCR'sini oluşturmanız gerekir. Aynı çalışma alanında yer alan diğer tablolar için çalışma alanı dönüştürmeleri oluşturursanız, bunların aynı DCR'de depolanması gerekir.
Azure portalının arama kutusuna şablon yazın ve özel şablon dağıt'ı seçin.
Düzenleyicide Kendi şablonunuzu oluşturun'a tıklayın.
Aşağıdaki Resource Manager şablonunu düzenleyiciye yapıştırın ve kaydet'e tıklayın. Bu şablon DCR'yi tanımlar ve dönüştürme sorgusunu içerir. Parametreleri için değer toplanacağından bu şablonu değiştirmeniz gerekmez.
{ "$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", "defaultValue": "westus2", "allowedValues": [ "westus2", "eastus2", "eastus2euap" ], "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": "2021-09-01-preview", "kind": "WorkspaceTransforms", "properties": { "destinations": { "logAnalytics": [ { "workspaceResourceId": "[parameters('workspaceResourceId')]", "name": "clv2ws1" } ] }, "dataFlows": [ { "streams": [ "Microsoft-Table-LAQueryLogs" ], "destinations": [ "clv2ws1" ], "transformKql": "source |where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''" } ] } } ], "outputs": { "dataCollectionRuleId": { "type": "string", "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]" } } }
Özel dağıtım ekranında, veri toplama kuralını depolamak ve şablonda tanımlanan değerleri sağlamak için bir Abonelik ve Kaynak grubu belirtin. Buna veri toplama kuralı için bir Ad ve önceki adımda topladığınız Çalışma Alanı Kaynak Kimliği dahildir. Konum, çalışma alanıyla aynı konum olmalıdır. Bölge zaten doldurulur ve veri toplama kuralının konumu için kullanılır.
Gözden Geçir + oluştur'a ve ardından ayrıntıları gözden geçirirken Oluştur'a tıklayın.
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 veri toplama kuralınıza tıklayın. JSON Görünümü'ne tıklayın.
Veri toplama kuralı için Kaynak Kimliğini kopyalayın. Sonraki adımda bunu kullanacaksınız.
Çalışma alanını DCR'ye bağlama
Dönüşümü etkinleştirmenin son adımı, DCR'yi çalışma alanına bağlamaktır.
Önemli
Çalışma alanı yalnızca tek bir DCR'ye bağlanabilir ve bağlantılı DCR bu çalışma alanını hedef olarak içermelidir.
Tabloyu aşağıdaki PowerShell koduyla yapılandırmak için Çalışma Alanları - Güncelleştirme API'sini kullanın.
Cloud Shell'i yeniden açmak için Cloud Shell düğmesine tıklayın. Aşağıdaki PowerShell kodunu kopyalayın ve parametreleri çalışma alanınızın ve DCR'nizin değerleriyle değiştirin.
$defaultDcrParams = @' { "properties": { "defaultDataCollectionRuleResourceId": "/subscriptions/{subscription}/resourceGroups/{resourcegroup}/providers/Microsoft.Insights/dataCollectionRules/{DCR}" } } '@ Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}?api-version=2021-12-01-preview" -Method PATCH -payload $defaultDcrParams
Kodu çalıştırmak için Cloud Shell istemine yapıştırın.
Dönüştürmeyi test et
Dönüşümün etkili olması için yaklaşık 30 dakika bekleyin ve ardından tabloda bir sorgu çalıştırarak bunu test edebilirsiniz. Yalnızca dönüştürme uygulandıktan sonra tabloya gönderilen veriler etkilenir.
Bu öğreticide tabloya veri LAQueryLogs
göndermek için bazı örnek sorgular çalıştırın. Dönüştürmenin bu kayıtları filtrelediğini doğrulayabilmeniz için bazı sorgular LAQueryLogs
ekleyin. Çıktıda yeni Workspace_CF
sütun olduğuna ve için LAQueryLogs
kayıt bulunmadığına dikkat edin.
Sorun giderme
Bu bölümde, alabileceğiniz farklı hata koşulları ve bunların nasıl düzeltebileceği açıklanmaktadır.
Log Analytics'te IntelliSense tablodaki yeni sütunları tanımıyor
IntelliSense'i yönlendiren önbelleğin güncelleştirilmiş olması 24 saate kadar sürebilir.
Dinamik sütunda dönüştürme çalışmıyor
Şu anda dinamik sütunları etkileyen bilinen bir sorun vardır. Geçici bir geçici çözüm, bunlara karşı herhangi bir işlem gerçekleştirmeden önce kullanarak parse_json()
dinamik sütun verilerini açıkça ayrıştırmaktır.