Sdílet prostřednictvím


Monitorování stavu přihlašování aplikací pro zajištění odolnosti

Pokud chcete zvýšit odolnost infrastruktury, nastavte monitorování stavu přihlašování aplikací pro důležité aplikace. Můžete obdržet upozornění, když dojde k ovlivnění incidentu. Tento článek vás provede nastavením sešitu stavu přihlašování k aplikaci, který monitoruje přerušení přihlašování uživatelů.

Výstrahy můžete nakonfigurovat na základě sešitu stavu přihlášení aplikace. Tento sešit umožňuje správcům monitorovat žádosti o ověřování pro aplikace ve svých tenantech. Poskytuje tyto klíčové funkce:

  • Nakonfigurujte sešit tak, aby monitorovali všechny nebo jednotlivé aplikace s daty téměř v reálném čase.
  • Nakonfigurujte upozornění na změny vzoru ověřování, abyste mohli prošetřit a reagovat.
  • Porovnejte trendy v určitém časovém období. Týden po týdnu je výchozím nastavením sešitu.

Poznámka:

Podívejte se na všechny dostupné sešity a požadavky pro jejich použití v tématu Použití sešitů služby Azure Monitor pro sestavy.

Během události, která ovlivňuje, se můžou vyskytnout dvě věci:

  • Počet přihlášení pro aplikaci se může náhle hodit, když se uživatelé nemůžou přihlásit.
  • Počet neúspěšných přihlášení se může zvýšit.

Požadavky

Konfigurace sešitu stavu přihlašování k aplikaci

Pokud chcete získat přístup k sešitům na webu Azure Portal, vyberte Microsoft Entra ID a vyberte Sešity.

Sešity se zobrazují v části Využití, Podmíněný přístup a Řešení potíží. Sešit stavu přihlášení aplikace se zobrazí v části Stav . Po použití sešitu se může zobrazit v části Naposledy upravené sešity .

Pomocí sešitu stavu přihlašování k aplikaci můžete vizualizovat, co se děje s vašimi přihlášeními. Jak je znázorněno na následujícím snímku obrazovky, sešit obsahuje dva grafy.

Snímek obrazovky znázorňující grafy stavu přihlášení

Na předchozím snímku obrazovky jsou dva grafy:

  • Hodinové využití (počet úspěšných uživatelů). Porovnání aktuálního počtu úspěšných uživatelů s typickým obdobím využití vám pomůže odhalit pokles využití, který může vyžadovat šetření. Pokles úspěšnosti využití může pomoct zjistit problémy s výkonem a využitím, které míra selhání nedokáže rozpoznat. Když se například uživatelé nemůžou spojit s vaší aplikací, aby se pokusili přihlásit, dojde k poklesu využití, ale žádné chyby. Podívejte se na ukázkový dotaz na tato data v další části tohoto článku.
  • Hodinová míra selhání Špička v četnosti selhání může znamenat problém s mechanismy ověřování. Míry míry selhání se zobrazují jenom v případě, že se uživatelé mohou pokusit ověřit. Pokud uživatelé nemůžou získat přístup k pokusu, nedojde k žádným selháním.

Konfigurace dotazu a upozornění

V Azure Monitoru vytvoříte pravidla upozornění a můžete automaticky spouštět uložené dotazy nebo vlastní prohledávání protokolů v pravidelných intervalech. Můžete nakonfigurovat výstrahu, která upozorní konkrétní skupinu, když využití nebo míra selhání překročí zadanou prahovou hodnotu.

Pomocí následujících pokynů můžete vytvářet e-mailová upozornění na základě dotazů, které se projeví v grafech. Ukázkové skripty odesílají e-mailové oznámení v následujících případech:

  • Úspěšné využití klesne před 90 % ze stejné hodiny před dvěma dny, jak je znázorněno v předchozím příkladu hodinového grafu využití.
  • Míra selhání se zvyšuje o 90 % ze stejné hodiny před dvěma dny, jak je znázorněno v předchozím příkladu míry selhání po hodinách.

