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 Monitor şu anda şu bölgelerde Event Hubs'tan alımı desteklemektedir:

Amerikalar 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 Batı Avrupa 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'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.

    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.

Azure portalında olayları almak için özelleştirilebilir bir tablo oluşturun.

  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 <subscription_id> , <resource_group_name>, <workspace_name>ve <table_name> değerlerini ayarlayınInvoke-AzRestMethod -Path:

    $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 şablonu 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 - Etkinliğin içeriği. Daha fazla bilgi için bkz Etkinlikleri Okuma.
      • Properties - Olaydaki kullanıcı özellikleri. Daha fazla bilgi için bkz Etkinlikleri Okuma.
    • datasources - Olay merkezi tüketici grubunu ve verileri aldığınız 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 veri ekleyebilir veya yükleyebilirsiniz.

    • transformKql - Çalışma alanına gönderilmeden önce gelen verilere uygulanacak dönüşümü (akış bildirimi) belirtir. Örneğimizde, transformKql öğesini source olarak ayarlıyoruz, bu da gelen verileri özel olarak oluşturduğumuz şemaya uygun bir tabloya eşlediğimiz için kaynaktaki verileri hiçbir şekilde değiştirmez. 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 tabloyu kullandığınızda, tabloların 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 grubuna 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"
        },

ile

    "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 outputStream öğesini şu şekilde değiştirin:

    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'ına izin ver.

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'ından veya Event Hubs ad alanından Erişim Denetimi (IAM) seçeneğine gidin ve >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ı seçeneğini seçin ve İleri'yi tıklayın.

    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. Gözden geçir ve ata seçeneğini seçip rol atamanızı kaydetmeden önce 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 ardından Özel bir şablon dağıt seçeneğini 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şturulduğunda, eğer saklama süreleri dolmamışsa, Olay Hub'ında mevcut olan tüm 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.

Ö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ı silin. Bu eylemler ayrıca olay merkezinde kontrol noktası sıfırlamayı gerçekleştirir.

Bilinen sorunlar ve sınırlamalar

Sonraki adımlar

Hakkında daha fazla bilgi edinin: