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:

Lokalizacja źródłowa Type Wiadomość
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:

Column 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ą:

Column 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 .

Screenshot of the Log Analytics custom log tables.

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

Następne kroki