Povolení protokolování diagnostiky aplikací ve službě Azure 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 je k dispozici nová integrovaná funkce protokolování s monitorováním Azure. Další informace o této funkci najdete v části Odesílání protokolů do služby Azure Monitor .

Typ Platforma Umístění 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 tuto chybovou stránku uložit pokaždé, když dojde k chybě aplikace s kódem HTTP 400 nebo vyšším. 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. Je užitečné, pokud chcete zlepšit výkon webu nebo izolovat konkrétní chybu HTTP. Jedna složka se vygeneruje pro každý neúspěšný požadavek, který 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. Java, PHP, Node.js, protokoly aplikací Pythonu se dají ukládat jenom do systému souborů 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é
Podrobné 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 žádostí 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 tomu, že události v datovém proudu jsou mimo 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 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 .

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 požadavků 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 informace si můžete přečí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/ Obsahují protokoly vygenerované interními procesy nasazení a také protokoly pro nasazení Gitu.

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

S novou integrací služby Azure Monitor můžete vytvořit diagnostické Nastavení k odesílání protokolů do účtů úložiště, služeb Event Hubs a Log Analytics.

Nastavení diagnostiky

Podporované typy protokolů

Následující tabulka uvádí podporované typy protokolů a popisy:

Název protokolu Typ protokolu Windows Kontejner Windows Linux Kontejner Linuxu Popis
Protokoly konzoly služby App Service AppServiceConsoleLogs Java SE & Tomcat Ano Ano Yes Standardní výstup a standardní chyba 3
Protokoly HTTP AppServiceHTTPLogs Ano Ano Ano Yes Protokoly webového serveru
Protokoly platformy App Service Environment AppServiceEnvironmentPlatformLogs Yes Ano Yes App Service Environment: Škálování, změny konfigurace a protokoly stavu
Přístup k protokolům auditu AppServiceAuditLogs Ano Ano Ano Yes Aktivita přihlášení přes FTP a Kudu
Protokoly auditu změn obsahu webu AppServiceFileAuditLogs Ano Yes přidáme přidáme Změny souboru provedené v obsahu webu; k dispozici pouze pro úroveň Premium a vyšší
Protokoly aplikací služby App Service AppServiceAppLogs ASP.NET, .NET Core a Tomcat 1 ASP.NET & Tomcat 1 .NET Core, Java, SE & Tomcat Požehnané obrázky 2 Java SE & Tomcat Požehnané obrázky 2 Protokoly aplikací 3
Protokoly auditu IPSecurity AppServiceIPSecAuditLogs Ano Ano Ano Yes Požadavky z pravidel PROTOKOLU IP
Protokoly platformy App Service AppServicePlatformLogs přidáme Ano Ano Yes Protokoly operací kontejneru
Hlášení protokolů auditu antivirové ochrany AppServiceAntivirusScanAuditLogs 4 Ano Ano Ano Yes Protokoly antivirové kontroly pomocí programu Microsoft Defender for Cloud; k dispozici pouze pro úroveň Premium

1 Pro aplikace Tomcat přidejte TOMCAT_USE_STARTUP_BAT do nastavení aplikace a nastavte ho na false nebo 0. Potřebujete mít nejnovější verzi Tomcat a používat java.util.logging.

2 Pro aplikace Java SE přidejte WEBSITE_AZMON_PREVIEW_ENABLED do nastavení aplikace a nastavte ho na true nebo na 1.

3 Aktuální limit protokolování je nastavený na 100 protokolů za minutu.

4 Typ protokolu AppServiceAntivirusScanAuditLogs je stále ve verzi Preview.

Aspekty sítí

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

Další kroky