Protokolování analýz služby Azure Storage

Analýza úložiště protokoluje podrobné informace o úspěšných a neúspěšných požadavcích na službu úložiště. Tyto informace je možné použít k monitorování jednotlivých požadavků a diagnostice problémů se službou úložiště. Požadavky se protokolut s maximálním úsilím. To znamená, že většina požadavků bude mít za následek záznam protokolu, ale úplnost a včasnost protokolů Storage Analytics není zaručena.

Poznámka

Doporučujeme používat protokoly Azure Storage v Azure Monitor místo Storage Analytics. Azure Storage protokoly v Azure Monitor ve verzi Public Preview a jsou k dispozici pro testování verze Preview ve všech oblastech veřejného cloudu. Tato verze Preview umožňuje protokoly pro objekty blob (které zahrnují Azure Data Lake Storage Gen2), soubory, fronty a tabulky. Další informace najdete v následujících článcích:

Protokolování Analýzy úložiště ve výchozím nastavení není pro váš účet úložiště povolené. Můžete ho povolit v Azure Portal nebo pomocí PowerShellu nebo Azure CLI. Podrobné pokyny najdete v tématu Povolení a správa protokolů Azure Storage Analytics (classic).

Můžete také povolit protokoly Storage Analytics prostřednictvím kódu programu prostřednictvím REST API nebo klientské knihovny. Pomocí operací Získání vlastností služby BlobService , Získání vlastností služby Queue Servicea Získání vlastností služby Table Service povolte Storage Analytics pro jednotlivé služby. Příklad povolení protokolování Storage Analytics pomocí rozhraní .NET najdete v tématu Povolení protokolů.

Položky protokolu se vytvoří pouze v případě, že jsou na koncový bod služby provedeny požadavky. Pokud například účet úložiště obsahuje aktivitu ve svém koncovém bodu objektu blob, ale ne v koncových bodech tabulky nebo fronty, vytvoří se pouze protokoly týkající se Blob service objektů blob.

Poznámka

Protokolování Analýzy úložiště je v současné době dostupné pouze pro služby Blob a Table service a Službu front. Storage Protokolování analýzy je také k dispozici pro účty BlockBlobStorage s prémiovým výkonem. Není ale k dispozici pro účty pro obecné účely v2 s výkonem premium.

Požadavky zaprotokolované do protokolování

Protokolování ověřených požadavků

Protokolují se následující typy ověřovaných požadavků:

  • Úspěšné požadavky

  • Neúspěšné požadavky, včetně vypršení časového limitu, omezování, chyb sítě, selhání autorizace a dalších chyb

  • Požadavky používající SAS (Shared Access Signature) nebo OAuth (Open Authorization), včetně neúspěšných i úspěšných požadavků

  • Žádosti o analytická data

    Požadavky provedené Storage Analytics, jako je vytvoření nebo odstranění protokolu, se nezaprotokoluje. Úplný seznam protokolovaných dat je zdokumentovaný v tématech protokolovaných operací a stavových zpráv Storage Analytics a Storage Analytics Log Format.

Protokolování anonymních požadavků

Do protokolu se zaprotokoluje následující typy anonymních požadavků:

  • Úspěšné požadavky

  • Chyby serveru

  • Chyby časového limitu pro klienta i server

  • Neúspěšné požadavky GET s kódem chyby 304 (Nezměněno)

    Všechny ostatní neúspěšné anonymní požadavky se neprotokoluje. Úplný seznam protokolovaných dat je zdokumentovaný v tématech protokolovaných operací a stavových zpráv Storage Analytics a Storage Analytics Log Format.

Poznámka

Storage Analýza protokoluje všechna interní volání do roviny dat. Zaprotokoluje se Azure Storage poskytovatele prostředků poskytovatele prostředků. Pokud chcete tyto požadavky identifikovat, vyhledejte řetězec dotazu <sk=system-1> v adrese URL požadavku.

Jak se ukládají protokoly

Všechny protokoly se ukládají v objektech blob bloku v kontejneru s názvem , který se automaticky vytvoří, Storage je pro účet úložiště povolená $logs služba Analytics. Kontejner $logs se nachází v oboru názvů objektů blob účtu úložiště, například: http://<accountname>.blob.core.windows.net/$logs . Tento kontejner není možné po povolení Storage Analytics odstranit, i když se jeho obsah může odstranit. Pokud k přímé navigaci do kontejneru použijete nástroj pro procházení úložiště, zobrazí se všechny objekty blob, které obsahují data protokolování.

Poznámka

Kontejner se při provedení operace výpisu kontejneru, jako je například operace $logs List Containers, nezobrazí. Musí být přístupný přímo. Pro přístup k objektům blob v kontejneru můžete například použít operaci List $logs Blobs.

Při zaprotokolování požadavků Storage Analytics nahraje přechodné výsledky jako bloky. Nástroj Storage Analytics tyto bloky pravidelně zaváděl a zřděloval je jako objekt blob. Zobrazení dat protokolu v objektech blob v kontejneru $logs může trvat až hodinu, protože frekvence, s jakou služba úložiště vyprázdní zapisovače protokolů. Pro protokoly vytvořené ve stejné hodině mohou existovat duplicitní záznamy. Pokud chcete zjistit, jestli je záznam duplicitní, zkontrolujte ID požadavku a číslo operace.

Pokud máte pro každou hodinu velké množství dat protokolu s více soubory, můžete pomocí metadat objektů blob zjistit, která data protokol obsahuje, prozkoumáním polí metadat objektů blob. To je užitečné také proto, že při zápisu dat do souborů protokolu může někdy dosáhnou prodlevy: metadata objektů blob přesněji indikuje obsah objektu blob než název objektu blob.

Většina nástrojů pro procházení úložiště umožňuje zobrazit metadata objektů blob. Tyto informace si můžete přečíst také pomocí PowerShellu nebo programově. Následující fragment kódu PowerShellu je příkladem filtrování seznamu objektů blob protokolu podle názvu a určení času a metadat pro identifikaci pouze těch protokolů, které obsahují operace zápisu.

Get-AzStorageBlob -Container '$logs' |  
Where-Object {  
    $_.Name -match 'blob/2014/05/21/05' -and   
    $_.ICloudBlob.Metadata.LogType -match 'write'  
} |  
ForEach-Object {  
    "{0}  {1}  {2}  {3}" –f $_.Name,   
    $_.ICloudBlob.Metadata.StartTime,   
    $_.ICloudBlob.Metadata.EndTime,   
    $_.ICloudBlob.Metadata.LogType  
}  

Informace o výpisu objektů blob prostřednictvím kódu programu najdete v tématu Vytváření výčtu prostředků objektů blob a Nastavení a načítání vlastností a metadat pro prostředky objektů blob.

Zásady vytváření názvů protokolů

Každý protokol bude zapsán v následujícím formátu:

<service-name>/YYYY/MM/DD/hhmm/<counter>.log

Následující tabulka popisuje jednotlivé atributy v názvu protokolu:

Atribut Popis
<service-name> Název služby úložiště. Například: blob table , nebo queue
YYYY Čtyřmístný rok pro protokol Příklad: 2011
MM Dvoumístný měsíc pro protokol. Příklad: 07
DD Dvoumístný den pro protokol. Příklad: 31
hh Dvouciferná hodina, která označuje počáteční hodinu protokolů ve formátu 24 hodin UTC. Příklad: 18
mm Dvouciferné číslo, které označuje počáteční minutu protokolů. Poznámka: Tato hodnota není v aktuální verzi služby Storage Analytics podporována a její hodnota bude vždy 00 .
<counter> Čítač založený na nule se šesti číslicemi, který udává počet objektů blob protokolu vygenerovaných pro službu úložiště v hodinových časových obdobích. Tento čítač začíná na 000000 . Příklad: 000001

Následuje úplný název ukázkového protokolu, který kombinuje výše uvedené příklady:

blob/2011/07/31/1800/000001.log

Následuje ukázkový identifikátor URI, který můžete použít pro přístup k výše uvedenému protokolu:

https://<accountname>.blob.core.windows.net/$logs/blob/2011/07/31/1800/000001.log

Když se zaprotokoluje žádost o úložiště, výsledný název protokolu koreluje s hodinou, kdy se požadovaná operace dokončila. Pokud se například požadavek GetBlob dokončil 31. 7. 2011 v 18:30, protokol by se zapisl s následující předponou: blob/2011/07/31/1800/

Metadata protokolu

Všechny objekty blob protokolu se ukládají s metadaty, která je možné použít k identifikaci dat protokolování, která objekt blob obsahuje. Následující tabulka popisuje každý atribut metadat:

Atribut Popis
LogType Popisuje, jestli protokol obsahuje informace týkající se operací čtení, zápisu nebo odstranění. Tato hodnota může obsahovat jeden typ nebo kombinaci všech tří hodnot oddělených čárkami.

Příklad 1: write

Příklad 2: read,write

Příklad 3: read,write,delete
StartTime Nejstarší čas položky v protokolu ve formě YYYY-MM-DDThh:mm:ssZ . Příklad: 2011-07-31T18:21:46Z
EndTime Nejnovější čas položky v protokolu ve tvaru YYYY-MM-DDThh:mm:ssZ . Příklad: 2011-07-31T18:22:09Z
LogVersion Verze formátu protokolu.

Následující seznam zobrazuje úplná ukázková metadata s využitím výše uvedených příkladů:

  • LogType=write
  • StartTime=2011-07-31T18:21:46Z
  • EndTime=2011-07-31T18:22:09Z
  • LogVersion=1.0

Další kroky