Tanılama günlükleri - Azure Content Delivery Network

Azure tanılama günlükleriyle çekirdek analizi görüntüleyebilir ve bunları aşağıdakiler gibi bir veya daha fazla hedefe kaydedebilirsiniz:

  • Azure Storage hesabı
  • Log Analytics çalışma alanı
  • Azure Event Hubs

Bu özellik, tüm fiyatlandırma katmanları için içerik teslim ağı uç noktaları üzerinde kullanılabilir.

Tanılama günlükleri, temel kullanım ölçümlerini içerik teslim ağı uç noktanızdan farklı türlerdeki kaynaklara dışarı aktarmanıza olanak tanır, böylece bunları özelleştirilmiş bir şekilde kullanabilirsiniz. Aşağıdaki veri dışarı aktarma türlerini yapabilirsiniz:

  • Verileri blob depolamaya aktarın, CSV'ye aktarın ve Excel'de grafikler oluşturun.
  • Event Hubs'a veri aktarın ve diğer Azure hizmetlerindeki verilerle bağıntı oluşturun.
  • Verileri Azure İzleyici günlüklerine aktarma ve kendi Log Analytics çalışma alanınızdaki verileri görüntüleme

Aşağıdaki adımlar için bir Azure Content Delivery Network profili gereklidir. Devam etmeden önce Azure Content Delivery Network profili ve uç noktası oluşturma bölümüne bakın.

Azure portalıyla günlüğe kaydetmeyi etkinleştirme

Azure Content Delivery Network uç noktanız için günlüğe kaydetmeyi etkinleştirme adımlarını izleyin:

  1. Azure Portal’ında oturum açın.

  2. Azure portalında, cdn-profile tüm kaynaklar'a >gidin.

  3. Tanılama günlüklerini etkinleştirmek istediğiniz içerik teslim ağ uç noktasını seçin:

    İçerik teslim ağı uç noktasını seçmenin ekran görüntüsü.

  4. İzleme bölümünde Tanılama günlükleri'ni seçin:

    İzleme menüsünün altındaki tanılama günlükleri düğmesinin ekran görüntüsü.

Azure Depolama ile günlüğe kaydetmeyi etkinleştirme

Günlükleri depolamak için bir depolama hesabı kullanmak için şu adımları izleyin:

Not

Bu adımları tamamlamak için bir depolama hesabı gereklidir. Daha fazla bilgi için bkz. Azure Depolama hesabı oluşturma.

  1. Tanılama ayarı adı için tanılama günlüğü ayarlarınız için bir ad girin.

  2. Depolama hesabında arşivle'yi ve ardından CoreAnalytics'i seçin.

  3. Bekletme (gün) için bekletme gün sayısını seçin. Sıfır gün saklama süresiz olarak günlükleri depolar.

  4. Günlükler için aboneliği ve depolama hesabını seçin.

    Tanılama günlükleri - Depolama.

  5. Kaydet'i seçin.

Log Analytics’e gönderme

Günlükler için Log Analytics'i kullanmak için şu adımları izleyin:

Not

Bu adımları tamamlamak için log analytics çalışma alanı gereklidir. Daha fazla bilgi için bkz. Azure portalında Log Analytics çalışma alanı oluşturma.

  1. Tanılama ayarı adı için tanılama günlüğü ayarlarınız için bir ad girin.

  2. Log Analytics'e Gönder'i ve ardından CoreAnalytics'i seçin.

  3. Günlükler için aboneliği ve Log Analytics çalışma alanını seçin.

    Tanılama günlükleri - Log Analytics.

  4. Kaydet'i seçin.

Olay hub’ına akış yapma

Günlükler için bir olay hub'ı kullanmak için şu adımları izleyin:

Not

