Öğretici: Olayları Azure Event Hubs'dan Azure İzleyici Günlüklerine alma (Genel Önizleme)

Azure Event Hubs , Azure ve dış hizmetler tarafından alınabilecek birden çok kaynaktan olay toplayan büyük bir veri akışı platformudur. Bu makalede, verileri doğrudan bir olay hub'ından Log Analytics çalışma alanına alma işlemi açıklanmaktadır.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Log Analytics çalışma alanınızda olay hub'ı verileri için hedef tablo oluşturma
  • Veri toplama uç noktası oluşturma
  • Veri toplama kuralı oluşturma
  • Olay hub'ına veri toplama kuralı izinleri verme
  • Veri toplama kuralını olay hub'ı ile ilişkilendirme

Ön koşullar

Azure Event Hubs'tan Azure İzleyici Günlüklerine olay göndermek için, hepsi aynı bölgede bulunan bu kaynaklara ihtiyacınız vardır:

Desteklenen bölgeler

Azure İzleyici şu anda şu bölgelerde Event Hubs'dan alımı desteklemektedir:

Kuzey ve Güney Amerika Avrupa Orta Doğu Afrika Asya Pasifik
Güney Brezilya Orta Fransa Kuzey BAE Güney Afrika Kuzey Orta Avustralya
Güneydoğu Brezilya Kuzey Avrupa Doğu Avustralya
Orta Kanada Doğu Norveç Güneydoğu Avustralya
Doğu Kanada İsviçre Kuzey Orta Hindistan
Doğu ABD Batı İsviçre Doğu Asya
Doğu ABD 2 Güney Birleşik Krallık Doğu Japonya
Orta Güney ABD Batı Birleşik Krallık Jio Hindistan Batı
Batı ABD West Europe Güney Kore - Orta
Batı ABD 3 Güneydoğu Asya

Gerekli bilgileri toplama

Sonraki adımlarda abonelik kimliğiniz, kaynak grubu adınız, çalışma alanı adınız, çalışma alanı kaynak kimliğiniz ve olay hub'ı örneği kaynak kimliğiniz gerekir:

  1. Log Analytics çalışma alanları menüsünde çalışma alanınıza gidin ve Özellikler'iseçip Abonelik Kimliğinizi, Kaynak grubunuzu ve Çalışma Alanı adınızı kopyalayın. Bu öğreticide kaynak oluşturmak için bu ayrıntılara ihtiyacınız olacaktır.

    Screenshot showing Log Analytics workspace overview screen with subscription ID, resource group name, and workspace name highlighted.

  2. Kaynak JSON ekranını açmak ve çalışma alanının Kaynak Kimliğini kopyalamak için JSON'ı seçin. Veri toplama kuralı oluşturmak için çalışma alanı kaynak kimliğine ihtiyacınız olacaktır.

    Screenshot showing the Resource JSON screen with the workspace resource ID highlighted.

  3. Olay hub'ı örneğinize gidin, Kaynak JSON ekranını açmak için JSON'ı seçin ve olay hub'ı örneğinin Kaynak Kimliğini kopyalayın. Veri toplama kuralını olay hub'ı ile ilişkilendirmek için olay hub'ı örneğinin kaynak kimliği gerekir.

    Screenshot showing the Resource JSON screen with the event hub resource ID highlighted.

Log Analytics çalışma alanınızda hedef tablo oluşturma

Verileri alabilmeniz için önce bir hedef tablo ayarlamanız gerekir. Verileri özel tablolara ve desteklenen Azure tablolarına alabilirsiniz.

Olayları almak için Azure portalında özel bir tablo oluşturmak için:

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

    Screenshot showing how to open Cloud Shell.

  2. Tabloyu oluşturmak için bu PowerShell komutunu çalıştırın, JSON'da tablo adını (<table_name>özel tablo söz konusu olduğunda son ek _CL) sağlayın ve komutta Invoke-AzRestMethod -Path , <resource_group_name>, <workspace_name>ve <table_name> değerlerini ayarlayın<subscription_id>:

    $tableParams = @'
    {
        "properties": {
            "schema": {
                "name": "<table_name>",
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime",
                        "description": "The time at which the data was ingested."
                    },
                    {
                        "name": "RawData",
                        "type": "string",
                        "description": "Body of the event."
                    },
                    {
                        "name": "Properties",
                        "type": "dynamic",
                        "description": "Additional message properties."
                    }
                ]
            }
        }
    }
    '@
    
    Invoke-AzRestMethod -Path "/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/microsoft.operationalinsights/workspaces/<workspace_name>/tables/<table_name>?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
    

