Sdílet prostřednictvím


Povolení protokolování diagnostiky aplikací ve službě Azure App Service

Poznámka:

Od 1. června 2024 budou mít všechny nově vytvořené aplikace App Service možnost vygenerovat jedinečný výchozí název hostitele pomocí zásad <app-name>-<random-hash>.<region>.azurewebsites.netvytváření názvů . Stávající názvy aplikací zůstanou beze změny.

Příklad: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Další podrobnosti najdete v tématu Jedinečný výchozí název hostitele pro prostředek služby App Service.

Toto video ukazuje, jak povolit protokolování diagnostiky pro aplikace.

Kroky ve videu jsou popsané také v následujících částech.

Přehled

Azure poskytuje integrovanou diagnostiku, která pomáhá s laděním aplikace App Service. V tomto článku se dozvíte, jak povolit protokolování diagnostiky a přidat do aplikace instrumentaci a jak získat přístup k informacím protokolovaným v Azure.

Tento článek používá k práci s diagnostickými protokoly Azure Portal a Azure CLI. Informace o práci s diagnostickými protokoly pomocí sady Visual Studio najdete v tématu Řešení potíží s Azure v sadě Visual Studio.

Poznámka:

Kromě pokynů pro protokolování v tomto článku můžete použít také integrované protokolování služby Azure Monitor. Další informace o této funkci najdete v části Odesílání protokolů do služby Azure Monitor .

Typ Platforma Umístění úložiště protokolů Popis
Protokolování aplikací Windows, Linux Systém souborů služby App Service nebo objekty blob služby Azure Storage Zaznamenává zprávy vygenerované kódem vaší aplikace. Zprávy můžou být generovány webovou architekturou, kterou zvolíte, nebo přímo z kódu aplikace pomocí standardního vzoru protokolování vašeho jazyka. Každé zprávě je přiřazena jedna z následujících kategorií: Kritické, Chyba, Upozornění, Informace, Ladění a Trasování. Způsob podrobného protokolování můžete vybrat nastavením úrovně závažnosti, když povolíte protokolování aplikace.
Protokolování webového serveru Windows Systém souborů služby App Service nebo objekty blob služby Azure Storage Nezpracovaná data požadavku HTTP ve formátu rozšířeného protokolu W3C Každá zpráva protokolu obsahuje data, jako je metoda HTTP, identifikátor URI prostředku, IP adresa klienta, port klienta, uživatelský agent, kód odpovědi atd.
Podrobné chybové zprávy Windows Systém souborů služby App Service Kopie chybových stránek .htm , které by byly odeslány do klientského prohlížeče. Z bezpečnostních důvodů by se podrobné chybové stránky neměly posílat klientům v produkčním prostředí, ale App Service může uložit chybovou stránku pokaždé, když dojde k chybě aplikace s kódem HTTP 400 nebo vyšší. Stránka může obsahovat informace, které můžou pomoct určit, proč server vrací kód chyby.
Trasování neúspěšných požadavků Windows Systém souborů služby App Service Podrobné informace o trasování neúspěšných požadavků, včetně trasování komponent služby IIS používaných ke zpracování požadavku a času potřebného v jednotlivých komponentách. Tyto informace jsou užitečné, pokud chcete zlepšit výkon webu nebo izolovat konkrétní chybu HTTP. Pro každou neúspěšnou žádost se vygeneruje jedna složka. Složka obsahuje soubor protokolu XML a šablonu stylů XSL pro zobrazení souboru protokolu.
Protokolování nasazení Windows, Linux Systém souborů služby App Service Protokoluje, když publikujete obsah do aplikace. Protokolování nasazení probíhá automaticky a pro protokolování nasazení není možné konfigurovat žádná konfigurovatelná nastavení. Pomůže vám určit, proč nasazení selhalo. Pokud například používáte vlastní skript nasazení, můžete pomocí protokolování nasazení určit, proč skript selhává.

Pokud jsou uložené v systému souborů služby App Service, protokoly podléhají dostupnému úložišti pro vaši cenovou úroveň (viz limity služby App Service).

Poznámka:

App Service poskytuje vyhrazený interaktivní diagnostický nástroj, který vám pomůže s řešením potíží s aplikací. Další informace najdete v tématu Aplikace Azure Přehled diagnostiky služby.

Kromě toho můžete pomocí dalších služeb Azure vylepšit možnosti protokolování a monitorování vaší aplikace, jako je Azure Monitor.

Povolení protokolování aplikace (Windows)

Pokud chcete povolit protokolování aplikací pro aplikace pro Windows na webu Azure Portal, přejděte do aplikace a vyberte protokoly služby App Service.

Vyberte Možnost Zapnuto pro protokolování aplikace (systém souborů) nebo Protokolování aplikace (objekt blob) nebo obojí.

Možnost Systém souborů slouží k dočasným účelům ladění a vypne se za 12 hodin. Možnost Objekt blob je určená pro dlouhodobé protokolování a k zápisu protokolů potřebuje kontejner úložiště objektů blob. Možnost Objekt blob také obsahuje další informace ve zprávách protokolu, jako je ID instance původního virtuálního počítače zprávy protokolu (InstanceId), ID vlákna (Tid) a podrobnější časové razítko (EventTickCount).

Poznámka:

V současné době se do úložiště objektů blob dají zapisovat jenom protokoly aplikací .NET. Protokoly aplikací Java, PHP, Node.js a Pythonu se dají ukládat jenom do systému souborů služby App Service (bez úprav kódu pro zápis protokolů do externího úložiště).

Pokud znovu vygenerujete přístupové klíče účtu úložiště, musíte resetovat odpovídající konfiguraci protokolování, aby bylo možné použít aktualizované přístupové klíče. Akce:

  1. Na kartě Konfigurace nastavte odpovídající funkci protokolování na Vypnuto. Uložte nastavení.
  2. Znovu povolte protokolování do objektu blob účtu úložiště. Uložte nastavení.

Vyberte úroveň nebo úroveň podrobností, která se má protokolovat. Následující tabulka uvádí kategorie protokolů zahrnuté v jednotlivých úrovních:

Level Zahrnuté kategorie
Zakázáno Nic
Chyba Chyba, kritická
Upozorňující Upozornění, chyba, kritické
Informace Informace, upozornění, chyba, kritické
Užvaněný Trasování, Ladění, Informace, Upozornění, Chyba, Kritické (všechny kategorie)

Jakmile budete hotovi, vyberte Uložit.

Poznámka:

Pokud zapisujete protokoly do objektů blob, zásady uchovávání informací už neplatí, pokud aplikaci odstraníte, ale zachováte protokoly v objektech blob. Další informace najdete v tématu Náklady, které se můžou nabíhají po odstranění prostředku.

Povolení protokolování aplikace (Linux nebo kontejner)

Pokud chcete povolit protokolování aplikací pro linuxové aplikace nebo vlastní kontejnery na webu Azure Portal, přejděte do aplikace a vyberte protokoly služby App Service.

V protokolování aplikace vyberte Systém souborů.

V části Kvóta (MB) zadejte kvótu disku pro protokoly aplikace. V období uchovávání (dny) nastavte počet dnů, po které se mají protokoly uchovávat.

Jakmile budete hotovi, vyberte Uložit.

Povolení protokolování webového serveru

Pokud chcete povolit protokolování webového serveru pro aplikace pro Windows na webu Azure Portal, přejděte do aplikace a vyberte protokoly služby App Service.

Pokud chcete protokolování webového serveru uložit do úložiště objektů blob, vyberte Úložiště a uložte protokoly do systému souborů služby App Service.

V období uchovávání (dny) nastavte počet dnů, po které se mají protokoly uchovávat.

Poznámka:

Pokud znovu vygenerujete přístupové klíče účtu úložiště, musíte resetovat odpovídající konfiguraci protokolování, aby se používaly aktualizované klíče. Akce:

  1. Na kartě Konfigurace nastavte odpovídající funkci protokolování na Vypnuto. Uložte nastavení.
  2. Znovu povolte protokolování do objektu blob účtu úložiště. Uložte nastavení.

Jakmile budete hotovi, vyberte Uložit.

Poznámka:

Pokud zapisujete protokoly do objektů blob, zásady uchovávání informací už neplatí, pokud aplikaci odstraníte, ale zachováte protokoly v objektech blob. Další informace najdete v tématu Náklady, které se můžou nabíhají po odstranění prostředku.

Protokolovat podrobné chyby

Pokud chcete uložit chybovou stránku nebo trasování neúspěšných požadavků pro aplikace pro Windows na webu Azure Portal, přejděte do aplikace a vyberte protokoly služby App Service.

V části Podrobné protokolování chyb nebo Trasování neúspěšných požadavků vyberte Zapnuto a pak vyberte Uložit.

Oba typy protokolů jsou uložené v systému souborů služby App Service. Zachovají se až 50 chyb (souborů nebo složek). Pokud počet souborů HTML překročí 50, nejstarší chybové soubory se automaticky odstraní.

Funkce trasování neúspěšných požadavků ve výchozím nastavení zaznamenává protokol požadavků, u kterých došlo k selhání se stavovými kódy HTTP mezi 400 a 600. Pokud chcete zadat vlastní pravidla, můžete přepsat <traceFailedRequests> oddíl v souboru web.config .

Přidání zpráv protokolu do kódu

V kódu aplikace použijete obvyklé možnosti protokolování k odesílání zpráv protokolu do protokolů aplikace. Příklad:

Protokoly datových proudů

Před streamováním protokolů v reálném čase povolte požadovaný typ protokolu. App Service streamuje všechny informace zapsané do výstupu konzoly nebo souborů končících na .txt, .log nebo .htm, které jsou uložené v adresáři /home/LogFiles (D:\home\LogFiles).

Poznámka:

Některé typy zápisu do vyrovnávací paměti protokolování do souboru protokolu, což může vést k událostem, které se v datovém proudu zobrazují v nesprávném pořadí. Například položka protokolu aplikace, která nastane, když uživatel navštíví stránku, může být zobrazena ve streamu před odpovídající položkou protokolu HTTP pro požadavek stránky.

Na webu Azure Portal

Pokud chcete streamovat protokoly na webu Azure Portal, přejděte do aplikace a vyberte Stream protokolu.

V Cloud Shellu

Pokud chcete streamovat protokoly živě v Cloud Shellu, použijte následující příkaz:

Důležité

Tento příkaz nemusí fungovat s webovými aplikacemi hostovanými v plánu služby App Service pro Linux.

az webapp log tail --name appname --resource-group myResourceGroup

Pokud chcete filtrovat konkrétní typy protokolů, například HTTP, použijte parametr --provider . Příklad:

az webapp log tail --name appname --resource-group myResourceGroup --provider http

V místním terminálu

Pokud chcete streamovat protokoly v místní konzole, nainstalujte Azure CLI a přihlaste se ke svému účtu. Po přihlášení postupujte podle pokynů pro Cloud Shell.

Přístup k souborům protokolu

Pokud pro typ protokolu nakonfigurujete možnost objektů blob služby Azure Storage, potřebujete klientský nástroj, který funguje se službou Azure Storage. Další informace najdete v tématu Klientské nástroje služby Azure Storage.

V případě protokolů uložených v systému souborů služby App Service je nejjednodušším způsobem, jak získat přístup k souborům, stáhnout soubor ZIP v prohlížeči na adrese:

  • Linux nebo vlastní kontejnery: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Aplikace pro Windows: https://<app-name>.scm.azurewebsites.net/api/dump

V případě linuxových nebo vlastních kontejnerů soubor ZIP obsahuje výstupní protokoly konzoly pro hostitele Dockeru i kontejner Dockeru. U aplikace se škálováním na více systémů soubor ZIP obsahuje jednu sadu protokolů pro každou instanci. V systému souborů služby App Service jsou tyto soubory protokolů obsahem adresáře /home/LogFiles . Protokoly nasazení se ukládají v umístění /site/deployments/.

U aplikací pro Windows soubor ZIP obsahuje obsah adresáře D:\Home\LogFiles v systému souborů služby App Service. Má následující strukturu:

Typ protokolu Adresář Popis
Protokoly aplikací /LogFiles/Application/ Obsahuje jeden nebo více textových souborů. Formát zpráv protokolu závisí na poskytovateli protokolování, který používáte.
Trasování neúspěšných požadavků /LogFiles/W3SVC#########/ Obsahuje soubory XML a soubor XSL. Formátované soubory XML můžete zobrazit v prohlížeči.
Podrobné protokoly chyb /LogFiles/DetailedErrors/ Obsahuje soubory chyb HTM. Soubory HTM můžete zobrazit v prohlížeči.
Dalším způsobem, jak zobrazit trasování neúspěšných požadavků, je přejít na stránku aplikace na portálu. V nabídce vlevo vyberte Diagnostikovat a řešit problémy, vyhledejte protokoly trasování neúspěšných žádostí a potom kliknutím na ikonu procházejte a zobrazte požadované trasování.
Protokoly webového serveru /LogFiles/http/RawLogs/ Obsahuje textové soubory formátované pomocí rozšířeného formátu protokolu W3C. Tyto soubory můžete číst pomocí textového editoru nebo nástroje, jako je například Log Parser.
Služba App Service nepodporuje s-computernamepole ani , s-ipani cs-version pole.
Protokoly nasazení /LogFiles/Git/ a /deployments/ Obsahuje protokoly vygenerované interními procesy nasazení a také protokoly pro nasazení Gitu.

Odesílání protokolů do služby Azure Monitor

S integrací služby Azure Monitor můžete vytvořit nastavení diagnostiky pro odesílání protokolů do účtů úložiště, center událostí a Log Analytics. Když přidáte nastavení diagnostiky, Služba App Service přidá do aplikace nastavení aplikace, která aktivuje restartování aplikace.

Nastavení diagnostiky

Podporované typy protokolů

Seznam podporovaných typů protokolů a jejich popis najdete v tématu Podporované protokoly prostředků pro Microsoft.Web.

Aspekty sítí

Informace o omezeních nastavení diagnostiky najdete v oficiální dokumentaci k nastavení diagnostiky týkající se cílových limitů.

Další kroky