Azure Tanılama'yı kullanarak Windows toplama

Bir Azure veri kümesi Service Fabric, merkezi bir konumdaki tüm düğümlerden günlükleri toplamak iyi bir fikirdir. Günlüklerin merkezi bir konuma tutulması, kümenizin sorunlarını veya bu kümede çalışan uygulama ve hizmetlerde bulunan sorunları çözümlemenize ve gidermenize yardımcı olur.

Günlükleri karşıya yüklemenin ve toplamanın bir yolu, günlükleri Azure Depolama'a yüklayan ve ayrıca günlükleri Azure Application Analizler veya Event Hub'lara gönderme seçeneğine sahip olan Windows Azure Diagnostics (WAD) uzantısını kullanmaktır. Ayrıca, depolamadan gelen olayları okumak ve bunları Azure Monitör günlükleri veya başka bir günlük ayrıştırma çözümü gibi bir çözümleme platformu ürününe yer açmak için de dış işlemi kullanabilirsiniz.

Not

Bu makalede, Azure'la etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülüyle çalışmaya başlamak için bkz. Azure PowerShell. Az PowerShell modülüne nasıl geçirilir hakkında bilgi edinmek için bkz. AzureRM Azure PowerShell Az'a geçirme.

Önkoşullar

Bu makalede aşağıdaki araçlar kullanılır:

Service Fabric platform etkinlikleri

Service Fabric birkaç hazır günlük kanalı ayarlar ve bunlarda aşağıdaki kanalların izleme ve tanılama verilerini bir depolama tablosuna veya başka bir yere göndermek üzere uzantıyla önceden yapılandırılmış olduğunu gösterir:

Tanılama uzantısını portal aracılığıyla dağıtma

Günlükleri toplamanın ilk adımı, Tanılama uzantısını hedef kümedeki sanal makine ölçeği kümesi düğümlerine Service Fabric. Tanılama uzantısı her VM'deki günlükleri toplar ve bunları sizin belirttiğiniz depolama hesabına yükler. Aşağıdaki adımlarda, Azure portalı ve Azure Kaynak Yöneticisi şablonları aracılığıyla yeni ve var olan kümeler için bunu nasıl gerçekleştirebilirsiniz?

Azure portal aracılığıyla küme oluşturma işlemi kapsamında Tanılama uzantısını dağıtma

Kümenizi oluştururken, küme yapılandırma adımlarında isteğe bağlı ayarları genişletin ve Tanılama'nın On olarak (varsayılan ayar) ayarlanmış olduğundan emin olun.

Küme oluşturma portalında Azure Tanılama ayarları

Son adımda Oluştur'a tıklamadan önce şablonu indirmenizi kesinlikle öneririz. Ayrıntılar için Azure Kaynak Yöneticisi şablonunu Service Fabric küme oluşturma . Kanallardan veri toplanacak kanallarda (yukarıda listelenen) değişiklikler yapmak için bu şablona ihtiyacınız vardır.

Küme Şablonu

Azure Depolama'daki olayları bir Depolama, öngörüler elde etmek ve bunları Azure Monitör günlükler portalında sorgulamak için Azure Monitör günlüklerini ayarlayın

Not

Şu anda tablolara gönderilen olayları filtrelemenin veya tımarmanın hiçbir yolu yoktur. Tablodan olayları kaldırmak için bir işlem uygulaymayacaksanız tablo büyümeye devam eder (varsayılan başlık 50 GB'tır). Bunu değiştirme yönergeleri, bu makalenin sonraki makalesinde daha ayrıntılı olarak verilmiştir. Buna ek olarak, Watch yönelikörnekte çalışan bir veri tımarlama hizmeti örneği vardır ve günlükleri 30 veya 90 günlük zaman çerçevesi dışında depolamanız için iyi bir neden yoksa, kendiniz için de bir tane yazmanız önerilir.

Azure Kaynak Yöneticisi aracılığıyla Tanılama uzantısını dağıtma

Tanılama uzantısıyla küme oluşturma

Kaynak Yöneticisi'ni kullanarak küme oluşturmak için Tanılama yapılandırması JSON'u tam Kaynak Yöneticisi şablonuna eklemeniz gerekir. Kaynak Yöneticisi şablon örneklerimizin bir parçası olarak Tanılama yapılandırmasının ekli olduğu, örnek bir beş VM kümeli Kaynak Yöneticisi şablonu sağlaruz. Azure Örnekleri galerisinde şu konumda bulabilirsiniz: Tanılama Kaynak Yöneticisi şablonu örneğiyle beş düğümlü küme.

Kaynak Yöneticisi şablonunda Tanılama ayarını görmek için azuredeploy.json dosyasını açın ve IaaSDiagnostics dosyasını arayın. Bu şablonu kullanarak küme oluşturmak için, önceki bağlantıda bulunan Azure'a Dağıt düğmesini seçin.

Alternatif olarak, Kaynak Yöneticisi örneğini indirebilir, üzerinde değişiklikler yapabilirsiniz ve değiştirme penceresindeki komutu kullanarak değiştirilmiş şablonla New-AzResourceGroupDeployment bir küme Azure PowerShell oluşturabilirsiniz. Komuta geçmekte olduğunuz parametreler için aşağıdaki koda bakın. PowerShell kullanarak kaynak grubunun dağıtımı hakkında ayrıntılı bilgi için, Azure Kaynak Yöneticisi şablonuyla kaynak grubunu dağıtma makalesine bakın.

Tanılama uzantısını var olan bir kümeye ekleme

Tanılama dağıtıldıktan başka bir kümeniz varsa, bunu küme şablonu aracılığıyla ekleyebilir veya güncelleştirebilirsiniz. Var olan kümeyi oluşturmak veya şablonu portaldan indirmek için kullanılan Kaynak Yöneticisi şablonunu daha önce açıklandığı gibi değiştirebilirsiniz. Template.json dosyasını değiştirmek için aşağıdaki görevleri gerçekleştirin:

Kaynaklar bölümüne ekleyerek şablona yeni bir depolama kaynağı ekleyin.

{
	"apiVersion": "2018-07-01",
	"type": "Microsoft.Storage/storageAccounts",
	"name": "[parameters('applicationDiagnosticsStorageAccountName')]",
	"location": "[parameters('computeLocation')]",
	"sku": {
	"name": "[parameters('applicationDiagnosticsStorageAccountType')]"
	"tier": "standard"
  },
	"tags": {
	"resourceType": "Service Fabric",
	"clusterName": "[parameters('clusterName')]"
  }
},

Ardından, arasında depolama hesabı tanımlarından hemen sonra parametreler bölümüne supportLogStorageAccountName ekleyin. Buraya, yer tutucu metin depolama hesabı adını girin ve istediğiniz depolama hesabının adını yazın.

    "applicationDiagnosticsStorageAccountType": {
      "type": "string",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS"
      ],
      "defaultValue": "Standard_LRS",
      "metadata": {
        "description": "Replication option for the application diagnostics storage account"
      }
    },
    "applicationDiagnosticsStorageAccountName": {
      "type": "string",
      "defaultValue": "**STORAGE ACCOUNT NAME GOES HERE**",
      "metadata": {
        "description": "Name for the storage account that contains application diagnostics data from the cluster"
      }
    },

Ardından, VirtualMachineProfile uzantılar dizisine aşağıdaki kodu ekleyerek template.json dosyasının bölümünü güncelleştirin. Nereye ekli olduğuna bağlı olarak, başına veya sonuna virgül eklemeniz gerekir.

{
    "name": "[concat(parameters('vmNodeType0Name'),'_Microsoft.Insights.VMDiagnosticsSettings')]",
    "properties": {
        "type": "IaaSDiagnostics",
        "autoUpgradeMinorVersion": true,
        "protectedSettings": {
        "storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]",
        "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]",
        "storageAccountEndPoint": "https://core.windows.net/"
        },
        "publisher": "Microsoft.Azure.Diagnostics",
        "settings": {
        "WadCfg": {
            "DiagnosticMonitorConfiguration": {
            "overallQuotaInMB": "50000",
            "EtwProviders": {
                "EtwEventSourceProviderConfiguration": [
                {
                    "provider": "Microsoft-ServiceFabric-Actors",
                    "scheduledTransferKeywordFilter": "1",
                    "scheduledTransferPeriod": "PT5M",
                    "DefaultEvents": {
                    "eventDestination": "ServiceFabricReliableActorEventTable"
                    }
                },
                {
                    "provider": "Microsoft-ServiceFabric-Services",
                    "scheduledTransferPeriod": "PT5M",
                    "DefaultEvents": {
                    "eventDestination": "ServiceFabricReliableServiceEventTable"
                    }
                }
                ],
                "EtwManifestProviderConfiguration": [
                {
                    "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
                    "scheduledTransferLogLevelFilter": "Information",
                    "scheduledTransferKeywordFilter": "4611686018427387904",
                    "scheduledTransferPeriod": "PT5M",
                    "DefaultEvents": {
                    "eventDestination": "ServiceFabricSystemEventTable"
                    }
                },
                {
                    "provider": "02d06793-efeb-48c8-8f7f-09713309a810",
                    "scheduledTransferLogLevelFilter": "Information",
                    "scheduledTransferKeywordFilter": "4611686018427387904",
                    "scheduledTransferPeriod": "PT5M",
                    "DefaultEvents": {
                    "eventDestination": "ServiceFabricSystemEventTable"
                    }
                }
                ]
            }
            }
        },
        "StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]"
        },
        "typeHandlerVersion": "1.5"
    }
}

Template.json dosyasını açıklandığı gibi değiştirdikten sonra, Kaynak Yöneticisi şablonunu yeniden yayımlarsınız. Şablon dışarı aktarıldısa, çalışma deploy.ps1 şablonu yeniden yayımlar. Dağıttıktan sonra ProvisioningState başarılıolduğundan emin olur.

İpucu

Kapsayıcıları kümenize dağıtacaksanız, WAD'nin bunu WadCfg DiagnosticMonitorConfiguration bölümüne ekleyerek docker istatistiklerini toplamasını etkinleştirin.

"DockerSources": {
    "Stats": {
        "enabled": true,
        "sampleRate": "PT1M"
    }
},

Depolama kotasını güncelleştirme

Uzantıyla doldurulan tablolar kota alınana kadar arttıkça, kota boyutunu azaltmayı düşünebilirsiniz. Varsayılan değer 50 GB'tır ve overallQuotaInMBDiagnosticMonitorConfiguration

"overallQuotaInMB": "50000",

Günlük toplama yapılandırmaları

Diğer kanallardan gelen günlükler de koleksiyon için kullanılabilir; Azure'da çalışan kümeler için şablonda oluşturabilirsiniz en yaygın yapılandırmalardan bazıları burada ve sağlanmaktadır.

  • İşlem Kanalı - Temel: Varsayılan olarak, Service Fabric ve küme tarafından gerçekleştirilen üst düzey işlemler etkindir. Örneğin, yakında gelecek bir düğüm, dağıtılacak yeni bir uygulama veya yükseltme geri alma gibi etkinlikler de buna dahil olur. Etkinliklerin listesi için İşlem Kanalı Etkinlikleri 'ne bakın.
      scheduledTransferKeywordFilter: "4611686018427387904"
  • İşlem Kanalı - Ayrıntılı: Bu, durum raporlarını ve yük dengeleme kararlarını ve ayrıca temel işlem kanalında yer alan her şeyi içerir. Bu olaylar, ReportPartitionHealth veya ReportLoad gibi sistem durumu veya yükleme raporlama API'leri kullanılarak sistem ya da kodunuz tarafından oluşturulur. Bu olayları Visual Studio Görüntüleyicisi'nin Tanılama Olay Görüntüleyicisi'nde görüntülemek için ETW sağlayıcıları listesine "Microsoft-ServiceFabric:4:0x4000000000000008" ekleyin.
      scheduledTransferKeywordFilter: "4611686018427387912"
  • Veri ve Mesajlaşma Kanalı - Temel: Ayrıntılı işlem kanalı günlüklerine ek olarak, iletide (şu anda yalnızca ReverseProxy) ve veri yolu üzerinde oluşturulan kritik günlükler ve olaylar. Bu olaylar, ReverseProxy'de hataların ve diğer kritik sorunların yanı sıra işlenen isteklerin işlenmesini talep ediyor. Bu, kapsamlı günlük kaydı için önerimizdir. Bu olayları Visual Studio Olay Görüntüleyicisi'nde görüntülemek için ETW sağlayıcıları listesine "Microsoft-ServiceFabric:4:0x4000000000000010" ekleyin.
      scheduledTransferKeywordFilter: "4611686018427387928"
  • Veri Mesajlaşma Kanalı - Ayrıntılı: Küme içinde veri ve mesajlaşmadan gelen tüm kritik olmayan günlükleri ve ayrıntılı işlem kanalını içeren & ayrıntılı kanal. Tüm ters proxy olaylarının ayrıntılı sorun gidermesi için, ters proxy tanılama kılavuzuna bakın. Bu olayları Visual Studio Tanılama Olayı görüntüleyicisinde görüntülemek için ETW sağlayıcıları listesine "Microsoft-ServiceFabric:4:0x4000000000000020" ekleyin.
      scheduledTransferKeywordFilter: "4611686018427387944"

Not

Bu kanalda çok yüksek hacimli etkinlikler vardır ve bu ayrıntılı kanaldan etkinlik koleksiyonunun etkinleştirilmesi, hızlı şekilde birçok izlemenin üretilmesine neden olur ve depolama kapasitesi tüketir. Bu sadece kesinlikle gerekli olduğu zaman aç.

En az gürültüyle kapsamlı günlük kaydı için önerimiz Temel İşlem Kanalını etkinleştirmek için, şablon şablonlarınız içinde aşağıdaki gibi WadCfg olur:

  "WadCfg": {
        "DiagnosticMonitorConfiguration": {
          "overallQuotaInMB": "50000",
          "EtwProviders": {
            "EtwEventSourceProviderConfiguration": [
              {
                "provider": "Microsoft-ServiceFabric-Actors",
                "scheduledTransferKeywordFilter": "1",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                  "eventDestination": "ServiceFabricReliableActorEventTable"
                }
              },
              {
                "provider": "Microsoft-ServiceFabric-Services",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                  "eventDestination": "ServiceFabricReliableServiceEventTable"
                }
              }
            ],
            "EtwManifestProviderConfiguration": [
              {
                "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
                "scheduledTransferLogLevelFilter": "Information",
                "scheduledTransferKeywordFilter": "4611686018427387904",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                  "eventDestination": "ServiceFabricSystemEventTable"
                }
              },
              {
                "provider": "02d06793-efeb-48c8-8f7f-09713309a810",
                "scheduledTransferLogLevelFilter": "Information",
                "scheduledTransferKeywordFilter": "4611686018427387904",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                "eventDestination": "ServiceFabricSystemEventTable"
                }
              }
            ]
          }
        }
      },

Yeni EtkinlikKaynağı kanallarından toplama

Tanılama'yı güncelleştirmek ve dağıtmak üzere olan yeni bir uygulamayı temsil eden EventSource kanallarından günlükler toplamak için, var olan küme için Tanılama'nın kurulumunda daha önce açıklanan adımları uygulayın.

PowerShell komutunu kullanarak yapılandırma güncelleştirmesini uygulamadan önce, template.json dosyasındaki bölümü güncelleştirerek yeni EtwEventSourceProviderConfiguration EventSource kanallarına New-AzResourceGroupDeployment girişler ekleyin. Olay kaynağının adı, kaynakta oluşturulan ServiceEventSource.cs Visual Studio kodunuzun bir parçası olarak tanımlanır.

Örneğin, olay kaynağınız Etkinliğimkaynağı olarak adlandırıldısa, My-Eventsource tablosundan etkinlikleri, MyDestinationTableName adlı bir tabloya yer vermek için aşağıdaki kodu ekleyin.

        {
            "provider": "My-Eventsource",
            "scheduledTransferPeriod": "PT5M",
            "DefaultEvents": {
            "eventDestination": "MyDestinationTableName"
            }
        }

Performans sayaçlarını veya olay günlüklerini toplamak için, Azure Kaynak Yöneticisi şablonu kullanarak izleme ve tanılama ile Windows sanal makine oluşturma'da sağlanan örnekleri kullanarak Kaynak Yöneticisi şablonunu kullanın. Ardından, Kaynak Yöneticisi şablonunu yeniden yayımla.

Performans Sayaçlarını Toplama

Kümeden performans ölçülerini toplamak için, performans sayaçlarını kümenizin Kaynak Yöneticisi şablonunda "WadCfg > DiagnosticMonitorConfiguration" alanınıza ekleyin. Belirli performans sayaçlarını toplamak için değiştirme adımları için bkz. WAD ile performans izleme. Toplama Service Fabric performans sayaçları listesi için başvuru: Performans Sayaçları.

Aşağıdaki bölümde açıklandığı gibi Bir Uygulama Analizler slanı kullanıyorsanız ve bu ölçümlerin Uygulama Analizler'te göstermelerini istiyorsanız, yukarıda gösterildiği gibi"özel adı" bölümüne eklemeye devam edin. Bu, uygulama kaynağınız için ayrı ayrı yapılandırılmış performans sayaçlarını otomatik olarak Analizler gönderir.

