De hele oplossing bewaken

Voltooid

In dit onderdeel kijken we naar het bewaken van de hele oplossing.

Inleiding

Voor het inschakelen van bewaking in de complexe computeromgevingen van vandaag moeten operationele gegevens worden verzameld uit elke laag en elk onderdeel van een gedistribueerd systeem. U hebt diepgaande inzichten nodig over deze gegevens en om deze te combineren met verschillende perspectieven ter ondersteuning van het grote aantal belanghebbenden in uw organisatie.

Azure Monitor verzamelt gegevens van verschillende soorten bronnen, waar u deze kunt gebruiken voor analyse, visualisatie en waarschuwingen. Het biedt u uitgebreide inzichten in al uw bewaakte resources en zelfs met gegevens van andere services die hun gegevens opslaan in Azure Monitor.

Logboekanalyses

Logboeken hebben betrekking op gebeurtenissen die in het systeem plaatsvinden. Logboeken kunnen verschillende soorten gegevens bevatten en kunnen gestructureerde of vrije tekst zijn met een tijdstempel. Logboeken kunnen sporadisch worden gemaakt als gebeurtenissen in de omgeving logboekvermeldingen genereren. Een systeem met zware belasting genereert doorgaans meer logboekvolumes.

Logboeken in Azure Monitor zijn waardevol voor het identificeren van de hoofdoorzaken van problemen. Gegevens die door Azure Monitor-logboeken worden verzameld, worden opgeslagen in een of meer Log Analytics-werkruimten. Gegevens worden opgehaald uit een Log Analytics-werkruimte met behulp van een logboekquery. Dit is een alleen-lezenaanvraag voor het verwerken van gegevens en het retourneren van resultaten. Logboekquery's worden geschreven in Kusto-querytaal (KQL). Dit is dezelfde querytaal die door Azure Data Explorer wordt gebruikt.

Notitie

Uw Azure Spring Apps-voorbeeldtoepassing is al ingesteld met een Log Analytics-werkruimte. Zie de samenvattingseenheid aan het einde van deze training voor meer informatie over de KQL-syntaxis .

Log Analytics gebruiken

Er zijn eigenlijk drie manieren om toegang te krijgen tot de logboeken van uw toepassing: Azure Storage, Azure Events Hub en Log Analytics. We richten ons hier op Log Analytics omdat dit het meest voorkomende is en is geïntegreerd in Azure Spring Apps voor bewaking van metrische gegevens.

Belangrijk

De opnametijd van logboekgegevens in Azure Monitor kan maximaal 15 minuten duren. Als gegevens niet worden gevonden in Log Analytics, kan het extra tijd duren voordat azure Spring Apps-logboekgegevens worden opgenomen.

  1. Open de Azure-portal.

  2. Selecteer Azure Spring Apps in de lijst met Azure-services.

  3. Selecteer uw Azure Spring Apps-exemplaar.

  4. Selecteer daarna in de Sectie Bewaking de Logboeken.

  5. In het zoekvak Query :

    Schermopname van een query naar de logboeken van Azure Spring Apps.

    • Als u logboeken wilt weergeven, voert u een query uit, zoals:

      AppPlatformLogsforSpring
      | limit 50
      
    • Als u metrische gegevens wilt weergeven, voert u een query in, zoals:

      AzureMetrics
      | limit 50
      
    • U kunt in de logboeken van de specifieke toepassing of het specifieke exemplaar zoeken door een filtervoorwaarde in te stellen:

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

De toepassingslogboeken analyseren

Toepassingslogboeken bieden essentiële informatie en uitgebreide logboeken over de status, prestaties en meer van uw toepassing. In de volgende sectie bieden we query's om u inzicht te geven in de huidige en eerdere statussen van uw toepassing.

Toepassingslogboeken van Azure Spring Apps weergeven

  1. Open de Azure-portal.

  2. Selecteer Azure Spring Apps in de lijst met Azure-services.

  3. Selecteer uw Azure Spring Apps-exemplaar.

  4. Selecteer daarna in de Sectie Bewaking de Logboeken.

  5. In het zoekvak Query :

    • Als u een lijst met toepassingslogboeken van Azure Spring Apps wilt bekijken, gesorteerd op tijd met de meest recente logboeken die eerst worden weergegeven, voert u de volgende query uit:

      AppPlatformLogsforSpring
      | project TimeGenerated , ServiceName , AppName , InstanceName , Log
      | sort by TimeGenerated desc
      
    • Als u niet-gesorteerde logboekvermeldingen met een fout of uitzondering wilt bekijken, voert u de volgende query uit:

      AppPlatformLogsforSpring
      | project TimeGenerated , ServiceName , AppName , InstanceName , Log
      | where Log contains "error" or Log contains "exception"
      
    • Als u een cirkeldiagram wilt maken waarin het aantal fouten en uitzonderingen wordt weergegeven dat door uw toepassing is geregistreerd, voert u de volgende query uit:

      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
      

Databasebewaking

Door gegevens over uw servers te bewaken, kunt u problemen oplossen en optimaliseren voor uw workload. Azure Database for MySQL biedt verschillende metrische gegevens die inzicht geven in het gedrag van uw server.

In Azure Database for MySQL is het logboek voor langzame query's beschikbaar voor gebruikers. Toegang tot het transactielogboek wordt niet ondersteund. U kunt het logboek voor trage query's gebruiken om prestatieknelpunten te identificeren voor het oplossen van problemen.

In onze voorbeeldtoepassing worden uw logboeken voor langzame query's ingesteld om via diagnostische logboeken naar Azure Monitor-logboeken te worden doorgesluisd en kunt u verdere analyse uitvoeren van uw trage query's. Hieronder vindt u voorbeeldquery's om u te helpen aan de slag te gaan/

Belangrijk

De opnametijd van mySQL-logboekgegevens in Azure Monitor kan maximaal 30 minuten duren. Als gegevens niet worden gevonden in Log Analytics, kan het extra tijd duren om MySQL-logboekgegevens op te nemen.

  1. Meld u aan bij het Azure-portaal.

  2. Selecteer uw Azure Database for MySQL-server die u gebruikt voor uw Azure Spring Apps.

  3. Selecteer daarna in de Sectie Bewaking de Logboeken.

    Schermopname van de query voor query's die langer zijn dan één seconde.

  4. In het zoekvak Query :

    • Als u alle query's langer dan één seconde wilt ophalen, voert u de volgende query uit:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      
    • Voer de volgende query uit om de vijf langste query's weer te geven:

      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
      
    • Voer de volgende query uit om trage query's samen te vatten op basis van minimale, maximale, gemiddelde en standaarddeviatie van de querytijd:

      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
      
    • Voer de volgende query uit om de trage querydistributie op een bepaalde server te grapheren:

      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. U kunt ook het auditlogboek gebruiken om activiteiten op databaseniveau bij te houden. Deze wordt vaak gebruikt voor naleving. Auditlogboeken zijn geïntegreerd in Diagnostische logboeken van Azure Monitor. In uw voorbeeld hebben we auditlogboeken ingeschakeld op uw MySQL-server, zodat u verdere analyse van uw gecontroleerde gebeurtenissen kunt uitvoeren.

    • Hier volgt een voorbeeldquery waarmee het algemene MySQL-logboek wordt opgehaald:

      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
      

UI-bewaking

Als u Application Insights toevoegt aan uw paginascript, krijgt u tijdsinstellingen voor het laden van pagina's en AJAX-aanroepen, aantallen en details van browseruitzonderingen en AJAX-fouten, ook gebruikers en sessieaantallen. U kunt al deze metrische gegevens segmenteren op pagina, clientbesturingssysteem en browserversie, geografische locatie en andere dimensies. U kunt waarschuwingen instellen voor het aantal fouten of het langzaam laden van pagina's en door traceringsaanroepen in te voegen in uw JavaScript-code, kunt u bijhouden hoe de verschillende functies van uw webpaginatoepassing worden gebruikt.

U kunt Application Insights gebruiken met elke webpagina; u hoeft alleen maar een kort stukje JavaScript toe te voegen. Als uw webservice Java is, kunt u de SDK's aan de serverzijde gebruiken met de JavaScript SDK aan de clientzijde om inzicht te krijgen in de prestaties van uw app.

Notitie

Zie de samenvattingseenheid aan het einde van deze training voor meer informatie over ui-bewaking.