Pokud chcete nakonfigurovat základní dotaz a nastavit upozornění, proveďte následující kroky pomocí ukázkového dotazu jako základ pro vaši konfiguraci. Popis struktury dotazu se zobrazí na konci této části. Naučte se vytvářet, zobrazovat a spravovat upozornění protokolu pomocí služby Azure Monitor v části Správa upozornění protokolu.

  1. V sešitu vyberte Upravit , jak je znázorněno na následujícím snímku obrazovky. Vyberte ikonu dotazu v pravém horním rohu grafu.

    Snímek obrazovky zobrazující úpravu sešitu

  2. Zobrazte protokol dotazu, jak je znázorněno na následujícím snímku obrazovky.

    Snímek obrazovky s protokolem dotazů

  3. Zkopírujte jeden z následujících ukázkových skriptů pro nový dotaz Kusto.

  4. Vložte dotaz do okna. Vyberte Spustit. Vyhledejte zprávu Dokončeno a výsledky dotazu, jak je znázorněno na následujícím snímku obrazovky.

    Snímek obrazovky zobrazující výsledky dotazu spuštění

  5. Zvýrazněte dotaz. Vyberte + Nové pravidlo upozornění.

    Snímek obrazovky s novým pravidlem upozornění

  6. Nakonfigurujte podmínky upozornění. Jak je znázorněno na následujícím příkladu snímku obrazovky, v části Podmínka v části Měření vyberte řádky tabulky pro míru. Vyberte Počet pro typ agregace. Vyberte 2 dny pro členitost agregace.

    Snímek obrazovky znázorňující konfiguraci upozornění

    • Řádky tabulky Počet vrácených řádků můžete použít k práci s událostmi, jako jsou protokoly událostí Systému Windows, Syslog a výjimky aplikací.
    • Typ agregace Datové body použité s počtem
    • Členitost agregace Tato hodnota definuje období, které funguje s frekvencí vyhodnocení.
  7. V logice upozornění nakonfigurujte parametry, jak je znázorněno na ukázkovém snímku obrazovky.

    Snímek obrazovky s logikou upozornění

    • Prahová hodnota: 0. Tato hodnota upozorní na všechny výsledky.
    • Frekvence vyhodnocení: 1 hodina. Tato hodnota nastaví zkušební období na jednou za hodinu za předchozí hodinu.
  8. V části Akce nakonfigurujte nastavení, jak je znázorněno na ukázkovém snímku obrazovky.

    Snímek obrazovky s obrazovkou Vytvořit pravidlo upozornění

    • Vyberte skupinu akcí a přidejte skupinu, pro kterou chcete dostávat upozornění.
    • V části Přizpůsobit akce vyberte E-mailová upozornění.
    • Přidejte řádek předmětu.
  9. V části Podrobnosti nakonfigurujte nastavení, jak je znázorněno na ukázkovém snímku obrazovky.

    Snímek obrazovky s oddílem Podrobnosti

    • Přidejte název předplatného a popis.
    • Vyberte skupinu prostředků, do které chcete výstrahu přidat.
    • Vyberte výchozí závažnost.
    • Pokud chcete, aby se hned rozběhne, vyberte Povolit při vytváření . V opačném případě vyberte Ztlumit akce.
  10. V části Zkontrolovat a vytvořit nakonfigurujte nastavení, jak je znázorněno na ukázkovém snímku obrazovky.

    Snímek obrazovky zobrazující oddíl Zkontrolovat a vytvořit

  11. Zvolte Uložit. Zadejte název dotazu. Jako možnost Uložit jako vyberte Dotaz. V kategorii vyberte Výstraha. Znovu vyberte Uložit.

    Snímek obrazovky s tlačítkem uložit dotaz

Upřesnění dotazů a upozornění

Úprava dotazů a upozornění pro maximální efektivitu:

  • Upozornění vždy testujte.
  • Upravte citlivost a frekvenci upozornění, abyste dostávali důležitá oznámení. Správci se můžou znecitlivět na výstrahy a zmeškat něco důležitého, pokud jich dostane příliš mnoho.
  • V e-mailových klientech správce přidejte e-mail, ze kterého přicházejí výstrahy do seznamu povolených odesílatelů. Tento přístup brání zmeškaným oznámením kvůli filtru spamu u svých e-mailových klientů.
  • Dotazy na výstrahy ve službě Azure Monitor mohou záměrně zahrnovat pouze výsledky za posledních 48 hodin.

Ukázkové skripty

Dotaz Kusto pro zvýšení míry selhání

V následujícím dotazu zjistíme rostoucí míru selhání. Podle potřeby můžete upravit poměr v dolní části. Představuje procentuální změnu provozu za poslední hodinu v porovnání s včerejším provozem najednou. Výsledek 0,5 označuje 50% rozdíl v provozu.

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

Dotaz Kusto pro pokles využití

V následujícím dotazu porovnáváme provoz za poslední hodinu s včerejším provozem ve stejnou dobu. Vyloučíme sobotu, neděli a pondělí, protože ve stejnou dobu očekáváme velkou variabilitu provozu předchozího dne.

Podle potřeby můžete upravit poměr v dolní části. Představuje procentuální změnu provozu za poslední hodinu v porovnání s včerejším provozem najednou. Výsledek 0,5 označuje 50% rozdíl v provozu. Upravte tyto hodnoty tak, aby odpovídaly modelu obchodních operací.

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

Vytváření procesů pro správu výstrah

Po nastavení dotazů a upozornění vytvořte obchodní procesy pro správu výstrah.

  • Kdo monitoruje sešit a kdy?
  • Když dojde k upozorněním, kdo je prošetří?
  • Jaké jsou potřeby komunikace? Kdo vytváří komunikaci a kdo je obdrží?
  • Kdy dojde k výpadku, jaké obchodní procesy se použijí?

Další kroky

Další informace o sešitech