Bu adımları tamamlamak için bir olay hub'ı gereklidir. Daha fazla bilgi için bkz. Hızlı Başlangıç: Azure portalını kullanarak olay hub'ı oluşturma.

  1. Tanılama ayarı adı için tanılama günlüğü ayarlarınız için bir ad girin.

  2. Bir olay hub'ına akışla aktar'ı ve ardından CoreAnalytics'i seçin.

  3. Günlükler için abonelik ve olay hub'ı ad alanını seçin.

    Tanılama günlükleri - Olay hub'ı.

  4. Kaydet'i seçin.

PowerShell ile günlüğe kaydetmeyi etkinleştirme

Aşağıdaki örnekte Azure PowerShell Cmdlet'leri aracılığıyla tanılama günlüklerinin nasıl etkinleştirileceği gösterilmektedir.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Depolama hesabında tanılama günlüklerini etkinleştirme

  1. Azure PowerShell'de oturum açın:

    Connect-AzAccount 
    
  2. Depolama hesabında Tanılama Günlüklerini etkinleştirmek için şu komutları girin. Değişkenleri değerlerinizle değiştirin:

    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $storageacct = <your-storage-account-name>
    $diagname = <your-diagnostic-setting-name>
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    $storage = Get-AzStorageAccount -ResourceGroupName $rsg -Name $storageacct
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -StorageAccountId $storage.id -Enabled $true -Categories CoreAnalytics
    

Log Analytics çalışma alanı için tanılama günlüklerini etkinleştirme

  1. Azure PowerShell'de oturum açın:

    Connect-AzAccount 
    
  2. Log Analytics çalışma alanında Tanılama Günlüklerini etkinleştirmek için şu komutları girin. Değişkenleri değerlerinizle değiştirin:

    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $workspacename = <your-log-analytics-workspace-name>
    $diagname = <your-diagnostic-setting-name>
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    $workspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $rsg -Name $workspacename
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -WorkspaceId $workspace.ResourceId -Enabled $true -Categories CoreAnalytics
    

Olay hub'ı ad alanı için tanılama günlüklerini etkinleştirme

  1. Azure PowerShell'de oturum açın:

    Connect-AzAccount 
    
  2. Log Analytics çalışma alanında Tanılama Günlüklerini etkinleştirmek için şu komutları girin. Değişkenleri değerlerinizle değiştirin:

    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $eventhubname = <your-event-hub-namespace-name>
    $diagname = <your-diagnostic-setting-name>
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -EventHubName $eventhubname -Enabled $true -Categories CoreAnalytics
    

Azure Depolama'dan tanılama günlüklerini kullanma

Bu bölümde, Azure Depolama hesabındaki içerik teslim ağ çekirdek analizinin şeması açıklanmaktadır ve günlükleri csv dosyasına indirmek için örnek kod sağlanmıştır.

Microsoft Azure Depolama Gezgini kullanma

Aracı indirmek için bkz. Azure Depolama Gezgini. Yazılımı indirip yükledikten sonra, içerik teslim ağı Tanılama Günlükleri'ne hedef olarak yapılandırılan Azure Depolama hesabını kullanacak şekilde yapılandırın.

  1. Microsoft Azure Depolama Gezgini aç
  2. Depolama hesabını bulma
  3. Bu depolama hesabının altındaki Blob Kapsayıcıları düğümünü genişletin.
  4. insights-logs-coreanalytics adlı kapsayıcıyı seçin.
  5. Sonuçlar sağ bölmede ilk düzeyden başlayarak resourceId= olarak gösterilir. Dosya PT1H.json bulana kadar her düzeyi seçmeye devam edin. Yolun açıklaması için bkz . Blob yolu biçimi.
  6. Her blob PT1H.json dosyası, belirli bir içerik teslim ağı uç noktası veya özel etki alanı için bir saatlik analiz günlüklerini temsil eder.
  7. Bu JSON dosyasının içeriğinin şeması, çekirdek analiz günlüklerinin bölüm şemasında açıklanmıştır.

Blob yolu biçimi

Çekirdek analiz günlükleri saatte bir oluşturulur ve veriler toplanır ve JSON yükü olarak tek bir Azure blobu içinde depolanır. Depolama gezgin aracı '/' öğesini dizin ayırıcısı olarak yorumlar ve hiyerarşiyi gösterir. Azure blobunun yolu hiyerarşik bir yapı varmış gibi görünür ve blob adını temsil eder. Blobun adı aşağıdaki adlandırma kuralını izler:

resourceId=/SUBSCRIPTIONS/{Subscription Id}/RESOURCEGROUPS/{Resource Group Name}/PROVIDERS/MICROSOFT.CDN/PROFILES/{Profile Name}/ENDPOINTS/{Endpoint Name}/ y=/m=/d=/h=/m=/PT1H.json

Alanların açıklaması:

Value Açıklama
Subscription ID Azure aboneliğinin genel benzersiz tanımlayıcı (GUID) biçimindeki kimliği.
Kaynak Grubu Adı İçerik teslim ağ kaynaklarının ait olduğu kaynak grubunun adı.
Profil Adı İçerik teslim ağı Profilinin adı
Uç Nokta Adı İçerik teslim ağı Uç Noktasının adı
Yıl Yılın dört basamaklı gösterimi, örneğin, 2017
Month Ay sayısının iki basamaklı gösterimi. 01=Ocak ... 12=Aralık
Gün Ayın gününün iki basamaklı gösterimi
PT1H.json Analiz verilerinin depolandığı gerçek JSON dosyası

Çekirdek analiz verilerini CSV dosyasına aktarma

Temel analize erişmek için bir aracın örnek kodu sağlanır. Bu araç, JSON dosyalarını düz bir virgülle ayrılmış dosya biçimine indirmenize olanak tanır ve bu biçim grafikler veya diğer toplamalar oluşturmak için kullanılabilir.

Aracı şu şekilde kullanabilirsiniz:

  1. GitHub bağlantısını ziyaret edin: https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv
  2. Kodu indirin.
  3. Derlemek ve yapılandırmak için yönergeleri izleyin.
  4. Aracı çalıştırın.
  5. Sonuçta elde edilen CSV dosyası analiz verilerini basit bir düz hiyerarşide gösterir.

Günlük verileri gecikmeleri

Aşağıdaki tabloda Microsoft'tan Azure CDN Standard ve Edgio'dan Azure CDN Standard/Premium için günlük verileri gecikmeleri gösterilmektedir.

Microsoft günlük verileri gecikmeleri Edgio günlük verileri gecikmeleri
1 saat gecikmiş. 1 saat geciktirildi ve uç nokta yayma tamamlandıktan sonra görünmeye başlaması 2 saate kadar sürebilir.

İçerik teslim ağ çekirdek analizi için tanılama günlüğü türleri

Microsoft şu anda yalnızca içerik teslim ağı POP'larından/kenarlarından görüldüğü gibi HTTP yanıt istatistiklerini ve çıkış istatistiklerini gösteren ölçümleri içeren çekirdek analiz günlükleri sunmaktadır.

Temel analiz ölçümleri ayrıntıları

Aşağıdaki tabloda, temel analiz günlüklerinde kullanılabilen ölçümlerin listesi gösterilmektedir:

  • Microsoft'tan Azure CDN Standard
  • Edgio'dan Azure CDN Standard/Premium

Bu tür farklar çok az olsa da tüm ölçümler tüm sağlayıcılardan kullanılamaz. Tabloda ayrıca belirli bir ölçümün bir sağlayıcıdan sağlanıp sağlanmadığı da gösterilir. Ölçümler yalnızca üzerinde trafik bulunan içerik teslim ağ uç noktaları için kullanılabilir.

