Monitorowanie dzienników w usłudze Azure Container Apps za pomocą usługi Log Analytics
Usługa Azure Container Apps jest zintegrowana z usługą Azure Monitor Log Analytics w celu monitorowania i analizowania dzienników aplikacji kontenera. Po wybraniu jako rozwiązania do monitorowania dzienników środowisko usługi Container Apps zawiera obszar roboczy usługi Log Analytics, który udostępnia wspólne miejsce do przechowywania danych dziennika systemu i aplikacji ze wszystkich aplikacji kontenerów działających w środowisku.
Wpisy dziennika są dostępne przez wykonywanie zapytań dotyczących tabel usługi Log Analytics za pośrednictwem witryny Azure Portal lub powłoki poleceń przy użyciu interfejsu wiersza polecenia platformy Azure.
Istnieją dwa typy dzienników dla usługi Container Apps.
- Dzienniki konsoli, które są emitowane przez aplikację.
- Dzienniki systemowe, które są emitowane przez usługę Container Apps.
Dzienniki systemu
Usługa Container Apps udostępnia komunikaty dziennika systemu na poziomie aplikacji kontenera. Dzienniki systemowe emitują następujące komunikaty:
Źródło | Typ | Komunikat |
---|---|---|
Dapr | Informacje | Pomyślnie utworzono nazwę> składnika <dapr z zakresem dapr-component-scope <> |
Dapr | Informacje | Pomyślnie zaktualizowano nazwę> składnika dapr <z typem składnika zakresu <> |
Dapr | Błąd | Błąd podczas tworzenia nazwy składnika <dapr> |
Instalowanie woluminów | Informacje | Pomyślnie zamontowano nazwę> woluminu woluminu <dla zakresu poprawek poprawek <> |
Instalowanie woluminów | Błąd | Błąd podczas instalowania woluminu <volume-name> |
Powiązanie domeny | Informacje | Pomyślnie powiązana domena> domeny <z nazwą aplikacji kontenera aplikacji <kontenera> |
Uwierzytelnianie | Informacje | Uwierzytelnianie włączone w aplikacji. Tworzenie konfiguracji uwierzytelniania |
Uwierzytelnianie | Informacje | Konfiguracja uwierzytelniania została pomyślnie utworzona |
Waga ruchu | Informacje | Ustawianie wagi ruchu procentowego <>dla poprawki nazwa-poprawki<\> |
Aprowizowanie poprawek | Informacje | Tworzenie nowej poprawki: <nazwa-poprawki> |
Aprowizowanie poprawek | Informacje | Pomyślnie zainicjowano obsługę administracyjną nazwy poprawki <> |
Aprowizowanie poprawek | Informacje | Dezaktywowanie starych poprawek od "ActiveRevisionsMode=Single" |
Aprowizowanie poprawek | Błąd | Błąd podczas aprowizacji poprawki nazwa-poprawki<>. Kod błędu: <[ErrImagePull]|[ Limit czasu]|[ContainerCrashing]> |
Dane dziennika systemu są dostępne przez wysłanie zapytania do ContainerAppSystemLogs_CL
tabeli. Najczęściej używane kolumny specyficzne dla usługi Container Apps w tabeli to:
Kolumna | opis |
---|---|
ContainerAppName_s |
Nazwa aplikacji kontenera |
EnvironmentName_s |
Nazwa środowiska usługi Container Apps |
Log_s |
Komunikat dotyczący rejestrowania |
RevisionName_s |
Nazwa poprawki |
Dzienniki konsoli
Dzienniki konsoli pochodzą z stderr
komunikatów i stdout
z kontenerów w aplikacji kontenera i przyczepkach dapr. Dzienniki konsoli można wyświetlić, wykonując ContainerAppConsoleLogs_CL
zapytanie dotyczące tabeli.
Napiwek
Instrumentowanie kodu za pomocą dobrze zdefiniowanych komunikatów dziennika może ułatwić zrozumienie sposobu działania kodu i debugowania problemów. Aby dowiedzieć się więcej na temat najlepszych rozwiązań, zobacz Projektowanie operacji.
Najczęściej używane kolumny specyficzne dla usługi Container Apps w ContainerAppConsoleLogs_CL obejmują:
Kolumna | opis |
---|---|
ContainerAppName_s |
Nazwa aplikacji kontenera |
ContainerGroupName_g |
Nazwa repliki |
ContainerId_s |
Identyfikator kontenera |
ContainerImage_s |
Nazwa obrazu kontenera |
EnvironmentName_s |
Nazwa środowiska usługi Container Apps |
Log_s |
Komunikat dotyczący rejestrowania |
RevisionName_s |
Nazwa poprawki |
Dziennik zapytań przy użyciu usługi Log Analytics
Log Analytics to narzędzie w witrynie Azure Portal, którego można użyć do wyświetlania i analizowania danych dziennika. Za pomocą usługi Log Analytics możesz pisać zapytania Kusto, a następnie sortować, filtrować i wizualizować wyniki na wykresach, aby wykrywać trendy i identyfikować problemy. Możesz pracować interaktywnie z wynikami zapytania lub używać ich z innymi funkcjami, takimi jak alerty, pulpity nawigacyjne i skoroszyty.
Azure Portal
Uruchom usługę Log Analytics z obszaru Dzienniki w menu paska bocznego na stronie aplikacji kontenera. Możesz również uruchomić usługę Log Analytics z obszaru Monitorowanie>dzienników.
Możesz wykonywać zapytania dotyczące dzienników przy użyciu tabel wymienionych na karcie Tabele kategorii CustomLogs. Tabele w tej kategorii to ContainerAppSystemlogs_CL
tabele i ContainerAppConsoleLogs_CL
.
Poniżej znajduje się zapytanie Kusto, które wyświetla wpisy dziennika konsoli dla aplikacji kontenera o nazwie album-api.
ContainerAppConsoleLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s
| take 100
Poniżej znajduje się zapytanie Kusto, które wyświetla wpisy dziennika systemu dla aplikacji kontenera o nazwie album-api.
ContainerAppSystemLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, EnvName=EnvironmentName_s, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s
| take 100
Aby uzyskać więcej informacji na temat usługi Log Analytics i zapytań dzienników, zobacz samouczek usługi Log Analytics.
Interfejs wiersza polecenia platformy Azure/program PowerShell
Dzienniki usługi Container Apps można wykonywać w zapytaniu przy użyciu interfejsu wiersza polecenia platformy Azure.
Te przykładowe zapytania interfejsu wiersza polecenia platformy Azure generują tabelę zawierającą rekordy dziennika dla interfejsu API nazwy aplikacji kontenera. Kolumny tabeli są określane przez parametry po operatorze project
. Zmienna $WORKSPACE_CUSTOMER_ID
zawiera identyfikator GUID obszaru roboczego usługi Log Analytics.
W tym przykładzie jest wysyłana kwerenda do ContainerAppConsoleLogs_CL
tabeli:
az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s, LogLevel_s | take 5" --out table
W tym przykładzie jest wysyłana kwerenda do ContainerAppSystemLogs_CL
tabeli:
az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppSystemLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s, LogLevel_s | take 5" --out table