Önemli

  • Sütun adları bir harfle başlamalıdır ve en fazla 45 alfasayısal karakterden ve alt çizgiden (_ oluşabilir).
  • _ResourceId, id, _ResourceId, _SubscriptionId, , TenantId, Type, , UniqueIdve Title ayrılmış sütun adlarıdır.
  • Sütun adları büyük/küçük harfe duyarlıdır. Veri toplama kuralınızda doğru büyük/küçük harf kullandığınızdan emin olun.

Veri toplama uç noktası oluşturma

Veri toplama kuralıyla veri toplamak için bir veri toplama uç noktası gerekir:

  1. Veri toplama uç noktası oluşturma.

    Önemli

    Log Analytics çalışma alanınızla aynı bölgede veri toplama uç noktasını oluşturun.

  2. Veri toplama uç noktasının Genel Bakış ekranında JSON Görünümü'nü seçin.

    Screenshot that shows the data collection endpoint Overview screen.

  3. Veri toplama kuralı için Kaynak Kimliğini kopyalayın. Bu bilgileri sonraki adımda kullanacaksınız.

    Screenshot that shows the data collection endpoint JSON view.

Veri toplama kuralı oluşturma

Azure İzleyici, hangi verilerin toplanacağı, bu verilerin nasıl dönüştürüleceği ve verilerin nereye gönderileceği tanımlamak için veri toplama kurallarını kullanır.

Azure portalında veri toplama kuralı oluşturmak için:

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

    Screenshot to deploy custom template.

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

    Screenshot to build template in the editor.

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

    Screenshot to edit Resource Manager template.

    Aşağıdaki veri toplama kuralında aşağıdaki ayrıntılara dikkat edin:

    • identity- Kullanılacak yönetilen kimlik türünü tanımlar. Örneğimizde, sistem tarafından atanan kimliği kullanırız. Kullanıcı tarafından atanan yönetilen kimliği de yapılandırabilirsiniz.

    • dataCollectionEndpointId - Veri toplama uç noktasının kaynak kimliği.

    • streamDeclarations - Olay hub'ından alınacak verileri tanımlar (gelen veriler). Akış bildirimi değiştirilemez.

      • TimeGenerated - Verilerin olay hub'ından Azure İzleyici Günlüklerine alındığı saat.
      • RawData - Olayın gövdesi. Daha fazla bilgi için bkz . Olayları okuma.
      • Properties - Olaydaki kullanıcı özellikleri. Daha fazla bilgi için bkz . Olayları okuma.
    • datasources - Olay hub'ı tüketici grubunu ve verileri almak istediğiniz akışı belirtir.

    • destinations - Verilerin gönderileceği tüm hedefleri belirtir. Bir veya daha fazla Log Analytics çalışma alanına veri alabilirsiniz.

    • dataFlows - Akışı hedef çalışma alanıyla eşleştirir ve dönüştürme sorgusunu ve hedef tabloyu belirtir. Örneğimizde verileri daha önce oluşturduğumuz özel tabloya alıyoruz. Ayrıca desteklenen bir Azure tablosuna da alabilirsiniz.

    • transformKql - Çalışma alanına gönderilmeden önce gelen verilere uygulanacak dönüşümü (akış bildirimi) belirtir. Örneğimizde, gelen verileri özel olarak ilgili şemayla oluşturduğumuz özel bir tabloya eşlediğimiz için kaynaktaki verileri hiçbir şekilde değiştirmeyen olarak ayarlıyoruz transformKqlsource. Verileri farklı bir şemaya sahip bir tabloya almak veya veri alımından önce verileri filtrelemek için veri toplama dönüşümü tanımlayın.

    {
        "$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."
                }
            },
            "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."
                }
            },
            "tableName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the table in the workspace."
                }
            },
            "consumerGroup": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the consumer group of event hub."
                },
                "defaultValue": "$Default"
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionRules",
                "name": "[parameters('dataCollectionRuleName')]",
                "location": "[resourceGroup().location]", 
                "apiVersion": "2022-06-01",
                "identity": {
                                 "type": "systemAssigned"
                  },
                "properties": {
                    "dataCollectionEndpointId": "[parameters('endpointResourceId')]",
                    "streamDeclarations": {
                        "Custom-MyEventHubStream": {
                            "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    },
                    {
                        "name": "RawData",
                        "type": "string"
                    },
                    {
                        "name": "Properties",
                        "type": "dynamic"
                    }
                ]
                        }
                    },
                    "dataSources": {
                        "dataImports": {
                             "eventHub": {
                                        "consumerGroup": "[parameters('consumerGroup')]",
                                        "stream": "Custom-MyEventHubStream",
                                        "name": "myEventHubDataSource1"
                                                              }
                                               }
                   },
                    "destinations": {
                        "logAnalytics": [
                            {
                                "workspaceResourceId": "[parameters('workspaceResourceId')]",
                                "name": "MyDestination"
                            }
                        ]
                    },
                    "dataFlows": [
                        {
                            "streams": [
                                "Custom-MyEventHubStream"
                            ],
                            "destinations": [
                                "MyDestination"
                            ],
                            "transformKql": "source",
                            "outputStream": "[concat('Custom-', parameters('tableName'))]"
                        }
                    ]
                }
            }
        ]
    }
    
  4. Özel dağıtım ekranında, veri toplama kuralını depolamak için bir Abonelik ve Kaynak grubu belirtin ve şablonda tanımlanan parametreler için değerler sağlayın, örneğin:

    • Bölge - Veri toplama kuralı için bölge. Seçtiğiniz kaynak grubuna göre otomatik olarak doldurulur.
    • Veri Toplama Kuralı Adı - Kurala bir ad verin.
    • Çalışma Alanı Kaynak Kimliği - Bkz. Gerekli bilgileri toplama.
    • Uç Nokta Kaynak Kimliği - Veri toplama uç noktasını oluşturduğunuzda oluşturulur.
    • Tablo Adı - Hedef tablonun adı. Örneğimizde ve her özel tablo kullandığınızda, tablo adı _CL soneki ile bitmelidir. Bir Azure tablosuna veri almak istiyorsanız, soneki olmadan tablo adını (örneğin, Syslog ) girin.
    • Tüketici Grubu - Varsayılan olarak, tüketici grubu olarak $Defaultayarlanır. Gerekirse, değeri farklı bir olay hub'ı tüketici grubuyla değiştirin.

    Screenshot showing the Custom Template Deployment screen with the deployment values for the data collection rule set up in this tutorial.

  5. Gözden geçir + oluştur'u ve ardından ayrıntıları gözden geçirirken 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 veri toplama kuralınızı seçin. JSON Görünümü'nü seçin.

    Screenshot that shows the Data Collection Rule Overview screen.

  7. Veri toplama kuralı için Kaynak Kimliğini kopyalayın. Bu bilgileri sonraki adımda kullanacaksınız.

    Screenshot that shows the data collection rule JSON view.

Kullanıcı tarafından atanan yönetilen kimliği yapılandırma (isteğe bağlı)

Veri toplama kuralınızı kullanıcı tarafından atanan kimliği destekleyecek şekilde yapılandırmak için, yukarıdaki örnekte şunu değiştirin:

    "identity": {
                        "type": "systemAssigned"
        },

Yeni değer:

    "identity": {
            "type": "userAssigned",
            "userAssignedIdentities": {
                "<identity_resource_Id>": {
                }
            }
        },

Değeri bulmak <identity_resource_Id> için Azure portalında kullanıcı tarafından atanan yönetilen kimlik kaynağınıza gidin, JSON'u seçerek Kaynak JSON ekranını açın ve yönetilen kimliğin Kaynak Kimliğini kopyalayın.

Screenshot showing Resource JSON screen with the managed identity resource ID highlighted.

Azure tablosuna günlük verilerini alma (isteğe bağlı)

Desteklenen bir Azure tablosuna veri almak için:

  1. Veri toplama kuralında öğesini değiştirin outputStream:

    Kaynak: "outputStream": "[concat('Custom-', parameters('tableName'))]"

    Alıcı: "outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"

  2. içinde transformKql, alınan verileri hedef Azure tablosundaki hedef sütunlara gönderen bir dönüştürme tanımlayın.

Veri toplama kuralına olay hub'ı izni verme

Yönetilen kimlikle, herhangi bir olay hub'ına veya Event Hubs ad alanına, oluşturduğunuz veri toplama kuralına ve veri toplama uç noktasına olay gönderme izni verebilirsiniz. Event Hubs ad alanına izinler verdiğinizde, ad alanındaki tüm olay hub'ları izinleri devralır.

  1. Azure portalındaki olay hub'ı veya Event Hubs ad alanından Erişim Denetimi (IAM)>Rol ataması ekle'yi seçin.

    Screenshot that shows the Access control screen for the data collection rule.

  2. Azure Event Hubs Veri Alıcısı'nın ardından İleri'yi seçin.

    Screenshot that shows the Add Role Assignment screen for the event hub with the Azure Event Hubs Data Receiver role highlighted.

  3. Erişim atama için Yönetilen kimlik'i seçin ve Üye seç'e tıklayın. Veri toplama kuralı'yı seçin, veri toplama kuralınızı ada göre arayın ve Seç'e tıklayın.

    Screenshot that shows how to assign access to managed identity.

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

    Screenshot that shows the Review and Assign tab of the Add Role Assignment screen.