Metrik Sistem Açıklama Microsoft Edgio
RequestCountTotal Bu dönemdeki toplam istek isabet sayısı. Yes Yes
RequestCountHttpStatus2xx 2xx HTTP koduyla sonuçlanan tüm isteklerin sayısı (örneğin, 200, 202). Yes Yes
RequestCountHttpStatus3xx 3xx HTTP koduyla sonuçlanan tüm isteklerin sayısı (örneğin, 300, 302). Yes Yes
RequestCountHttpStatus4xx 4xx HTTP koduyla sonuçlanan tüm isteklerin sayısı (örneğin, 400, 404). Yes Yes
RequestCountHttpStatus5xx 5xx HTTP koduyla sonuçlanan tüm isteklerin sayısı (örneğin, 500, 504). Yes Yes
RequestCountHttpStatusOthers Diğer tüm HTTP kodlarının sayısı (2xx-5xx dışında). Yes Yes
RequestCountHttpStatus200 200 HTTP kodu yanıtıyla sonuçlanan tüm isteklerin sayısı. Yes Hayır
RequestCountHttpStatus206 206 HTTP kodu yanıtıyla sonuçlanan tüm isteklerin sayısı. Yes Hayır
RequestCountHttpStatus302 302 HTTP kodu yanıtıyla sonuçlanan tüm isteklerin sayısı. Yes Hayır
RequestCountHttpStatus304 304 HTTP kodu yanıtıyla sonuçlanan tüm isteklerin sayısı. Yes Hayır
RequestCountHttpStatus404 404 HTTP kodu yanıtıyla sonuçlanan tüm isteklerin sayısı. Yes Hayır
RequestCountCacheHit Önbellek isabeti ile sonuçlanan tüm isteklerin sayısı. Varlık doğrudan POP'tan istemciye servis edildi. Yes Yes
RequestCountCacheMiss Önbellek'in kaçırılması ile sonuçlanan tüm isteklerin sayısı. Önbellek isabetsizliği, varlığın istemciye en yakın POP'ta bulunamadığını ve kaynaktan alındığını gösterir. Yes Yes
RequestCountCacheNoCache Uçta bir kullanıcı yapılandırması nedeniyle önbelleğe alınmasını engelleyen bir varlığa yönelik tüm isteklerin sayısı. Yes Yes
RequestCountCacheUncacheable Varlığın Cache-Control ve Expires üst bilgileri tarafından önbelleğe alınması engellenen varlıklara yönelik tüm isteklerin sayısı. Bu sayı, pop veya HTTP istemcisi tarafından önbelleğe alınmaması gerektiğini gösterir. Yes Yes
RequestCountCacheOthers Önbellek durumu önceden listelenen ölçümler kapsamında olmayan tüm isteklerin sayısı. Hayır Evet
ÇıkışToplam GB olarak giden veri aktarımı Yes Yes
ÇıkışHttpStatus2xx GB cinsinden 2xx HTTP durum kodları içeren yanıtlar için giden veri aktarımı*. Yes Yes
ÇıkışHttpStatus3xx GB olarak 3xx HTTP durum kodları içeren yanıtlar için giden veri aktarımı. Yes Yes
ÇıkışHttpStatus4xx GB olarak 4xx HTTP durum kodları içeren yanıtlar için giden veri aktarımı. Yes Yes
ÇıkışHttpStatus5xx GB olarak 5xx HTTP durum kodları içeren yanıtlar için giden veri aktarımı. Yes Yes
ÇıkışHttpStatusOthers GB olarak diğer HTTP durum kodlarıyla yanıtlar için giden veri aktarımı. Yes Yes
EgressCacheHit İçerik teslim ağı POP'ları/Uçları üzerindeki içerik teslim ağı önbelleğinden doğrudan teslim edilen yanıtlar için giden veri aktarımı. Yes Yes
EgressCacheMiss. En yakın POP sunucusunda bulunmayan ve kaynak sunucudan alınan yanıtlar için giden veri aktarımı. Yes Yes
EgressCacheNoCache Uçta bir kullanıcı yapılandırması nedeniyle önbelleğe alınmasını engelleyen varlıklar için giden veri aktarımı. Yes Yes
EgressCacheUncacheable Varlığın Cache-Control ve veya Expires üst bilgileri tarafından önbelleğe alınması engellenen varlıklar için giden veri aktarımı. Pop veya HTTP istemcisi tarafından önbelleğe alınmaması gerektiğini gösterir. Yes Yes
EgressCacheOthers Diğer önbellek senaryoları için giden veri aktarımları. Hayır Evet

