Öğ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:
En az katkıda bulunan haklarına sahip olduğunuz Log Analytics çalışma alanı.
Log Analytics çalışma alanınızın ayrılmış bir kümeye bağlanması veya bir taahhüt katmanına sahip olması gerekir.
Genel ağ erişimine izin veren Event Hubs ad alanı . Genel ağ erişimi devre dışı bırakıldıysa, "Güvenilen Microsoft hizmetleri bu güvenlik duvarını atlamasına izin ver" seçeneğinin "Evet" olarak ayarlandığından emin olun.
Olaylar içeren olay hub'ı . Azure Event Hubs'da olay gönderme ve alma öğreticilerindeki adımları izleyerek veya Azure kaynaklarının tanılama ayarlarını yapılandırarak olay hub'ınıza olay gönderebilirsiniz.
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:
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.
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.
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.
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:
Cloud Shell düğmesini seçin ve ortamın PowerShell olarak ayarlandığından emin olun.
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 komuttaInvoke-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
, ,UniqueId
veTitle
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:
Veri toplama uç noktası oluşturma.
Önemli
Log Analytics çalışma alanınızla aynı bölgede veri toplama uç noktasını oluşturun.
Veri toplama uç noktasının Genel Bakış ekranında JSON Görünümü'nü seçin.
Veri toplama kuralı için Kaynak Kimliğini kopyalayın. Bu bilgileri sonraki adımda kullanacaksınız.
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:
Portalın arama kutusuna şablon yazın ve ardından Özel şablon dağıt'ı seçin.
Düzenleyicide kendi şablonunuzu oluşturun'u seçin.
Aşağıdaki Resource Manager şablonunu düzenleyiciye yapıştırın ve kaydet'i seçin.
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ıyoruztransformKql
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'))]" } ] } } ] }
Ö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
$Default
ayarlanır. Gerekirse, değeri farklı bir olay hub'ı tüketici grubuyla değiştirin.
Gözden geçir + oluştur'u ve ardından ayrıntıları gözden geçirirken Oluştur'u seçin.
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ı için Kaynak Kimliğini kopyalayın. Bu bilgileri sonraki adımda kullanacaksınız.
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.
Azure tablosuna günlük verilerini alma (isteğe bağlı)
Desteklenen bir Azure tablosuna veri almak için:
Veri toplama kuralında öğesini değiştirin
outputStream
:Kaynak:
"outputStream": "[concat('Custom-', parameters('tableName'))]"
Alıcı:
"outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"
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.
Azure portalındaki olay hub'ı veya Event Hubs ad alanından Erişim Denetimi (IAM)>Rol ataması ekle'yi seçin.
Azure Event Hubs Veri Alıcısı'nın ardından İleri'yi seçin.
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.
Rol atamanızı kaydetmeden önce Gözden geçir + ata'yı seçin ve ayrıntıları doğrulayın.
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:
Azure portalının arama kutusuna şablon yazın ve özel şablon dağıt'ı seçin.
Düzenleyicide kendi şablonunuzu oluşturun'u seçin.
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')]" } } ] }
Ö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.
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:
Çalışma alanınıza gidin ve Günlükler'i seçin.
Sorgu düzenleyicisinde basit bir sorgu yazın ve Çalıştır'ı seçin:
<table_name>
Olay hub'ınızdaki olayları görmeniz gerekir.
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
- Bir aboneliği Microsoft Entra dizinleri arasında aktarırsanız, verileri almaya devam etmek için Azure kaynakları için yönetilen kimliklerle ilgili bilinen sorunlar bölümünde açıklanan adımları izlemeniz gerekir.
- Event Hubs'tan Azure İzleyici Günlüklerine 64 KB'a kadar ileti alabilirsiniz.
Sonraki adımlar
Hakkında daha fazla bilgi edinin:
- Özel tablo oluşturma.
- Veri toplama uç noktası oluşturma.
- Mevcut bir veri toplama kuralını güncelleştirin.