Veri toplama kuralını olay hub'ı ile ilişkilendirme

Son adım, veri toplama kuralını olayları toplamak istediğiniz olay hub'ı ile ilişkilendirmektir.

Tek bir veri toplama kuralını aynı tüketici grubunu paylaşan ve verileri aynı akışa alan birden çok olay hub'ı ile ilişkilendirebilirsiniz. Alternatif olarak, her olay hub'ına benzersiz bir veri toplama kuralı ilişkilendirebilirsiniz.

Önemli

Bir olay hub'ından veri almak için olay hub'ına en az bir veri toplama kuralı ilişkilendirmeniz gerekir. Olay hub'ı ile ilgili tüm veri toplama kuralı ilişkilendirmelerini sildiğinizde, olay hub'ından veri alımını durdurursunuz.

Azure portalında veri toplama kuralı ilişkilendirmesi oluşturmak için:

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

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

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

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "eventHubResourceID": {
          "type": "string",
          "metadata": {
            "description": "Specifies the Azure resource ID of the event hub to use."
          }
        },
        "associationName": {
          "type": "string",
          "metadata": {
            "description": "The name of the association."
          }
        },
        "dataCollectionRuleID": {
          "type": "string",
          "metadata": {
            "description": "The resource ID of the data collection rule."
          }
        }
      },
      "resources": [
        {
          "type": "Microsoft.Insights/dataCollectionRuleAssociations",
          "apiVersion": "2021-09-01-preview",
          "scope": "[parameters('eventHubResourceId')]",
          "name": "[parameters('associationName')]",
          "properties": {
            "description": "Association of data collection rule. Deleting this association will break the data collection for this event hub.",
            "dataCollectionRuleId": "[parameters('dataCollectionRuleId')]"
          }
        }
      ]
    }
    
  4. Özel dağıtım ekranında, veri toplama kuralı ilişkilendirmesini depolamak için bir Abonelik ve Kaynak grubu belirtin ve şablonda tanımlanan parametreler için değerler sağlayın, örneğin:

    • Bölge - Seçtiğiniz kaynak grubuna göre otomatik olarak doldurulur.
    • Event Hub Örneği Kaynak Kimliği - Bkz. Gerekli bilgileri toplama.
    • İlişkilendirme Adı - İlişkilendirmeye bir ad verin.
    • Veri Toplama Kuralı Kimliği - Veri toplama kuralını oluşturduğunuzda oluşturulur.

    Screenshot showing the Custom Template Deployment screen with the deployment values for the data collection rule association set up in this tutorial.

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

Alınan olaylar için hedef tablonuzu denetleyin

Veri toplama kuralını olay hub'ınızla ilişkilendirdiğinize göre, Azure İzleyici Günlükleri bekletme süresi dolmamış olan tüm mevcut olayları ve tüm yeni olayları alır.

Alınan olaylar için hedef tablonuzu denetlemek için:

  1. Çalışma alanınıza gidin ve Günlükler'i seçin.

  2. Sorgu düzenleyicisinde basit bir sorgu yazın ve Çalıştır'ı seçin:

    <table_name>
    

    Olay hub'ınızdaki olayları görmeniz gerekir.

Screenshot showing the results of a simple query on a custom table. The results consist of events ingested from an event hub.

Kaynakları temizleme

Bu öğreticide aşağıdaki kaynakları oluşturdunuz:

  • Özel tablo
  • Veri toplama uç noktası
  • Veri toplama kuralı
  • Veri toplama kuralı ilişkilendirmesi

Bu kaynaklara hala ihtiyacınız olup olmadığını değerlendirin. İhtiyacınız olmayan kaynakları tek tek silin veya kaynak grubunu silerek bu kaynakların tümünü bir kerede silin. Çalışır durumda bıraktığınız kaynaklar size pahalıya mal olabilir.

Olay hub'ından veri alımını durdurmak için olay hub'ı ile ilgili tüm veri toplama kuralı ilişkilendirmelerini silin veya veri toplama kurallarını kendileri silin. Bu eylemler olay hub'ı denetim noktası oluşturmayı da sıfırlar.

Bilinen sorunlar ve sınırlamalar

Sonraki adımlar

Hakkında daha fazla bilgi edinin: