Włączanie rejestrowania diagnostyki dla aplikacji w usłudze Azure App Service
W tym filmie wideo pokazano, jak włączyć rejestrowanie diagnostyczne dla aplikacji.
Kroki opisane w filmie wideo zostały również opisane w poniższych sekcjach.
Omówienie
Platforma Azure udostępnia wbudowaną diagnostykę , która ułatwia debugowanie aplikacji usługi App Service. Z tego artykułu dowiesz się, jak włączyć rejestrowanie diagnostyczne i dodać instrumentację do aplikacji, a także jak uzyskać dostęp do informacji rejestrowanych przez platformę Azure.
W tym artykule do pracy z dziennikami diagnostycznymi są używane witryny Azure Portal i interfejs wiersza polecenia platformy Azure. Aby uzyskać informacje na temat pracy z dziennikami diagnostycznymi przy użyciu programu Visual Studio, zobacz Rozwiązywanie problemów z platformą Azure w programie Visual Studio.
Uwaga
Oprócz instrukcji rejestrowania w tym artykule dostępna jest nowa, zintegrowana funkcja rejestrowania z usługą Azure Monitoring. Więcej informacji na ten temat można znaleźć w sekcji Wysyłanie dzienników do usługi Azure Monitor .
Typ | Platforma | Lokalizacja | opis |
---|---|---|---|
Rejestrowanie aplikacji | Windows, Linux | System plików usługi App Service i/lub obiekty blob usługi Azure Storage | Rejestruje komunikaty generowane przez kod aplikacji. Komunikaty mogą być generowane przez wybraną strukturę internetową lub z poziomu kodu aplikacji bezpośrednio przy użyciu standardowego wzorca rejestrowania języka. Każdy komunikat jest przypisany do jednej z następujących kategorii: Krytyczne, Błąd, Ostrzeżenie, Informacje, Debugowanie i Śledzenie. Możesz wybrać sposób pełnego rejestrowania, ustawiając poziom ważności podczas włączania rejestrowania aplikacji. |
Rejestrowanie serwera sieci Web | Windows | System plików usługi App Service lub obiekty blob usługi Azure Storage | Nieprzetworzone dane żądania HTTP w formacie rozszerzonego pliku dziennika W3C. Każdy komunikat dziennika zawiera dane, takie jak metoda HTTP, identyfikator URI zasobu, adres IP klienta, port klienta, agent użytkownika, kod odpowiedzi itd. |
Szczegółowe komunikaty o błędach | Windows | System plików usługi App Service | Kopie stron błędów .htm, które zostałyby wysłane do przeglądarki klienta. Ze względów bezpieczeństwa szczegółowe strony błędów nie powinny być wysyłane do klientów w środowisku produkcyjnym, ale usługa App Service może zapisać stronę błędu za każdym razem, gdy wystąpi błąd aplikacji z kodem HTTP 400 lub nowszym. Strona może zawierać informacje, które mogą pomóc określić, dlaczego serwer zwraca kod błędu. |
śledzenia żądań zakończonego niepowodzeniem | Windows | System plików usługi App Service | Szczegółowe informacje dotyczące śledzenia żądań, w tym ślad składników usług IIS używanych do przetwarzania żądania i czasu potrzebnego w każdym składniku. Jest to przydatne, jeśli chcesz zwiększyć wydajność lokacji lub wyizolować określony błąd HTTP. Dla każdego żądania, które zakończyło się niepowodzeniem, jest generowany jeden folder, który zawiera plik dziennika XML, oraz arkusz stylów XSL w celu wyświetlenia pliku dziennika. |
Rejestrowanie wdrożenia | Windows, Linux | System plików usługi App Service | Rejestruje podczas publikowania zawartości w aplikacji. Rejestrowanie wdrożenia odbywa się automatycznie i nie ma konfigurowalnych ustawień rejestrowania wdrożenia. Pomaga określić, dlaczego wdrożenie nie powiodło się. Jeśli na przykład używasz niestandardowego skryptu wdrażania, możesz użyć rejestrowania wdrożenia, aby określić, dlaczego skrypt kończy się niepowodzeniem. |
W przypadku przechowywania w systemie plików usługi App Service dzienniki podlegają dostępnemu magazynowi dla warstwy cenowej (zobacz Limity usługi App Service).
Uwaga
Usługa App Service udostępnia dedykowane, interaktywne narzędzie diagnostyczne ułatwiające rozwiązywanie problemów z aplikacją. Aby uzyskać więcej informacji, zobacz omówienie diagnostyki usługi aplikacja systemu Azure Service.
Ponadto możesz użyć innych usług platformy Azure, aby ulepszyć możliwości rejestrowania i monitorowania aplikacji, takie jak Azure Monitor.
Włączanie rejestrowania aplikacji (Windows)
Aby włączyć rejestrowanie aplikacji dla aplikacji systemu Windows w witrynie Azure Portal, przejdź do aplikacji i wybierz pozycję Dzienniki usługi App Service.
Wybierz pozycję Włączone dla opcji Rejestrowanie aplikacji (system plików) lub Rejestrowanie aplikacji (blob) lub oba te elementy.
Opcja System plików służy do tymczasowego debugowania i wyłącza się w ciągu 12 godzin. Opcja Obiekt blob dotyczy rejestrowania długoterminowego i wymaga kontenera magazynu obiektów blob do zapisywania dzienników. Opcja Obiekt blob zawiera również dodatkowe informacje w komunikatach dziennika, takie jak identyfikator początkowego wystąpienia maszyny wirtualnej komunikatu dziennika (), identyfikator wątku (Tid
InstanceId
) i bardziej szczegółowy znacznik czasu (EventTickCount
).
Uwaga
Obecnie tylko dzienniki aplikacji platformy .NET można zapisywać w magazynie obiektów blob. Dzienniki aplikacji języka Java, PHP, Node.js języka Python można przechowywać tylko w systemie plików usługi App Service (bez modyfikacji kodu w celu zapisywania dzienników w magazynie zewnętrznym).
Ponadto w przypadku ponownego wygenerowania kluczy dostępu konta magazynu należy zresetować odpowiednią konfigurację rejestrowania, aby używać zaktualizowanych kluczy dostępu. Czynność:
- Na karcie Konfigurowanie ustaw odpowiednią funkcję rejestrowania na Wyłączone. Zapisz ustawienie.
- Ponownie włącz rejestrowanie w obiekcie blob konta magazynu. Zapisz ustawienie.
Wybierz poziom lub poziom szczegółów do zarejestrowania. W poniższej tabeli przedstawiono kategorie dzienników uwzględnione na każdym poziomie:
Poziom | Uwzględnione kategorie |
---|---|
Disabled | Brak |
Błąd | Błąd, krytyczny |
Ostrzeżenie | Ostrzeżenie, błąd, krytyczny |
Informacje | Informacje, ostrzeżenie, błąd, krytyczne |
Pełne | Śledzenie, debugowanie, informacje, ostrzeżenie, błąd, krytyczne (wszystkie kategorie) |
Po zakończeniu wybierz Zapisz.
Uwaga
Jeśli zapisujesz dzienniki w obiektach blob, zasady przechowywania nie będą już stosowane, jeśli usuniesz aplikację, ale zachowasz dzienniki w obiektach blob. Aby uzyskać więcej informacji, zobacz Koszty, które mogą być naliczane po usunięciu zasobu.
Włączanie rejestrowania aplikacji (Linux/Container)
Aby włączyć rejestrowanie aplikacji dla aplikacji systemu Linux lub kontenerów niestandardowych w witrynie Azure Portal, przejdź do aplikacji i wybierz pozycję Dzienniki usługi App Service.
W obszarze Rejestrowanie aplikacji wybierz pozycję System plików.
W obszarze Limit przydziału (MB) określ limit przydziału dysku dla dzienników aplikacji. W obszarze Okres przechowywania (dni) ustaw liczbę dni przechowywania dzienników.
Po zakończeniu wybierz Zapisz.
Włączanie rejestrowania serwera internetowego
Aby włączyć rejestrowanie serwera internetowego dla aplikacji systemu Windows w witrynie Azure Portal, przejdź do aplikacji i wybierz pozycję Dzienniki usługi App Service.
W przypadku rejestrowania serwera internetowego wybierz pozycję Magazyn , aby przechowywać dzienniki w magazynie obiektów blob lub system plików, aby przechowywać dzienniki w systemie plików usługi App Service.
W obszarze Okres przechowywania (dni) ustaw liczbę dni przechowywania dzienników.
Uwaga
Jeśli ponownie wygenerujesz klucze dostępu konta magazynu, musisz zresetować odpowiednią konfigurację rejestrowania, aby używać zaktualizowanych kluczy. Czynność:
- Na karcie Konfigurowanie ustaw odpowiednią funkcję rejestrowania na Wyłączone. Zapisz ustawienie.
- Ponownie włącz rejestrowanie w obiekcie blob konta magazynu. Zapisz ustawienie.
Po zakończeniu wybierz Zapisz.
Uwaga
Jeśli zapisujesz dzienniki w obiektach blob, zasady przechowywania nie będą już stosowane, jeśli usuniesz aplikację, ale zachowasz dzienniki w obiektach blob. Aby uzyskać więcej informacji, zobacz Koszty, które mogą być naliczane po usunięciu zasobu.
Rejestrowanie szczegółowych błędów
Aby zapisać stronę błędu lub śledzenie żądań niepomyślnych dla aplikacji systemu Windows w witrynie Azure Portal, przejdź do aplikacji i wybierz pozycję Dzienniki usługi App Service.
W obszarze Szczegółowe rejestrowanie błędów lub Śledzenie żądań niepomyślnych wybierz pozycję Włączone, a następnie wybierz pozycję Zapisz.
Oba typy dzienników są przechowywane w systemie plików usługi App Service. Zachowywane są maksymalnie 50 błędów (pliki/foldery). Gdy liczba plików HTML przekracza 50, najstarsze pliki błędów są automatycznie usuwane.
Funkcja Śledzenie żądań niepomyślnych domyślnie przechwytuje dziennik żądań, które zakończyły się niepowodzeniem z kodami stanu HTTP z zakresu od 400 do 600. Aby określić reguły niestandardowe, możesz zastąpić sekcję <traceFailedRequests>
w pliku web.config .
Dodawanie komunikatów dziennika w kodzie
W kodzie aplikacji używasz zwykłych obiektów rejestrowania do wysyłania komunikatów dziennika do dzienników aplikacji. Na przykład:
ASP.NET aplikacje mogą używać klasy System.Diagnostics.Trace do rejestrowania informacji w dzienniku diagnostycznym aplikacji. Na przykład:
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
Domyślnie ASP.NET Core używa dostawcy rejestrowania Microsoft.Extensions.Logging.AzureAppServices . Aby uzyskać więcej informacji, zobacz ASP.NET Core logging in Azure (Rejestrowanie podstawowe na platformie Azure). Aby uzyskać informacje na temat rejestrowania zestawu SDK usługi WebJobs, zobacz Rozpoczynanie pracy z zestawem SDK usługi Azure WebJobs
Aplikacje języka Python mogą używać pakietu OpenCensus do wysyłania dzienników do dziennika diagnostyki aplikacji.
Strumieniowe przesyłanie dzienników
Przed przesyłaniem strumieniowego dzienników w czasie rzeczywistym włącz odpowiedni typ dziennika. Wszystkie informacje zapisywane w danych wyjściowych lub plikach konsoli kończących się na .txt, .log lub .htm przechowywanych w katalogu /home/LogFiles (D:\home\LogFiles) są przesyłane strumieniowo przez usługę App Service.
Uwaga
Niektóre typy buforów rejestrowania zapisu w pliku dziennika, co może spowodować brak kolejności zdarzeń w strumieniu. Na przykład wpis dziennika aplikacji, który występuje, gdy użytkownik odwiedza stronę, może być wyświetlany w strumieniu przed odpowiednim wpisem dziennika HTTP dla żądania strony.
W witrynie Azure Portal
Aby przesłać strumieniowo dzienniki w witrynie Azure Portal, przejdź do aplikacji i wybierz pozycję Strumień dzienników.
W usłudze Cloud Shell
Aby przesyłać strumieniowo dzienniki na żywo w usłudze Cloud Shell, użyj następującego polecenia:
Ważne
To polecenie może nie działać z aplikacjami internetowymi hostowanymi w planie usługi app service systemu Linux.
az webapp log tail --name appname --resource-group myResourceGroup
Aby filtrować określone typy dzienników, takie jak HTTP, użyj parametru --Provider . Na przykład:
az webapp log tail --name appname --resource-group myResourceGroup --provider http
W terminalu lokalnym
Aby przesyłać strumieniowo dzienniki w konsoli lokalnej, zainstaluj interfejs wiersza polecenia platformy Azure i zaloguj się do swojego konta. Po zalogowaniu postępuj zgodnie z instrukcjami dotyczącymi usługi Cloud Shell
Uzyskiwanie dostępu do plików dziennika
Jeśli skonfigurujesz opcję Obiektów blob usługi Azure Storage dla typu dziennika, potrzebujesz narzędzia klienckiego, które współpracuje z usługą Azure Storage. Aby uzyskać więcej informacji, zobacz Azure Storage Client Tools (Narzędzia klienckie usługi Azure Storage).
W przypadku dzienników przechowywanych w systemie plików usługi App Service najprostszym sposobem jest pobranie pliku ZIP w przeglądarce pod adresem:
- Kontenery niestandardowe systemu Linux/:
https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
- Aplikacje systemu Windows:
https://<app-name>.scm.azurewebsites.net/api/dump
W przypadku kontenerów niestandardowych systemu Linux plik ZIP zawiera dzienniki wyjściowe konsoli zarówno dla hosta platformy Docker, jak i kontenera platformy Docker. W przypadku aplikacji skalowanej w poziomie plik ZIP zawiera jeden zestaw dzienników dla każdego wystąpienia. W systemie plików usługi App Service te pliki dziennika są zawartością katalogu /home/LogFiles .
W przypadku aplikacji systemu Windows plik ZIP zawiera zawartość katalogu D:\Home\LogFiles w systemie plików usługi App Service. Ma następującą strukturę:
Typ dziennika | Katalog | opis |
---|---|---|
Dzienniki aplikacji | /LogFiles/Application/ | Zawiera co najmniej jeden plik tekstowy. Format komunikatów dziennika zależy od używanego dostawcy rejestrowania. |
Ślady żądań, które zakończyły się niepowodzeniem | /LogFiles/W3SVC#########/ | Zawiera pliki XML i plik XSL. Sformatowane pliki XML można wyświetlić w przeglądarce. |
Szczegółowe dzienniki błędów | /LogFiles/DetailedErrors/ | Zawiera pliki błędów HTM. Pliki HTM można wyświetlić w przeglądarce. Innym sposobem wyświetlenia śladów żądań, które nie powiodły się, jest przejście do strony aplikacji w portalu. W menu po lewej stronie wybierz pozycję Diagnozuj i rozwiąż problemy, a następnie wyszukaj pozycję Dzienniki śledzenia niepomyślnych żądań, a następnie kliknij ikonę przeglądania i wyświetlania żądanego śladu. |
Dzienniki serwera internetowego | /LogFiles/http/RawLogs/ | Zawiera pliki tekstowe sformatowane przy użyciu rozszerzonego formatu pliku dziennika W3C. Te informacje można odczytywać przy użyciu edytora tekstów lub narzędzia, takiego jak Analizator dzienników. Usługa App Service nie obsługuje s-computername pól , s-ip ani cs-version . |
Dzienniki wdrażania | /LogFiles/Git/ i /deployments/ | Zawierają dzienniki generowane przez wewnętrzne procesy wdrażania, a także dzienniki dla wdrożeń usługi Git. |
Wysyłanie dzienników do usługi Azure Monitor
Dzięki nowej integracji usługi Azure Monitor możesz utworzyć Ustawienia diagnostyczne w celu wysyłania dzienników do kont magazynu, usługi Event Hubs i usługi Log Analytics.
Obsługiwane typy dzienników
W poniższej tabeli przedstawiono obsługiwane typy dzienników i opisy:
Nazwa dziennika | Typ dziennika | Windows | Kontener systemu Windows | Linux | Kontener systemu Linux | opis |
---|---|---|---|---|---|---|
Dzienniki konsoli usługi App Service | AppServiceConsoleLogs | Java SE i Tomcat | Tak | Tak | Tak | Dane wyjściowe w warstwie Standardowa i błąd standardowy 3 |
Dzienniki HTTP | AppServiceHTTPLogs | Tak | Tak | Tak | Tak | Dzienniki serwera internetowego |
Dzienniki platformy środowiska usługi App Service | AppServiceEnvironmentPlatformLogs | Tak | Nie dotyczy | Tak | Tak | Środowisko App Service Environment: skalowanie, zmiany konfiguracji i dzienniki stanu |
Uzyskiwanie dostępu do dzienników inspekcji | AppServiceAuditLogs | Tak | Tak | Tak | Tak | Działanie logowania za pośrednictwem protokołów FTP i Kudu |
Dzienniki inspekcji zmian zawartości witryny | AppServiceFileAuditLogs | Tak | Tak | TBA | TBA | Zmiany w pliku wprowadzone w zawartości witryny; dostępna tylko dla warstwy Premium i nowszej |
Dzienniki aplikacji usługi App Service | AppServiceAppLogs | ASP.NET, .NET Core i Tomcat 1 | ASP.NET i Tomcat 1 | .NET Core, Java, SE i Tomcat Błogosławione obrazy 2 | Java SE i Tomcat Błogosławione Obrazy 2 | Dzienniki aplikacji 3 |
Dzienniki inspekcji zabezpieczeń IP | AppServiceIPSecAuditLogs | Tak | Tak | Tak | Tak | Żądania z reguł adresów IP |
Dzienniki platformy usługi App Service | AppServicePlatformLogs | TBA | Tak | Tak | Tak | Dzienniki operacji kontenera |
Dzienniki inspekcji programu antywirusowego raportów | AppServiceAntivirusScanAuditLogs 4 | Tak | Tak | Tak | Tak | Dzienniki skanowania antywirusowego przy użyciu Microsoft Defender dla Chmury; dostępna tylko dla warstwy Premium |
1 W przypadku aplikacji Tomcat dodaj TOMCAT_USE_STARTUP_BAT
do ustawień aplikacji i ustaw ją na lub false
0
. Musisz korzystać z najnowszej wersji serwera Tomcat i używać pliku java.util.logging.
2 W przypadku aplikacji Java SE dodaj WEBSITE_AZMON_PREVIEW_ENABLED
do ustawień aplikacji i ustaw ją na true
lub na 1
.
3 Bieżący limit rejestrowania jest ustawiony na 100 dzienników na minutę.
4 Typ dziennika AppServiceAntivirusScanAuditLogs jest nadal w wersji zapoznawczej
Zagadnienia dotyczące pracy w sieci
Aby uzyskać informacje o ograniczeniach dotyczących Ustawienia diagnostycznych, zapoznaj się z oficjalną dokumentacją diagnostyki Ustawienia dotyczącą limitów docelowych.
Następne kroki
- Wykonywanie zapytań dotyczących dzienników za pomocą usługi Azure Monitor
- Jak monitorować usługę aplikacja systemu Azure
- Rozwiązywanie problemów z usługą aplikacja systemu Azure w programie Visual Studio
- Samouczek: uruchamianie testu obciążeniowego w celu zidentyfikowania wąskich gardeł wydajności w aplikacji internetowej