Sdílet prostřednictvím


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 protokolují 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 Analýza úložiště protokolů nejsou zaručené.

Poznámka

Místo protokolů Analýza úložiště doporučujeme používat protokoly Azure Storage ve službě Azure Monitor. Další informace najdete v některém z následujících článků:

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, pomocí PowerShellu nebo Azure CLI. Podrobné pokyny najdete v tématu Povolení a správa protokolů azure Analýza úložiště (classic).

Protokoly Analýza úložiště můžete povolit také programově prostřednictvím rozhraní REST API nebo klientské knihovny. K povolení Analýza úložiště pro každou službu použijte operace Získat vlastnosti služby Blob Service, Načíst vlastnosti služby Fronta a Načíst vlastnosti služby Table Service. Příklad, který umožňuje Analýza úložiště protokoly pomocí .NET, najdete v tématu Povolení protokolů.

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

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. Analýza úložiště protokolování je k dispozici také pro účty BlockBlobStorage s výkonem premium. Není ale k dispozici pro účty pro obecné účely verze 2 s prémiovým výkonem.

Protokolování požadavků přihlášených

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é samotnými Analýza úložiště, jako je vytvoření nebo odstranění protokolu, se neprotokolují. Úplný seznam zaprotokolovaných dat je zdokumentovaný v tématech Analýza úložiště Protokolované operace a stavové zprávy a Analýza úložiště formát protokolu.

Protokolování anonymních požadavků

Protokolují se následující typy anonymních požadavků:

Poznámka

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

Jak se protokoly ukládají

Všechny protokoly se ukládají v objektech blob bloku v kontejneru s názvem $logs, který se automaticky vytvoří, když je pro účet úložiště povolená Analýza úložiště. 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 nelze po povolení Analýza úložiště odstranit, i když je možné odstranit jeho obsah. Pokud pomocí nástroje pro procházení úložiště přejdete přímo do kontejneru, zobrazí se všechny objekty blob, které obsahují data protokolování.

Poznámka

Kontejner $logs se nezobrazí při provedení operace výpisu kontejneru, jako je například operace Výpis kontejnerů. Musí se k němu přistupovat přímo. Pro přístup k objektům blob v $logs kontejneru můžete například použít operaci Výpis objektů blob.

Jak se protokolují požadavky, Analýza úložiště nahrají mezivýsledky jako bloky. Pravidelně Analýza úložiště tyto bloky zapíše a zpřístupní je jako objekt blob. Může trvat až hodinu, než se data protokolu zobrazí v objektech blob v kontejneru $logs , protože frekvence, s jakou služba úložiště vyprázdní zapisovače protokolů. Pro protokoly vytvořené ve stejnou hodinu můžou existovat duplicitní záznamy. To, jestli je záznam duplicitní, můžete zjistit tak, že zkontrolujete Id požadavku a číslo operace .

Pokud máte velký objem dat protokolu s více soubory za každou hodinu, můžete pomocí metadat objektů blob určit, jaká data protokol obsahuje, prozkoumáním polí metadat objektů blob. To je také užitečné, protože při zápisu dat do souborů protokolu může někdy docházet ke zpoždění: metadata objektů blob poskytují přesnější informace o obsahu 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, aby se identifikovaly pouze protokoly, 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 programovém výpisu objektů blob najdete v tématech Výčet 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ě. Příklad: blob, tablenebo queue
YYYY Čtyřmístný rok pro protokol. Příklad: 2011
MM Dvoumístný měsíc pro protokol. Příklad: 07
DD Dvouciferný den protokolu. Příklad: 31
hh Dvouciferná hodina, která označuje počáteční hodinu protokolů ve formátu UTC 24 hodin. Příklad: 18
mm Dvoumístné číslo, které označuje počáteční minutu pro protokoly. Poznámka: Tato hodnota není v aktuální verzi Analýza úložiště podporována a její hodnota bude vždy 00.
<counter> Čítač založený na nule se šesti číslicemi, který označuje počet objektů blob protokolu vygenerovaných pro službu úložiště za hodinu. 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ý je možné 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 požadavek na úložiště, výsledný název protokolu odpovídá hodině, kdy se požadovaná operace dokončila. Pokud se například žádost GetBlob dokončila 31. 7. 2011 v 18:30, protokol se zapíše s následující předponou: blob/2011/07/31/1800/

Metadata protokolu

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

Atribut Popis
LogType Popisuje, zda 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 záznamu v protokolu ve tvaru YYYY-MM-DDThh:mm:ssZ. Příklad: 2011-07-31T18:21:46Z
EndTime Poslední čas záznamu 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 kompletní 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

Položky protokolu

Následující části ukazují ukázkovou položku protokolu pro každou podporovanou službu Azure Storage.

Příklad položky protokolu pro Blob Storage

2.0;2022-01-03T20:34:54.4617505Z;PutBlob;SASSuccess;201;7;7;sas;;logsamples;blob;https://logsamples.blob.core.windows.net/container1/1.txt?se=2022-02-02T20:34:54Z&amp;sig=XXXXX&amp;sp=rwl&amp;sr=c&amp;sv=2020-04-08&amp;timeout=901;"/logsamples/container1/1.txt";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53371;2019-12-12;654;13;337;0;13;"xxxxxxxxxxxxxxxxxxxxx==";"xxxxxxxxxxxxxxxxxxxxx==";"&quot;0x8D9CEF88004E296&quot;";Monday, 03-Jan-22 20:34:54 GMT;;"Microsoft Azure Storage Explorer, 1.20.1, win32, azcopy-node, 2.0.0, win32, AzCopy/10.11.0 Azure-Storage/0.13 (go1.15; Windows_NT)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;

Příklad položky protokolu pro Blob Storage (Data Lake Storage Gen2 povoleno)

2.0;2022-01-04T22:50:56.0000775Z;RenamePathFile;Success;201;49;49;authenticated;logsamples;logsamples;blob;"https://logsamples.dfs.core.windows.net/my-container/myfileorig.png?mode=legacy";"/logsamples/my-container/myfilerenamed.png";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;73.157.16.8;2020-04-08;591;0;224;0;0;;;;Friday, 11-Jun-21 17:58:15 GMT;;"Microsoft Azure Storage Explorer, 1.19.1, win32 azsdk-js-storagedatalake/12.3.1 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;

Příklad položky protokolu pro Queue Storage

2.0;2022-01-03T20:35:04.6097590Z;PeekMessages;Success;200;5;5;authenticated;logsamples;logsamples;queue;https://logsamples.queue.core.windows.net/queue1/messages?numofmessages=32&amp;peekonly=true&amp;timeout=30;"/logsamples/queue1";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53385;2020-04-08;536;0;232;62;0;;;;;;"Microsoft Azure Storage Explorer, 1.20.1, win32 azsdk-js-storagequeue/12.3.1 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";;;;;;;;

Příklad položky protokolu pro Table Storage

1.0;2022-01-03T20:35:13.0719766Z;CreateTable;Success;204;30;30;authenticated;logsamples;logsamples;table;https://logsamples.table.core.windows.net/Tables;"/logsamples/Table1";xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx;0;71.197.193.44:53389;2018-03-28;601;22;339;0;22;;;;;;"Microsoft Azure Storage Explorer, 1.20.1, win32, Azure-Storage/2.10.3 (NODE-VERSION v12.16.3; Windows_NT 10.0.22000)";;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"

Další kroky