Overvåke hele løsningen

Fullført

I denne enheten ser vi på overvåking av hele løsningen.

Introduksjon

Aktivering av overvåking på tvers av dagens komplekse databehandlingsmiljøer krever innsamling av driftsdata fra alle lag og komponenter i et distribuert system. Du trenger dyp innsikt i disse dataene, og for å kombinere dem med ulike perspektiver for å støtte mangfoldet av interessenter i organisasjonen.

Azure Monitor samler inn data fra ulike typer kilder, der du kan bruke dem til analyse, visualisering og varsling. Det gir deg dyp innsikt på tvers av alle overvåkede ressurser og til og med med data fra andre tjenester som lagrer dataene deres i Azure Monitor.

Logganalyse

Logger er hendelser som oppstod i systemet. Logger kan inneholde ulike typer data, og kan være strukturert eller frihåndstekst med tidsstempel. Logger kan opprettes sporadisk når hendelser i miljøet genererer loggoppføringer. Et system under tung belastning genererer vanligvis mer loggvolum.

Logger i Azure Monitor er verdifulle for å identifisere de grunnleggende årsakene til problemer. Data som Azure Monitor Logs samler inn, lagres i ett eller flere Log Analytics-arbeidsområder. Data hentes fra et logganalysearbeidsområde ved hjelp av en loggspørring, som er en skrivebeskyttet forespørsel om å behandle data og returnere resultater. Loggspørringer er skrevet i Kusto Query Language (KQL), som er det samme spørringsspråket Azure Data Explorer bruker.

Notat

Eksempelprogrammet azure Spring Apps er allerede konfigurert med et Log Analytics-arbeidsområde. Hvis du vil ha mer informasjon om KQL- syntaks, kan du se sammendragsenheten på slutten av denne opplæringen.

Bruk logganalyse

Det finnes faktisk tre måter å få tilgang til programmets logger på: Azure Storage, Azure Events Hub og Log Analytics. Vi fokuserer her på Log Analytics fordi den er den vanligste og er integrert i Azure Spring Apps for måledataovervåking.

Viktig

Loggdatainntakstiden i Azure Monitor kan ta opptil 15 minutter. Hvis data ikke finnes i Log Analytics, kan det ta ekstra tid å innta Loggdata for Azure Spring Apps.

  1. Åpne Azure-portalen.

  2. Velg Azure Spring Apps fra listen over Azure-tjenester.

  3. Velg forekomsten av Azure Spring Apps.

  4. Deretter velger du Loggerunder delen Overvåking .

  5. I søkeboksen spørring:

    Skjermbilde som viser spørring for Azure Spring Apps-logger.

    • Hvis du vil vise logger, kjører du en spørring, for eksempel:

      AppPlatformLogsforSpring
      | limit 50
      
    • Hvis du vil vise måledata, skriver du inn en spørring, for eksempel:

      AzureMetrics
      | limit 50
      
    • Du kan søke i loggene for det bestemte programmet eller forekomsten ved å angi en filterbetingelse:

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

Analysere programloggene

Programlogger gir kritisk informasjon og detaljerte logger om programmets tilstand, ytelse og mer. I den neste delen gir vi spørringer som hjelper deg med å forstå programmets gjeldende og tidligere tilstander.

Vis programlogger fra Azure Spring Apps

  1. Åpne Azure-portalen.

  2. Velg Azure Spring Apps fra listen over Azure-tjenester.

  3. Velg forekomsten av Azure Spring Apps.

  4. Deretter velger du Loggerunder delen Overvåking .

  5. I søkeboksen spørring:

    • Hvis du vil se gjennom en liste over programlogger fra Azure Spring Apps, sortert etter tid med de nyeste loggene som vises først, kjører du følgende spørring:

      AppPlatformLogsforSpring
      | project TimeGenerated , ServiceName , AppName , InstanceName , Log
      | sort by TimeGenerated desc
      
    • Hvis du vil se gjennom usorterte loggoppføringer som nevner en feil eller et unntak, kjører du følgende spørring:

      AppPlatformLogsforSpring
      | project TimeGenerated , ServiceName , AppName , InstanceName , Log
      | where Log contains "error" or Log contains "exception"
      
    • Hvis du vil opprette et sektordiagram som viser antall feil og unntak som logges av programmet, kjører du følgende spørring:

      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
      

Databaseovervåking

Overvåking av data om serverne hjelper deg med å feilsøke og optimalisere for arbeidsbelastningen. Azure Database for MySQL gir ulike måledata som gir innsikt i virkemåten til serveren.

I Azure Database for MySQL er den langsomme spørringsloggen tilgjengelig for brukere. Tilgang til transaksjonsloggen støttes ikke. Du kan bruke den langsomme spørringsloggen til å identifisere flaskehalser for ytelse for feilsøking.

I eksempelprogrammet vårt er de trege spørringsloggene konfigurert til å sendes til Azure Monitor Logs via diagnoselogger, og du kan gjøre ytterligere analyser av de trege spørringene dine. Nedenfor finner du eksempelspørringer som hjelper deg med å komme i gang/

Viktig

Datainntakstiden for MySQL-loggen i Azure Monitor kan ta opptil 30 minutter. Hvis data ikke finnes i Log Analytics, kan det ta ekstra tid å innta MySQL-loggdata.

  1. Logg på Azure-portalen.

  2. Velg Azure Database for MySQL-serveren du bruker for Azure Spring Apps.

  3. Deretter velger du Loggerunder delen Overvåking .

    Skjermbilde som viser spørring for spørringer som er lengre enn ett sekund.

  4. I søkeboksen spørring:

    • Hvis du vil hente alle spørringer lenger enn ett sekund, kjører du følgende spørring:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      
    • Hvis du vil vise de fem lengste spørringene, kjører du følgende spørring:

      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
      
    • Hvis du vil oppsummere langsomme spørringer etter minimum, maksimum, gjennomsnitt og standard avviksspørringstid, kjører du følgende spørring:

      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
      
    • Hvis du vil lage en graf over den langsomme spørringsfordelingen på en bestemt server, kjører du følgende spørring:

      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. Du kan også bruke overvåkingsloggen til å spore aktivitet på databasenivå. Den brukes ofte til samsvar. Overvåkingslogger er integrert med Diagnoselogger for Azure Monitor. I eksemplet har vi aktivert overvåkingslogger på MySQL-serveren, slik at du kan gjøre ytterligere analyser av de overvåkede hendelsene.

    • Her er en eksempelspørring som henter den generelle MySQL-loggen:

      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
      

Overvåking av brukergrensesnitt

Hvis du legger til Application Insights i sideskriptet, får du tidsberegninger for sideinnlastinger og AJAX-anrop, antall og detaljer om nettleserunntak og AJAX-feil, også brukere og øktantall. Du kan segmentere alle disse måledataene etter side, klient-OS og nettleserversjon, geografisk plassering og andre dimensjoner. Du kan angi varsler om antall feil eller treg sideinnlasting, og ved å sette inn sporingskall i JavaScript-koden kan du spore hvordan de ulike funksjonene i nettsideprogrammet brukes.

Du kan bruke Application Insights med en hvilken som helst nettside. du bare legger til en kort del av JavaScript. Hvis nettjenesten er Java, kan du bruke SDKene på serversiden med JavaScript SDK på klientsiden for å få en forståelse av appens ytelse.

Notat

Hvis du vil ha mer informasjon om grensesnittovervåking, kan du se sammendragsenheten på slutten av denne opplæringen.