Uygulama Giriş'e günlükleri Analizler

WAD ile uygulama Analizler yapılandırma

Not

Bu yalnızca şu anda Windows kümelere uygulanabilir.

WAD'den Azure Uygulama Analizler'ye veri göndermenin başlıca iki yolu vardır ve bu, Azure portalı aracılığıyla veya bir Azure Resource Manager şablonu aracılığıyla WAD yapılandırmasına bir Uygulama Analizler ile elde edilir.

Azure portalda Analizler oluştururken Uygulama Araçları Araç Takımı Anahtarı ekleme

AIKey ekleme

Küme oluştururken Tanılama "Açık" olarak açıksa, Application Analizler(Uygulama Aracı anahtarı) girmek için isteğe bağlı bir alan gösterir. Uygulama Anahtarınızı buraya Analizler, Application Analizler veya Analizler, kümenizi dağıtmak için kullanılan Kaynak Yöneticisi şablonunda sizin için otomatik olarak yapılandırılır.

Application Analizler Zaman'ın Kaynak Yöneticisi şablonuna ekleme

Kaynak Yöneticisi şablonunun "WadCfg"sinde, aşağıdaki iki değişikliği de içeren bir "Gerçekleştir" ekleyin:

  1. Bu bildirim tamamlandıktan sonra yapılandırmayı doğrudan DiagnosticMonitorConfiguration ekleyin:

    "SinksConfig": {
        "Sink": [
            {
                "name": "applicationInsights",
                "ApplicationInsights": "***ADD INSTRUMENTATION KEY HERE***"
            }
        ]
    }
    
    
  2. Şu satıra (ifade edilenlerden hemen önce) şu satırı ekleyerek 12.000.000'i DiagnosticMonitorConfigurationDiagnosticMonitorConfiguration dahil etmek WadCfgEtwProviders için:

    "sinks": "applicationInsights"
    

Yukarıdaki kod parçacığının her ikisinde de, "applicationInsights" adı bu nasıl tanımlamak için kullanılmıştır. Bu bir zorunluluk değildir ve kullanıcı adı "özel" kapsamında olduğu sürece adı herhangi bir dizeye ayarlayın.

Şu anda, kümeden gelen günlükler Uygulama Kaynağı'nın günlük görüntüleyicisinde Analizler olarak görünür. Platformdan gelen izlemelerin çoğu "Bilgilendirme" düzeyinde olduğu için, yapılandırmayı yalnızca "Uyarı" veya "Hata" türünde günlükler gönderecek şekilde değiştirmeyi de düşünebilirsiniz. Bu, bu makalede de olduğu gibi, kanalınıza "Kanallar" ekleyerek yapılabilir.

Not

Portalda veya Kaynak Yöneticisi Analizler Doğru Uygulama Anahtarı kullanırsanız, anahtarı el ile değiştirmeli ve kümeyi güncelleştirmelisiniz / yeniden paylaşmalısınız.

Sonraki adımlar

Azure tanılamayı doğru yapılandırdıktan sonra, ETW ve EventSource günlüklerinden Depolama tablolarınıza veri gelecektir. Kaynak Yöneticisi şablonunda doğrudan yapılandırılmamış Azure Monitör günlüklerini, Kibana'yı veya diğer herhangi bir veri analizi ve görselleştirme platformunu kullanmayı seçerseniz, bu depolama tablolarından gelen verileri okumak için seçtiğiniz platformu ayarlamayı tercih edin. Azure Monitör günlükleri için bunu yapmak görece basit bir işlemdir ve Olay ve günlük çözümlemesinde açıklanmıştır. Uygulama Analizler, Tanılama uzantısı yapılandırmasının bir parçası olarak yapılandırılana kadar bu bakımdan biraz özel bir durum olduğu için AI kullanmayı tercih ediyorsanız uygun makaleye bakın.

Not

Şu anda tabloya gönderilen olayları filtrelemenin veya tımarmanın hiçbir yolu yoktur. Tablodan olayları kaldırmak için bir işlem uygulaymayacaksanız, tablo büyümeye devam eder. Şu anda Watchdogörneğinde çalışan bir veri hizmetiyle ilgili bir örnek vardır ve günlükleri 30 veya 90 günlük zaman çerçevesi dışında depolamanız için iyi bir neden yoksa, kendiniz için de bir tane yazmanız önerilir.