Monitorování celého řešení

Dokončeno

V této lekci se podíváme na monitorování celého řešení.

Úvod

Povolení monitorování v dnešních složitých výpočetních prostředích vyžaduje shromažďování provozních dat z každé vrstvy a součásti distribuovaného systému. Potřebujete podrobné přehledy o těchto datech a kombinovat je s různými perspektivami, abyste podpořili velké množství zúčastněných stran ve vaší organizaci.

Azure Monitor shromažďuje data z různých druhů zdrojů, kde je můžete použít k analýze, vizualizaci a upozorňování. Poskytuje podrobné přehledy o všech monitorovaných prostředcích a dokonce i s daty z jiných služeb, které ukládají jejich data ve službě Azure Monitor.

Log Analytics

Protokoly jsou události, ke kterým došlo v rámci systému. Protokoly můžou obsahovat různé druhy dat a můžou být strukturované nebo volné texty s časovým razítkem. Protokoly mohou být vytvořeny sporadicky jako události v prostředí generují položky protokolu. Systém s velkým zatížením obvykle generuje více svazků protokolu.

Protokoly ve službě Azure Monitor jsou cenné pro identifikaci původních příčin problémů. Data, která protokoly služby Azure Monitor shromažďují, jsou uložená v jednom nebo více pracovních prostorech služby Log Analytics. Data se načítají z pracovního prostoru služby Log Analytics pomocí dotazu protokolu, což je požadavek jen pro čtení pro zpracování dat a vrácení výsledků. Dotazy protokolu se zapisují v dotazovací jazyk Kusto (KQL), což je stejný dotazovací jazyk, který Azure Data Explorer používá.

Poznámka:

Vaše ukázková aplikace Azure Spring Apps už byla nastavená s pracovním prostorem služby Log Analytics. Další informace o syntaxi KQL najdete v lekci Souhrn na konci tohoto trénování.

Použití Log Analytics

Existují tři způsoby přístupu k protokolům vaší aplikace: Azure Storage, Centrum událostí Azure a Log Analytics. Tady se zaměříme na Log Analytics, protože se jedná o nejběžnější službu a je integrovaná do Azure Spring Apps pro monitorování metrik.

Důležité

Doba příjmu dat protokolu ve službě Azure Monitor může trvat až 15 minut. Pokud se data v Log Analytics nenašla, může ingestování dat protokolu Azure Spring Apps trvat delší dobu.

  1. Otevřete Azure Portal.

  2. Ze seznamu služeb Azure vyberte Azure Spring Apps .

  3. Vyberte instanci Azure Spring Apps.

  4. Dále v části Monitorování vyberte Protokoly.

  5. Do vyhledávacího pole Dotazu :

    Snímek obrazovky s dotazem na protokoly Azure Spring Apps

    • Pokud chcete zobrazit protokoly, spusťte dotaz, například:

      AppPlatformLogsforSpring
      | limit 50
      
    • Pokud chcete zobrazit metriky, zadejte dotaz, například:

      AzureMetrics
      | limit 50
      
    • Protokoly konkrétní aplikace nebo instance můžete prohledávat nastavením podmínky filtru:

      AppPlatformLogsforSpring
      | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName"
      | limit 50
      

Analýza protokolů aplikace

Protokoly aplikací poskytují důležité informace a podrobné protokoly o stavu, výkonu a dalších informacích vaší aplikace. V další části vám poskytneme dotazy, které vám pomůžou porozumět aktuálním a minulým stavům vaší aplikace.

Zobrazení protokolů aplikací z Azure Spring Apps

  1. Otevřete Azure Portal.

  2. Ze seznamu služeb Azure vyberte Azure Spring Apps .

  3. Vyberte instanci Azure Spring Apps.

  4. Dále v části Monitorování vyberte Protokoly.

  5. Do vyhledávacího pole Dotazu :

    • Pokud chcete zkontrolovat seznam aplikačních protokolů z Azure Spring Apps seřazený podle času s nejnovějšími zobrazenými protokoly, spusťte následující dotaz:

      AppPlatformLogsforSpring
      | project TimeGenerated , ServiceName , AppName , InstanceName , Log
      | sort by TimeGenerated desc
      
    • Pokud chcete zkontrolovat neseřazené položky protokolu, které zmiňují chybu nebo výjimku, spusťte následující dotaz:

      AppPlatformLogsforSpring
      | project TimeGenerated , ServiceName , AppName , InstanceName , Log
      | where Log contains "error" or Log contains "exception"
      
    • Pokud chcete vytvořit výsečový graf zobrazující počet chyb a výjimek zaprotokolovaných vaší aplikací, spusťte následující dotaz:

      AppPlatformLogsforSpring
      | where TimeGenerated > ago(1h)
      | where Log contains "error" or Log contains "exception"
      | summarize count_per_app = count() by AppName
      | sort by count_per_app desc
      | render piechart
      

Monitorování databáze

Monitorování dat o vašich serverech vám pomůže při řešení potíží a optimalizaci úloh. Azure Database for MySQL poskytuje různé metriky, které poskytují přehled o chování vašeho serveru.

Ve službě Azure Database for MySQL je protokol pomalých dotazů dostupný uživatelům. Přístup k transakčnímu protokolu se nepodporuje. Protokol pomalých dotazů můžete použít k identifikaci kritických bodů výkonu při řešení potíží.

V naší ukázkové aplikaci se protokoly pomalých dotazů nastaví tak, aby se předávaly do protokolů služby Azure Monitor prostřednictvím diagnostických protokolů a můžete provádět další analýzu pomalých dotazů. Následují ukázkové dotazy, které vám pomůžou začít/

Důležité

Doba příjmu dat protokolu MySQL ve službě Azure Monitor může trvat až 30 minut. Pokud se data v Log Analytics nenašla, může ingestování dat protokolu MySQL trvat delší dobu.

  1. Přihlaste se k portálu Azure.

  2. Vyberte server Azure Database for MySQL, který používáte pro své aplikace Azure Spring Apps.

  3. Dále v části Monitorování vyberte Protokoly.

    Snímek obrazovky znázorňující dotaz na dotazy delší než jednu sekundu

  4. Do vyhledávacího pole Dotazu :

    • Pokud chcete načíst všechny dotazy delší než jednu sekundu, spusťte následující dotaz:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      
    • Pokud chcete zobrazit seznam prvních pěti nejdelších dotazů, spusťte následující dotaz:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      | order by query_time_d desc
      | take 5
      
    • Pokud chcete shrnout pomalé dotazy podle minimálního, maximálního, průměrného a směrodatné odchylky doby dotazu, spusťte následující dotaz:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by LogicalServerName_s
      
    • Pokud chcete grafovat distribuci pomalých dotazů na konkrétním serveru, spusťte následující dotaz:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m)
      | render timechart
      
  5. Protokol auditu můžete také použít ke sledování aktivity na úrovni databáze. Běžně se používá pro dodržování předpisů. Protokoly auditu se integrují s diagnostickými protokoly služby Azure Monitor. Ve vaší ukázce jsme na vašem serveru MySQL povolili protokoly auditu, abyste mohli provádět další analýzu auditovaných událostí.

    • Tady je ukázkový dotaz, který načte obecný protokol MySQL:

      AzureDiagnostics
      | where Category == 'MySqlAuditLogs' and event_class_s == "general_log"
      | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
      | order by TimeGenerated desc
      

Monitorování uživatelského rozhraní

Pokud do skriptu stránky přidáte Application Insights, získáte časování načítání stránek a volání AJAX, počty a podrobnosti o výjimkách prohlížeče a selhání ajax, také počet uživatelů a relací. Všechny tyto metriky můžete segmentovat podle stránky, operačního systému klienta a verze prohlížeče, geografického umístění a dalších dimenzí. Můžete nastavit upozornění na počty selhání nebo pomalé načítání stránky a vložením volání trasování do kódu JavaScriptu můžete sledovat, jak se používají různé funkce vaší webové stránky.

Application Insights můžete použít s libovolnou webovou stránkou; stačí přidat krátkou část JavaScriptu. Pokud je vaše webová služba Java, můžete použít sady SDK na straně serveru se sadou JavaScript SDK na straně klienta, abyste pochopili výkon vaší aplikace.

Poznámka:

Další informace o monitorování uživatelského rozhraní najdete v souhrnné lekci na konci tohoto trénování.