Monitorování protokolů v Azure Container Apps pomocí Log Analytics

Služba Azure Container Apps je integrovaná se službou Azure Monitor Log Analytics, která monitoruje a analyzuje protokoly vaší aplikace kontejneru. Když jste jako řešení pro monitorování protokolů vybrali, prostředí Container Apps obsahuje pracovní prostor služby Log Analytics, který poskytuje společné místo pro ukládání dat protokolů systému a aplikací ze všech kontejnerových aplikací spuštěných v prostředí.

Položky protokolu jsou přístupné dotazováním tabulek Log Analytics prostřednictvím webu Azure Portal nebo příkazového prostředí pomocí Azure CLI.

Pro Container Apps existují dva typy protokolů.

  • Protokoly konzoly, které vaše aplikace vygeneruje.
  • Systémové protokoly, které jsou generovány službou Container Apps.

Systémové protokoly

Služba Container Apps poskytuje zprávy protokolu systému na úrovni aplikace kontejneru. Systémové protokoly generují následující zprávy:

Source Type Message
Dapr Informace Úspěšně se vytvořil název> komponenty dapr komponenty <s oborem <dapr-component-scope>
Dapr Informace Úspěšně aktualizován název> komponenty komponenty <dapr s oborem <component-type>
Dapr Chyba Chyba při vytváření názvu komponenty dapr <>
Připojení svazků Informace Úspěšně připojený <název> svazku svazku pro <obor revize revize>
Připojení svazků Chyba Chyba při připojování názvu svazku <>
Vazba domény Informace Doména úspěšně vázaná <> na název kontejnerové <aplikace kontejneru>
Authentication Informace Ověřování je povolené v aplikaci. Vytvoření konfigurace ověřování
Authentication Informace Konfigurace ověřování byla úspěšně vytvořena.
Hmotnost provozu Informace Nastavení hmotnosti <provozu v procentech> pro <název revize\>
Zřizování revizí Informace Vytvoření nové revize: <název revize>
Zřizování revizí Informace Název úspěšně zřízené revize <>
Zřizování revizí Informace Deaktivace starých revizí od ActiveRevisionsMode=Single
Zřizování revizí Chyba Při zřizování revizí <>došlo k chybě. Kód chyby: <[ErrImagePull]|[ Časový limit]|[ContainerCrashing]>

Data systémového protokolu jsou přístupná dotazováním tabulky ContainerAppSystemLogs_CL . Nejčastěji používané sloupce specifické pro Container Apps v tabulce jsou:

Sloupec Popis
ContainerAppName_s Název kontejnerové aplikace
EnvironmentName_s Název prostředí Container Apps
Log_s Zpráva protokolu
RevisionName_s Název revize

Protokoly konzoly

Protokoly konzoly pocházejí z stderrstdout kontejnerů v kontejnerové aplikaci a ze sajdkáře Dapr. Protokoly konzoly můžete zobrazit dotazováním tabulky ContainerAppConsoleLogs_CL .

Tip

Instrumentace kódu pomocí dobře definovaných zpráv protokolu vám může pomoct pochopit, jak váš kód funguje, a ladit problémy. Další informace oosvědčených

Mezi nejčastěji používané sloupce specifické pro Container Apps v ContainerAppConsoleLogs_CL patří:

Sloupec Popis
ContainerAppName_s Název kontejnerové aplikace
ContainerGroupName_g Název repliky
ContainerId_s Identifikátor kontejneru
ContainerImage_s Název image kontejneru
EnvironmentName_s Název prostředí Container Apps
Log_s Zpráva protokolu
RevisionName_s Název revize

Dotazy na protokol s využitím analytiky protokolů

Log Analytics je nástroj na webu Azure Portal, který můžete použít k zobrazení a analýze dat protokolu. Pomocí Log Analytics můžete psát dotazy Kusto a pak řadit, filtrovat a vizualizovat výsledky v grafech, abyste zjistili trendy a identifikovali problémy. S výsledky dotazu můžete interaktivně pracovat nebo je používat s dalšími funkcemi, jako jsou upozornění, řídicí panely a sešity.

portál Azure

V nabídce bočního panelu na stránce aplikace kontejneru spusťte Log Analytics z protokolů . Log Analytics můžete spustit také z protokolů monitorování>.

Protokoly můžete dotazovat pomocí tabulek uvedených na kartě Tabulky kategorií CustomLogs. Tabulky v této kategorii jsou a ContainerAppSystemlogs_CLContainerAppConsoleLogs_CL tabulky.

Screenshot of the Log Analytics custom log tables.

Níže je dotaz Kusto, který zobrazuje položky protokolu konzoly pro aplikaci kontejneru s názvem 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

Níže je dotaz Kusto, který zobrazuje položky systémového protokolu pro aplikaci kontejneru s názvem 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

Další informace týkající se Log Analytics a dotazů na protokoly najdete v kurzu služby Log Analytics.

Azure CLI / PowerShell

Protokoly Container Apps je možné dotazovat pomocí Azure CLI.

V tomto příkladu se Azure CLI dotazuje na výstup tabulky obsahující záznamy protokolu pro album-api aplikace kontejneru. Sloupce tabulky jsou určeny parametry za operátorem project . Proměnná $WORKSPACE_CUSTOMER_ID obsahuje identifikátor GUID pracovního prostoru služby Log Analytics.

Tento příklad dotazuje ContainerAppConsoleLogs_CL tabulku:

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

Tento příklad dotazuje ContainerAppSystemLogs_CL tabulku:

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

Další kroky