*Giden veri aktarımı, içerik teslim ağı POP sunucularından istemciye gönderilen trafiği ifade eder.

Çekirdek analiz günlüklerinin şeması

Tüm günlükler JSON biçiminde depolanır ve her girdi aşağıdaki şemaya göre dize alanlarına sahiptir:

    "records": [
        {
            "time": "2017-04-27T01:00:00",
            "resourceId": "<ARM Resource Id of the CDN Endpoint>",
            "operationName": "Microsoft.Cdn/profiles/endpoints/contentDelivery",
            "category": "CoreAnalytics",
            "properties": {
                "DomainName": "<Name of the domain for which the statistics is reported>",
                "RequestCountTotal": integer value,
                "RequestCountHttpStatus2xx": integer value,
                "RequestCountHttpStatus3xx": integer value,
                "RequestCountHttpStatus4xx": integer value,
                "RequestCountHttpStatus5xx": integer value,
                "RequestCountHttpStatusOthers": integer value,
                "RequestCountHttpStatus200": integer value,
                "RequestCountHttpStatus206": integer value,
                "RequestCountHttpStatus302": integer value,
                "RequestCountHttpStatus304": integer value,
                "RequestCountHttpStatus404": integer value,
                "RequestCountCacheHit": integer value,
                "RequestCountCacheMiss": integer value,
                "RequestCountCacheNoCache": integer value,
                "RequestCountCacheUncacheable": integer value,
                "RequestCountCacheOthers": integer value,
                "EgressTotal": double value,
                "EgressHttpStatus2xx": double value,
                "EgressHttpStatus3xx": double value,
                "EgressHttpStatus4xx": double value,
                "EgressHttpStatus5xx": double value,
                "EgressHttpStatusOthers": double value,
                "EgressCacheHit": double value,
                "EgressCacheMiss": double value,
                "EgressCacheNoCache": double value,
                "EgressCacheUncacheable": double value,
                "EgressCacheOthers": double value,
            }
        }

    ]
}

Burada saat , istatistiklerin bildirildiği saat sınırının başlangıç saatini temsil eder. bir içerik teslim ağ sağlayıcısı tarafından desteklenmeyen bir ölçüm, çift veya tamsayı değeri yerine null değerle sonuçlanır. Bu null değer bir ölçümün olmadığını gösterir ve 0 değerinden farklıdır. Etki alanı başına bu ölçümlerin bir kümesi uç noktada yapılandırılır.

Örnek özellikler:

{
     "DomainName": "azurecdntest.azureedge.net",
     "RequestCountTotal": 480,
     "RequestCountHttpStatus2xx": 480,
     "RequestCountHttpStatus3xx": 0,
     "RequestCountHttpStatus4xx": 0,
     "RequestCountHttpStatus5xx": 0,
     "RequestCountHttpStatusOthers": 0,
     "RequestCountHttpStatus200": 480,
     "RequestCountHttpStatus206": 0,
     "RequestCountHttpStatus302": 0,
     "RequestCountHttpStatus304": 0,
     "RequestCountHttpStatus404": 0,
     "RequestCountCacheHit": null,
     "RequestCountCacheMiss": null,
     "RequestCountCacheNoCache": null,
     "RequestCountCacheUncacheable": null,
     "RequestCountCacheOthers": null,
     "EgressTotal": 0.09,
     "EgressHttpStatus2xx": null,
     "EgressHttpStatus3xx": null,
     "EgressHttpStatus4xx": null,
     "EgressHttpStatus5xx": null,
     "EgressHttpStatusOthers": null,
     "EgressCacheHit": null,
     "EgressCacheMiss": null,
     "EgressCacheNoCache": null,
     "EgressCacheUncacheable": null,
     "EgressCacheOthers": null
}

Diğer kaynaklar