Udostępnij za pośrednictwem


Dzienniki diagnostyczne — Azure Content Delivery Network

Ważne

Usługa Azure CDN Standard firmy Microsoft (klasyczna) zostanie wycofana 30 września 2027 r. Aby uniknąć zakłóceń w działaniu usługi, należy przeprowadzić migrację profilów usługi Azure CDN Standard z usługi Microsoft (klasycznej) do warstwy Azure Front Door Standard lub Premium do 30 września 2027 r. Aby uzyskać więcej informacji, zobacz Azure CDN Standard from Microsoft (classic) retirement (Wycofanie usługi Azure CDN w warstwie Standardowa z firmy Microsoft (wersja klasyczna).

Usługa Azure CDN z Edgio została wycofana 15 stycznia 2025 r. Aby uzyskać więcej informacji, zobacz Azure CDN from Edgio retirement FAQ (Usługa Azure CDN from Edgio retirement FAQ).

Za pomocą dzienników diagnostycznych platformy Azure można wyświetlać podstawowe analizy i zapisywać je w co najmniej jednym miejscu docelowym, w tym:

  • Konto usługi Azure Storage
  • Obszar roboczy usługi Log Analytics
  • Azure Event Hubs

Ta funkcja jest dostępna w punktach końcowych sieci dostarczania zawartości dla wszystkich warstw cenowych.

Dzienniki diagnostyczne umożliwiają eksportowanie podstawowych metryk użycia z punktu końcowego sieci dostarczania zawartości do różnych źródeł, dzięki czemu można z nich korzystać w dostosowany sposób. Możesz wykonać następujące typy eksportu danych:

  • Eksportowanie danych do magazynu obiektów blob, eksportowanie do woluminu CSV i generowanie grafów w programie Excel.
  • Eksportowanie danych do usługi Event Hubs i korelowanie z danymi z innych usług platformy Azure.
  • Eksportowanie danych do dzienników usługi Azure Monitor i wyświetlanie danych we własnym obszarze roboczym usługi Log Analytics

Do wykonania poniższych kroków jest wymagany profil usługi Azure Content Delivery Network. Przed kontynuowaniem zapoznaj się z artykułem Tworzenie profilu i punktu końcowego usługi Azure Content Delivery Network.

Włączanie rejestrowania w witrynie Azure Portal

Wykonaj następujące kroki, aby włączyć rejestrowanie punktu końcowego usługi Azure Content Delivery Network:

  1. Zaloguj się w witrynie Azure Portal.

  2. W witrynie Azure Portal przejdź do pozycji Wszystkie zasoby>your-cdn-profile.

  3. Wybierz punkt końcowy sieci dostarczania zawartości, dla którego chcesz włączyć dzienniki diagnostyczne:

    Zrzut ekranu przedstawiający wybieranie punktu końcowego sieci dostarczania zawartości.

  4. Wybierz pozycję Dzienniki diagnostyczne w sekcji Monitorowanie :

    Zrzut ekranu przedstawiający przycisk dzienników diagnostycznych w menu monitorowania.

Włączanie rejestrowania za pomocą usługi Azure Storage

Aby przechowywać dzienniki przy użyciu konta magazynu, wykonaj następujące kroki:

Uwaga

Do wykonania tych kroków wymagane jest konto magazynu. Aby uzyskać więcej informacji, zobacz: Tworzenie konta usługi Azure Storage.

  1. W polu Nazwa ustawienia diagnostycznego wprowadź nazwę ustawień dziennika diagnostycznego.

  2. Wybierz pozycję Archiwum na koncie magazynu, a następnie wybierz pozycję CoreAnalytics.

  3. W obszarze Przechowywanie (dni) wybierz liczbę dni przechowywania. Przechowywanie zera dni przechowuje dzienniki na czas nieokreślony.

  4. Wybierz subskrypcję i konto magazynu dla dzienników.

    Dzienniki diagnostyczne — magazyn.

  5. Wybierz pozycję Zapisz.

Wysyłanie do usługi Log Analytics

Aby użyć usługi Log Analytics dla dzienników, wykonaj następujące kroki:

Uwaga

Do wykonania tych kroków jest wymagany obszar roboczy usługi Log Analytics. Aby uzyskać więcej informacji, zobacz Tworzenie obszaru roboczego usługi Log Analytics w witrynie Azure Portal .

  1. W polu Nazwa ustawienia diagnostycznego wprowadź nazwę ustawień dziennika diagnostycznego.

  2. Wybierz pozycję Wyślij do usługi Log Analytics, a następnie wybierz pozycję CoreAnalytics.

  3. Wybierz subskrypcję i obszar roboczy usługi Log Analytics dla dzienników.

    Dzienniki diagnostyczne — Log Analytics.

  4. Wybierz pozycję Zapisz.

Przesyłanie strumieniowe do centrum zdarzeń

Aby użyć centrum zdarzeń dla dzienników, wykonaj następujące kroki:

Uwaga

Do wykonania tych kroków jest wymagane centrum zdarzeń. Aby uzyskać więcej informacji, zobacz: Szybki start: tworzenie centrum zdarzeń przy użyciu witryny Azure Portal .

  1. W polu Nazwa ustawienia diagnostycznego wprowadź nazwę ustawień dziennika diagnostycznego.

  2. Wybierz pozycję Stream do centrum zdarzeń, a następnie wybierz pozycję CoreAnalytics.

  3. Wybierz subskrypcję i przestrzeń nazw centrum zdarzeń dla dzienników.

    Dzienniki diagnostyczne — centrum zdarzeń.

  4. Wybierz pozycję Zapisz.

Włączanie rejestrowania przy użyciu programu PowerShell

W poniższym przykładzie pokazano, jak włączyć dzienniki diagnostyczne za pomocą poleceń cmdlet programu Azure PowerShell.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Włączanie dzienników diagnostycznych na koncie magazynu

  1. Zaloguj się do programu Azure PowerShell:

    Connect-AzAccount 
    
  2. Aby włączyć dzienniki diagnostyczne na koncie magazynu, wprowadź te polecenia. Zastąp zmienne swoimi wartościami:

    $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
    

Włączanie dzienników diagnostycznych dla obszaru roboczego usługi Log Analytics

  1. Zaloguj się do programu Azure PowerShell:

    Connect-AzAccount 
    
  2. Aby włączyć dzienniki diagnostyczne dla obszaru roboczego usługi Log Analytics, wprowadź te polecenia. Zastąp zmienne swoimi wartościami:

    $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
    

Włączanie dzienników diagnostycznych dla przestrzeni nazw centrum zdarzeń

  1. Zaloguj się do programu Azure PowerShell:

    Connect-AzAccount 
    
  2. Aby włączyć dzienniki diagnostyczne dla obszaru roboczego usługi Log Analytics, wprowadź te polecenia. Zastąp zmienne swoimi wartościami:

    $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
    

Korzystanie z dzienników diagnostycznych z usługi Azure Storage

W tej sekcji opisano schemat analizy podstawowej sieci dostarczania zawartości, organizacji na koncie usługi Azure Storage i zawiera przykładowy kod umożliwiający pobranie dzienników w pliku CSV.

Korzystanie z Eksplorator usługi Microsoft Azure Storage

Aby pobrać narzędzie, zobacz Eksplorator usługi Azure Storage. Po pobraniu i zainstalowaniu oprogramowania skonfiguruj go tak, aby używał tego samego konta usługi Azure Storage, które zostało skonfigurowane jako miejsce docelowe w dziennikach diagnostycznych sieci dostarczania zawartości.

  1. Otwórz Eksplorator usługi Microsoft Azure Storage
  2. Lokalizowanie konta magazynu
  3. Rozwiń węzeł Kontenery obiektów blob w ramach tego konta magazynu.
  4. Wybierz kontener o nazwie insights-logs-coreanalytics.
  5. Wyniki są wyświetlane w okienku po prawej stronie, zaczynając od pierwszego poziomu, jako resourceId=. Kontynuuj wybieranie każdego poziomu do momentu znalezienia PT1H.json pliku. Aby uzyskać wyjaśnienie ścieżki, zobacz Format ścieżki obiektu blob.
  6. Każdy plik PT1H.json obiektów blob reprezentuje dzienniki analityczne przez jedną godzinę dla określonego punktu końcowego sieci dostarczania zawartości lub domeny niestandardowej.
  7. Schemat zawartości tego pliku JSON jest opisany w sekcji schematu podstawowych dzienników analitycznych.

Format ścieżki obiektu blob

Dzienniki analizy podstawowej są generowane co godzinę, a dane są zbierane i przechowywane wewnątrz pojedynczego obiektu blob platformy Azure jako ładunku JSON. Narzędzie Eksploratora usługi Storage interpretuje znak "/" jako separator katalogu i pokazuje hierarchię. Ścieżka do obiektu blob platformy Azure wygląda tak, jakby istniała struktura hierarchiczna i reprezentuje nazwę obiektu blob. Nazwa obiektu blob jest zgodna z następującą konwencją nazewnictwa:

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

Opis pól:

Wartość Opis
Identyfikator subskrypcji Identyfikator subskrypcji platformy Azure w formacie globalnie unikatowego identyfikatora (GUID).
Nazwa grupy zasobów Nazwa grupy zasobów, do której należą zasoby sieciowe dostarczania zawartości.
Nazwa profilu Nazwa profilu sieci dostarczania zawartości
Nazwa punktu końcowego Nazwa punktu końcowego sieci dostarczania zawartości
Year (Rok) Czterocyfrowa reprezentacja roku, na przykład 2017
Month Dwucyfrowa reprezentacja numeru miesiąca. 01=Styczeń ... 12=grudzień
Dzień Dwucyfrowa reprezentacja dnia miesiąca
PT1H.json Rzeczywisty plik JSON, w którym są przechowywane dane analityczne

Eksportowanie podstawowych danych analitycznych do pliku CSV

Aby uzyskać dostęp do podstawowej analizy, udostępniany jest przykładowy kod narzędzia. To narzędzie umożliwia pobieranie plików JSON do prostego formatu pliku rozdzielanego przecinkami, który może służyć do tworzenia wykresów lub innych agregacji.

Oto jak można użyć narzędzia:

  1. Odwiedź link usługi GitHub: https://github.com/Azure-Samples/azure-cdn-samples/tree/master/CoreAnalytics-ExportToCsv
  2. Pobierz kod.
  3. Postępuj zgodnie z instrukcjami, aby skompilować i skonfigurować.
  4. Uruchom narzędzie.
  5. Wynikowy plik CSV przedstawia dane analityczne w prostej płaskiej hierarchii.

Opóźnienia danych dziennika

Dane dziennika firmy Microsoft są opóźnione o maksymalnie 1 godzinę. To opóźnienie jest spowodowane czasem potrzebnym na przetworzenie i zapisanie danych.

Typy dzienników diagnostycznych na potrzeby analizy podstawowej sieci dostarczania zawartości

Firma Microsoft obecnie oferuje tylko podstawowe dzienniki analityczne, które zawierają metryki przedstawiające statystyki odpowiedzi HTTP i statystyki ruchu wychodzącego, jak pokazano na podstawie punktów POP/krawędzi sieci dostarczania zawartości.

Szczegóły metryk analizy podstawowej

W poniższej tabeli przedstawiono listę metryk dostępnych w podstawowych dziennikach analizy.

Nie wszystkie metryki są dostępne dla wszystkich dostawców, chociaż takie różnice są minimalne. W tabeli przedstawiono również, czy dana metryka jest dostępna u dostawcy. Metryki są dostępne tylko dla punktów końcowych sieci dostarczania zawartości, które mają na nich ruch.

Metryczne opis
RequestCountTotal Łączna liczba trafień żądań w tym okresie.
RequestCountHttpStatus2xx Liczba wszystkich żądań, które spowodowały kod HTTP 2xx (na przykład 200, 202).
RequestCountHttpStatus3xx Liczba wszystkich żądań, które spowodowały kod HTTP 3xx (na przykład 300, 302).
RequestCountHttpStatus4xx Liczba wszystkich żądań, które spowodowały kod HTTP 4xx (na przykład 400, 404).
RequestCountHttpStatus5xx Liczba wszystkich żądań, które spowodowały kod HTTP 5xx (na przykład 500, 504).
RequestCountHttpStatusOthers Liczba wszystkich innych kodów HTTP (poza 2xx-5xx).
RequestCountHttpStatus200 Liczba wszystkich żądań, które spowodowały odpowiedź kodu HTTP na 200.
RequestCountHttpStatus206 Liczba wszystkich żądań, które spowodowały odpowiedź kodu HTTP 206.
RequestCountHttpStatus302 Liczba wszystkich żądań, które spowodowały odpowiedź kodu HTTP 302.
RequestCountHttpStatus304 Liczba wszystkich żądań, które spowodowały odpowiedź kodu HTTP 304.
RequestCountHttpStatus404 Liczba wszystkich żądań, które spowodowały odpowiedź kodu HTTP 404.
RequestCountCacheHit Liczba wszystkich żądań, które spowodowały trafienie pamięci podręcznej. Zasób był obsługiwany bezpośrednio z punktu pop do klienta.
RequestCountCacheMiss Liczba wszystkich żądań, które spowodowały pominięcie pamięci podręcznej. Chybienie pamięci podręcznej oznacza, że element zawartości nie został znaleziony w pop najbliżej klienta i został pobrany z źródła.
RequestCountCacheNoCache Liczba wszystkich żądań do zasobu, które nie mogą być buforowane z powodu konfiguracji użytkownika na brzegu sieci.
RequestCountCacheUncacheUncacheable Liczba wszystkich żądań do zasobów, które nie mogą być buforowane przez nagłówki Cache-Control i Expires elementu zawartości. Ta liczba wskazuje, że nie powinna być buforowana w pop ani przez klienta HTTP.
EgressTotal Transfer danych wychodzących w GB
EgressHttpStatus2xx Transfer danych wychodzących* dla odpowiedzi z kodami stanu HTTP 2xx w GB.
EgressHttpStatus3xx Transfer danych wychodzących dla odpowiedzi z kodami stanu HTTP 3xx w GB.
EgressHttpStatus4xx Transfer danych wychodzących dla odpowiedzi z kodami stanu HTTP 4xx w GB.
EgressHttpStatus5xx Transfer danych wychodzących dla odpowiedzi z kodami stanu HTTP 5xx w GB.
EgressHttpStatusOthers Transfer danych wychodzących dla odpowiedzi z innymi kodami stanu HTTP w GB.
EgressCacheHit Wychodzący transfer danych dla odpowiedzi, które zostały dostarczone bezpośrednio z pamięci podręcznej sieci dostarczania zawartości w sieci dostarczania zawartości POPs/Edges.
EgressCacheMiss Transfer danych wychodzących dla odpowiedzi, które nie zostały znalezione na najbliższym serwerze POP i pobrane z serwera pochodzenia.
EgressCacheNoCache Transfer danych wychodzących dla zasobów, które nie mogą być buforowane z powodu konfiguracji użytkownika na brzegu sieci.
EgressCacheUncache możliwe do zniesienia Transfer danych wychodzących dla zasobów, które nie mogą być buforowane przez kontrolkę pamięci podręcznej zasobu i wygasa nagłówki. Wskazuje, że nie należy buforować go w pop ani przez klienta HTTP.

*Transfer danych wychodzących odnosi się do ruchu dostarczonego z serwerów POP sieci dostarczania zawartości do klienta.

Schemat podstawowych dzienników analitycznych

Wszystkie dzienniki są przechowywane w formacie JSON, a każdy wpis zawiera pola ciągów zgodnie z następującym schematem:

    "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,
            }
        }

    ]
}

Gdzie czas reprezentuje godzinę rozpoczęcia granicy godziny, dla której są zgłaszane statystyki. Metryka nieobsługiwana przez dostawcę sieci dostarczania zawartości zamiast wartości podwójnej lub całkowitej powoduje wartość null. Ta wartość null wskazuje brak metryki i różni się od wartości 0. Jeden zestaw tych metryk na domenę jest skonfigurowany w punkcie końcowym.

Przykładowe właściwości:

{
     "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
}

Więcej zasobów