Öğ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:

Öğ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.

  1. 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 ayarlarının ekran görüntüsü.

  2. 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.

    Yeni tanılama ayarının ekran görüntüsü.

  3. 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.

    Örnek günlük sorgularının ekran görüntüsü.

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.

  1. Azure portalında Cloud Shell düğmesine tıklayın ve ortamın PowerShell olarak ayarlandığından emin olun.

    Cloud Shell'i açma ekran görüntüsü.

  2. 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
    
  3. Kodu çalıştırmak için Cloud Shell istemine yapıştırın.

    Cloud Shell'de betiğin ekran görüntüsü.

  4. 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.

    Yeni sütunlu Log Analytics'in ekran görüntüsü.

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.

  1. 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.

  2. Tablonun içeriğini görüntülemek için aşağıdaki sorguyu LAQueryLogs çalıştırın. Sütunun içeriğine RequestContext 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
    

    Log Analytics'teki ilk sorgunun ekran görüntüsü.

  3. 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.

    Log Analytics'te değiştirilen sorgunun ekran görüntüsü.

  4. 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 = ''
    

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.

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

    Özel şablon dağıtma ekran görüntüsü.

  2. Düzenleyicide Kendi şablonunuzu oluşturun'a tıklayın.

    Düzenleyicide şablon oluşturmaya ilişkin ekran görüntüsü.

  3. 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.

    Resource Manager şablonunu düzenlemek için ekran görüntüsü.

    {
        "$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'))]"
            }
        }
    }
    
  4. Ö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.

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

  5. Gözden Geçir + oluştur'a ve ardından ayrıntıları gözden geçirirken Oluştur'a tıklayın.

  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 veri toplama kuralınıza tıklayın. JSON Görünümü'ne tıklayın.

    Veri toplama kuralı ayrıntılarının ekran görüntüsü.

  7. Veri toplama kuralı için Kaynak Kimliğini kopyalayın. Sonraki adımda bunu kullanacaksınız.

    Veri toplama kuralı JSON görünümünün ekran görüntüsü.

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.

  1. 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
    
  2. Kodu çalıştırmak için Cloud Shell istemine yapıştırın.

    Çalışma alanını DCR'ye bağlamak için betiğin ekran görüntüsü.

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 LAQueryLogskayı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.

Sonraki adımlar