Aracılığıyla paylaş


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

Önkoşullar

Azure Event Hubs'tan Azure İzleyici Günlüklerine olay göndermek için şu 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 Norveç Doğu Güneydoğu Avustralya
Doğu Kanada Kuzey İsviçre 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

Veri Toplama Kuralı İlişkilendirmenizi (DCRA) Olay Hub'ı ile aynı bölgede oluşturmanız gerekir. Log Analytics çalışma alanı herhangi bir bölgede olabilir, ancak Veri Toplama Kuralı (DCR) ve Veri Toplama Uç Noktası (DCE) Log Analytics çalışma alanıyla aynı bölgede olmalıdır.

En düşük gecikme süresi için tüm kaynakların aynı bölgeye yerleştirilmesini öneririz.

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'i seç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.

    Abonelik kimliği, kaynak grubu adı ve çalışma alanı adının vurgulandığı Log Analytics çalışma alanına genel bakış ekranını gösteren ekran görüntüsü.

  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.

    Çalışma alanı kaynak kimliğinin vurgulandığı Kaynak JSON ekranını gösteren ekran görüntüsü.

  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.

    Olay hub'ı kaynak kimliğinin vurgulandığı Kaynak JSON ekranını gösteren ekran görüntüsü.

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.

    Cloud Shell'i açmayı gösteren ekran görüntüsü.

  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.

    Veri toplama uç noktasına Genel Bakış ekranını gösteren ekran görüntüsü.

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

    Veri toplama uç noktası JSON görünümünü gösteren ekran görüntüsü.

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.

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

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

    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'i seçin.

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

    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 transformKql source. 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.

    Bu öğreticide ayarlanan veri toplama kuralı için dağıtım değerlerini içeren Özel Şablon Dağıtımı ekranını gösteren ekran görüntüsü.

  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.

    Veri Toplama Kuralına Genel Bakış ekranını gösteren ekran görüntüsü.

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

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

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.

Yönetilen kimlik kaynak kimliğinin vurgulandığı Kaynak JSON ekranını gösteren ekran görüntüsü.

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.

    Veri toplama kuralı için Erişim denetim ekranını gösteren ekran görüntüsü.

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

    Azure Event Hubs Veri Alıcısı rolünün vurgulandığı olay hub'ı için Rol Ataması Ekle ekranını gösteren ekran görüntüsü.

  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.

    Yönetilen kimliğe erişim atamayı 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.

    Rol Ataması Ekle ekranının Gözden Geçir ve Ata sekmesini gösteren ekran görüntüsü.

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.

    Bu öğreticide ayarlanan veri toplama kuralı ilişkilendirmesi için dağıtım değerlerini içeren Özel Şablon Dağıtımı ekranını gösteren ekran görüntüsü.

  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

Azure İzleyici Günlükleri, DCRA oluşturma sırasında Olay Hub'ında var olan tüm olayları alır; bekletme sürelerinin dolmamış olması ve tüm yeni olaylar.

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.

Özel tablodaki basit bir sorgunun sonuçlarını gösteren ekran görüntüsü. Sonuçlar, bir olay hub'ından alınan olaylardan oluşur.

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: