Dela via


Övervaka programmets inloggningshälsa för motståndskraft

För att öka infrastrukturens motståndskraft konfigurerar du övervakning av programmets inloggningshälsa för dina kritiska program. Du kan få en avisering när en incident som påverkar inträffar. Den här artikeln beskriver hur du konfigurerar arbetsboken för appinloggningshälsa för att övervaka störningar i användarnas inloggningar.

Du kan konfigurera aviseringar baserat på arbetsboken för appinloggningshälsa. Den här arbetsboken gör det möjligt för administratörer att övervaka autentiseringsbegäranden för program i sina klienter. Den innehåller följande viktiga funktioner:

  • Konfigurera arbetsboken för att övervaka alla eller enskilda appar med nästan realtidsdata.
  • Konfigurera aviseringar för ändringar i autentiseringsmönstret så att du kan undersöka och svara.
  • Jämför trender under en viss tidsperiod. Vecka över vecka är arbetsbokens standardinställning.

Kommentar

Se alla tillgängliga arbetsböcker och förutsättningarna för att använda dem i Använda Azure Monitor-arbetsböcker för rapporter.

Under en händelse som påverkar kan två saker hända:

  • Antalet inloggningar för ett program kan plötsligt minska när användarna inte kan logga in.
  • Antalet inloggningsfel kan öka.

Förutsättningar

Konfigurera arbetsboken för appinloggningshälsa

Om du vill komma åt arbetsböcker i Azure Portal väljer du Microsoft Entra-ID och sedan Arbetsböcker.

Arbetsböcker visas under Användning, Villkorsstyrd åtkomst och Felsökning. Arbetsboken För appinloggningshälsa visas i avsnittet Hälsa . När du har använt en arbetsbok kan den visas i avsnittet Nyligen ändrade arbetsböcker .

Du kan använda arbetsboken för appinloggningshälsa för att visualisera vad som händer med dina inloggningar. Som du ser i följande skärmbild visar arbetsboken två diagram.

Skärmbild som visar inloggningsdiagram för hälsotillstånd.

I föregående skärmbild finns det två grafer:

  • Användning varje timme (antal lyckade användare). Genom att jämföra det aktuella antalet lyckade användare med en typisk användningsperiod kan du upptäcka en minskning av användningen som kan kräva undersökning. En minskning av den lyckade användningsgraden kan hjälpa dig att identifiera prestanda- och användningsproblem som felfrekvensen inte kan identifiera. Om användarna till exempel inte kan nå ditt program för att försöka logga in, finns det en minskning av användningen men inga fel. Se exempelfrågan för dessa data i nästa avsnitt i den här artikeln.
  • Felfrekvens varje timme. En topp i felfrekvensen kan tyda på ett problem med dina autentiseringsmekanismer. Felfrekvensmått visas bara när användare kan försöka autentisera. När användarna inte kan få åtkomst till försöket finns det inga fel.

Konfigurera frågan och aviseringarna

Du skapar aviseringsregler i Azure Monitor och kan automatiskt köra sparade frågor eller anpassade loggsökningar med jämna mellanrum. Du kan konfigurera en avisering som meddelar en specifik grupp när användnings- eller felfrekvensen överskrider ett angivet tröskelvärde.

Använd följande instruktioner för att skapa e-postaviseringar baserat på de frågor som visas i graferna. Exempelskripten skickar ett e-postmeddelande när:

  • Den lyckade användningen minskar med 90 % från samma timme för två dagar sedan, vilket visas i exemplet med användning per timme.
  • Felfrekvensen ökar med 90 % jämfört med samma timme för två dagar sedan, vilket visas i föregående diagram över felfrekvens per timme.

Om du vill konfigurera den underliggande frågan och ange aviseringar slutför du följande steg med hjälp av exempelfrågan som grund för konfigurationen. Beskrivningen av frågestrukturen visas i slutet av det här avsnittet. Lär dig hur du skapar, visar och hanterar loggaviseringar med hjälp av Azure Monitor i Hantera loggaviseringar.

  1. I arbetsboken väljer du Redigera enligt följande skärmbild. Välj frågeikonen i det övre högra hörnet av diagrammet.

    Skärmbild som visar redigera arbetsbok.

  2. Visa frågeloggen enligt följande skärmbild.

    Skärmbild som visar frågeloggen.

  3. Kopiera ett av följande exempelskript för en ny Kusto-fråga.

  4. Klistra in frågan i fönstret. Markera Kör. Leta efter meddelandet Slutfört och frågeresultatet enligt följande skärmbild.

    Skärmbild som visar körningsfrågans resultat.

  5. Markera frågan. Välj + Ny aviseringsregel.

    Skärmbild som visar skärmen för den nya aviseringsregeln.

  6. Konfigurera aviseringsvillkor. Som du ser i följande skärmbild i avsnittet Villkor går du till Mått och väljer Tabellrader för Mått. Välj Antal för sammansättningstyp. Välj 2 dagar för sammansättningskornighet.

    Skärmbild som visar skärmen Konfigurera aviseringar.

    • Tabellrader. Du kan använda antalet rader som returneras för att arbeta med händelser som Windows-händelseloggar, Syslog och programfel.
    • Sammansättningstyp. Datapunkter som tillämpas med Antal.
    • Sammansättningskornighet. Det här värdet definierar den period som fungerar med utvärderingsfrekvensen.
  7. I Aviseringslogik konfigurerar du parametrarna enligt skärmbilden i exemplet.

    Skärmbild som visar aviseringslogikskärmen.

    • Tröskelvärde: 0. Det här värdet aviserar om eventuella resultat.
    • Utvärderingsfrekvens: 1 timme. Det här värdet anger utvärderingsperioden till en gång per timme för föregående timme.
  8. I avsnittet Åtgärder konfigurerar du inställningar enligt skärmbilden i exemplet.

    Skärmbild som visar skärmen Skapa en aviseringsregel.

    • Välj Välj åtgärdsgrupp och lägg till den grupp som du vill ha aviseringsmeddelanden för.
    • Under Anpassa åtgärder väljer du E-postaviseringar.
    • Lägg till en ämnesrad.
  9. I avsnittet Information konfigurerar du inställningar enligt skärmbilden i exemplet.

    Skärmbild som visar avsnittet Information.

    • Lägg till ett prenumerationsnamn och en beskrivning.
    • Välj den resursgrupp som du vill lägga till aviseringen i.
    • Välj standardvärdet Allvarlighetsgrad.
    • Välj Aktivera när du skapar om du vill att det omedelbart ska gå live. Annars väljer du Stäng av åtgärder.
  10. I avsnittet Granska + skapa konfigurerar du inställningar enligt skärmbilden i exemplet.

    Skärmbild som visar avsnittet Granska + skapa.

  11. Välj Spara. Ange ett namn för frågan. För Spara som väljer du Fråga. För Kategori väljer du Avisering. Välj Spara igen.

    Skärmbild som visar knappen Spara fråga.

Förfina dina frågor och aviseringar

Så här ändrar du dina frågor och aviseringar för maximal effektivitet:

  • Testa alltid aviseringar.
  • Ändra känslighet och frekvens för aviseringar för att ta emot viktiga meddelanden. Administratörer kan bli desensitized till aviseringar och missa något viktigt om de får för många.
  • I administratörens e-postklienter lägger du till e-postmeddelandet från vilket aviseringar kommer till listan över tillåtna avsändare. Den här metoden förhindrar missade meddelanden på grund av ett skräppostfilter på deras e-postklienter.
  • Aviseringsfrågor i Azure Monitor kan avsiktligt bara innehålla resultat från de senaste 48 timmarna.

Exempelskript

Kusto-fråga om ökad felfrekvens

I följande fråga identifierar vi ökande felfrekvenser. Vid behov kan du justera förhållandet längst ned. Den representerar den procentuella förändringen i trafiken under den senaste timmen jämfört med gårdagens trafik samtidigt. Ett resultat på 0,5 anger en skillnad på 50 % i trafiken.

let today = SigninLogs
| where TimeGenerated > ago(1h) // Query failure rate in the last hour
| project TimeGenerated, UserPrincipalName, AppDisplayName, status = case(Status.errorCode == "0", "success", "failure")
// Optionally filter by a specific application
//| where AppDisplayName == **APP NAME**
| summarize success = countif(status == "success"), failure = countif(status == "failure") by bin(TimeGenerated, 1h) // hourly failure rate
| project TimeGenerated, failureRate = (failure * 1.0) / ((failure + success) * 1.0)
| sort by TimeGenerated desc
| serialize rowNumber = row_number();
let yesterday = SigninLogs
| where TimeGenerated between((ago(1h) – totimespan(1d))..(now() – totimespan(1d))) // Query failure rate at the same time yesterday
| project TimeGenerated, UserPrincipalName, AppDisplayName, status = case(Status.errorCode == "0", "success", "failure")
// Optionally filter by a specific application
//| where AppDisplayName == **APP NAME**
| summarize success = countif(status == "success"), failure = countif(status == "failure") by bin(TimeGenerated, 1h) // hourly failure rate at same time yesterday
| project TimeGenerated, failureRateYesterday = (failure * 1.0) / ((failure + success) * 1.0)
| sort by TimeGenerated desc
| serialize rowNumber = row_number();
today
| join (yesterday) on rowNumber // join data from same time today and yesterday
| project TimeGenerated, failureRate, failureRateYesterday
// Set threshold to be the percent difference in failure rate in the last hour as compared to the same time yesterday
// Day variable is the number of days since the previous Sunday. Optionally ignore results on Sat, Sun, and Mon because large variability in traffic is expected.
| extend day = dayofweek(now())
| where day != time(6.00:00:00) // exclude Sat
| where day != time(0.00:00:00) // exclude Sun
| where day != time(1.00:00:00) // exclude Mon
| where abs(failureRate – failureRateYesterday) > 0.5

Kusto-fråga för användningsminskning

I följande fråga jämför vi trafiken under den senaste timmen med gårdagens trafik samtidigt. Vi exkluderar lördag, söndag och måndag eftersom vi förväntar oss stor variabilitet i föregående dags trafik samtidigt.

Vid behov kan du justera förhållandet längst ned. Den representerar den procentuella förändringen i trafiken under den senaste timmen jämfört med gårdagens trafik samtidigt. Ett resultat på 0,5 anger en skillnad på 50 % i trafiken. Justera dessa värden så att de passar din verksamhetsmodell.

Let today = SigninLogs // Query traffic in the last hour
| where TimeGenerated > ago(1h)
| project TimeGenerated, AppDisplayName, UserPrincipalName
// Optionally filter by AppDisplayName to scope query to a single application
//| where AppDisplayName contains "Office 365 Exchange Online"
| summarize users = dcount(UserPrincipalName) by bin(TimeGenerated, 1hr) // Count distinct users in the last hour
| sort by TimeGenerated desc
| serialize rn = row_number();
let yesterday = SigninLogs // Query traffic at the same hour yesterday
| where TimeGenerated between((ago(1h) – totimespan(1d))..(now() – totimespan(1d))) // Count distinct users in the same hour yesterday
| project TimeGenerated, AppDisplayName, UserPrincipalName
// Optionally filter by AppDisplayName to scope query to a single application
//| where AppDisplayName contains "Office 365 Exchange Online"
| summarize usersYesterday = dcount(UserPrincipalName) by bin(TimeGenerated, 1hr)
| sort by TimeGenerated desc
| serialize rn = row_number();
today
| join // Join data from today and yesterday together
(
yesterday
)
on rn
// Calculate the difference in number of users in the last hour compared to the same time yesterday
| project TimeGenerated, users, usersYesterday, difference = abs(users – usersYesterday), max = max_of(users, usersYesterday)
| extend ratio = (difference * 1.0) / max // Ratio is the percent difference in traffic in the last hour as compared to the same time yesterday
// Day variable is the number of days since the previous Sunday. Optionally ignore results on Sat, Sun, and Mon because large variability in traffic is expected.
| extend day = dayofweek(now())
| where day != time(6.00:00:00) // exclude Sat
| where day != time(0.00:00:00) // exclude Sun
| where day != time(1.00:00:00) // exclude Mon
| where ratio > 0.7 // Threshold percent difference in sign-in traffic as compared to same hour yesterday

Skapa processer för att hantera aviseringar

När du har konfigurerat frågor och aviseringar skapar du affärsprocesser för att hantera aviseringarna.

  • Vem övervakar arbetsboken och när?
  • Vem undersöker dem när aviseringar inträffar?
  • Vad är kommunikationsbehoven? Vem skapar kommunikationen och vem tar emot dem?
  • Vilka affärsprocesser gäller när ett avbrott inträffar?

Nästa steg

Läs mer om arbetsböcker