Cvičení – výpis nedávno aktivních virtuálních počítačů, které přestaly odesílat protokoly
Tady napíšete dotazy KQL pro načtení a transformaci dat z Heartbeat
tabulky, abyste získali přehled o stavu počítačů ve vašem prostředí.
1. Nastavení cílů
Vaším prvním cílem analýzy protokolů je zajistit, abyste získali data o všech aktivních virtuálních počítačích ve vaší síti. Chcete identifikovat počítače, které přestanou odesílat data, abyste měli úplný přehled o všech aktivních virtuálních počítačích.
Pokud chcete zjistit, které počítače přestaly odesílat data, potřebujete informace o:
- Všechny počítače, které nedávno protokolovaly data, ale nezaprotokolovaly data podle očekávání během několika posledních minut.
- Pro hlubší analýzu je užitečné vědět, který agent virtuálního počítače běží na každém počítači.
2. Posouzení protokolů
Azure Monitor používá agenta Služby Azure Monitor ke shromažďování dat o aktivitách a procesech operačního systému spuštěných uvnitř virtuálních počítačů.
Poznámka:
Některé starší počítače ve vašem prostředí stále používají starší agenty Log Analytics pro Windows a Linux, které Azure Monitor zastaralá.
Agent Azure Monitor a agent Log Analytics odesílají data o stavu virtuálního počítače do Heartbeat
tabulky jednou za minutu.
Pojďme spustit jednoduchý take 10
dotaz na Heartbeat
tabulku, abychom viděli typ dat, který obsahuje každý z jejích sloupců:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Heartbeat
| take 10
Všechny TimeGenerated
sloupce , Computer
a Category
OSType
sloupce obsahují data, která jsou relevantní pro naši analýzu.
Teď se podíváme, jak můžeme tato data používat a které operace KQL můžou pomoct extrahovat a transformovat data:
Sloupec | Popis | Cíl analýzy | Související operace KQL |
---|---|---|---|
TimeGenerated |
Označuje, kdy virtuální počítač vygeneroval každý protokol. |
|
|
Computer |
Jedinečný identifikátor počítače. |
|
|
Category |
Typ agenta:
|
Identifikujte agenta spuštěného na počítači. | Zjednodušení výsledků a usnadnění další analýzy, jako je filtrování:
|
OSType |
Typ operačního systému spuštěného na virtuálním počítači. | Identifikujte typ agenta pro agenty Log Analytics, které se liší pro Windows a Linux. | summarize by... OSType Další informace najdete v operátoru summarize. |
Version |
Číslo verze agenta, který monitoruje virtuální počítač. | Identifikujte verzi agenta na každém počítači. | Přejmenujte sloupec na AgentVersion (AgentVersion=Version ). |
3. Napište svůj dotaz.
Napište dotaz se seznamem počítačů, které byly aktivní za posledních 48 hodin, ale během posledních pěti minut se do Heartbeat
tabulky nezaprotokolovaly data.
Načtěte všechny protokoly z posledních 48 hodin:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Heartbeat // The table you’re querying | where TimeGenerated >ago(48h) // Time range for the query - in this case, logs generated in the past 48 hours
Sada výsledků tohoto dotazu obsahuje protokoly ze všech počítačů, které za posledních 48 hodin odesílaly data protokolu. Tyto výsledky pravděpodobně obsahují řadu protokolů pro každý aktivní počítač.
Abyste pochopili, které počítače nedávno neodesílaly protokoly, potřebujete jenom poslední protokol, který každý počítač odeslal.
Vyhledejte poslední protokol vygenerovaný jednotlivými počítači a shrňte je podle počítače, typu agenta a operačního systému:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Heartbeat // The table you’re querying | where TimeGenerated >ago(48h) // Time range for the query - in this case, logs generated in the past 48 hours | summarize max(TimeGenerated) by Computer, AgentType=Category, OSType // Retrieves the last record generated by each computer and provides information about computer, agent type, and operating system
Teď máte jeden protokol z každého počítače, který protokoloval data za posledních 48 hodin – poslední protokol odeslaný počítačem.
summarize
Na řádku jste přejmenovaliCategory
sloupec naAgentType
, který lépe popisuje informace, na které se díváte ve sloupci jako součást této analýzy.Pokud chcete zjistit, které počítače během posledních pěti minut neodeslaly protokoly, vyfiltrujte všechny protokoly vygenerované během posledních pěti minut:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Heartbeat // The table you’re querying | where TimeGenerated >ago(48h) // Time range for the query - in this case, logs generated in the past 48 hours | summarize max(TimeGenerated) by Computer, AgentType=Category, OSType // Retrieves the last record generated by each computer and provides information about computer, agent type, and operating system | where max_TimeGenerated < ago(5m) // Filters away all records generated in the last five minutes
Sada výsledků tohoto dotazu zahrnuje poslední protokol vygenerovaný všemi počítači, které protokolovaly data za posledních 48 hodin, ale nezahrnuje protokoly vygenerované během posledních pěti minut. Jinými slovy, každý počítač, který protokoloval data za posledních pět minut, není součástí sady výsledků.
Teď máte data, která hledáte: seznam všech počítačů, které protokolovaly data za posledních 48 hodin, ale během posledních pěti minut se data nezaprotokolovala podle očekávání. Sada výsledků se skládá ze sady počítačů, které chcete prozkoumat podrobněji.
S výsledky dotazu můžete pracovat, aby byly informace jasněji prezentovány.
Protokoly můžete například uspořádat podle času vygenerovaného – od nejstaršího po nejnovější – a zjistit, které počítače se nejdelší dobu bez protokolování dat odebraly.
Hodnota
Direct Agent
ve sloupci AgentType vám říká, že na počítači běží agent Log Analytics. Vzhledem k tomu, že se agent Log Analytics pro Windows označuje také jako OMS a pro Linux, nazývá se také MMS, přejmenováníDirect Agent
hodnoty proMMA
počítače s Windows aOMS
pro počítače s Linuxem zjednodušuje výsledky a usnadňuje další analýzu, jako je filtrování.Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Heartbeat // The table you’re querying | where TimeGenerated >ago(48h) // Time range for the query - in this case, logs generated in the past 48 hours | summarize max(TimeGenerated) by Computer,AgentType=Category, OSType // Retrieves the last record generated by each computer and provides information about computer, agent type, and operating system | where max_TimeGenerated < ago(5m) // Filters away all records generated in the last five minutes | extend AgentType= iif(AgentType == "Direct Agent" and OSType =="Windows", "MMA", AgentType) // Changes the AgentType value from "Direct Agent" to "MMA" for Windows machines | extend AgentType= iif(AgentType == "Direct Agent" and OSType =="Linux", "OMS", AgentType) // Changes the AgentType value from "Direct Agent" to "OMS" for Linux machines | order by max_TimeGenerated asc // Sorts results by max_TimeGenerated from oldest to newest | project-reorder max_TimeGenerated,Computer,AgentType,OSType // Reorganizes the order of columns in the result set
Tip
Slouží
max_TimeGenerated
ke korelaci posledního prezenčních signálu počítače, který přestal hlásit sestavy s protokoly počítačů nebo jinými událostmi prostředí, ke kterým došlo přibližně ve stejnou dobu. Korelace protokolů tímto způsobem může pomoct při hledání původní příčiny problému, který prošetřujete.
Výzva: Seskupení počítačů podle agenta monitorování a verze agenta
Pochopení, kteří agenti a verze agentů běží na vašich počítačích, vám můžou pomoct analyzovat původní příčinu problémů a identifikovat počítače, které je potřeba aktualizovat na nového agenta nebo novou verzi agenta.
Můžete si představit několik rychlých úprav, které můžete provést v dotazu, který jste vytvořili výše, abyste získali tyto informace?
Zvažte toto:
- Jaké další informace potřebujete extrahovat z protokolů?
- Kterou operaci KQL můžete použít k seskupení počítačů podle verze agenta, na které běží?
Řešení:
Zkopírujte prvních pět řádků z dotazu a přidejte
Version
sloupec nasummarize
řádek dotazu a extrahujte informace o verzi agenta:Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Heartbeat // The table you’re querying | where TimeGenerated >ago(48h) // Time range for the query - in this case, logs generated in the past 48 hours | summarize max(TimeGenerated) by Computer,AgentType=Category, OSType, Version // Retrieves the last record generated by each computer and provides information about computer, agent type, operating system, and agent version | extend AgentType= iif(AgentType == "Direct Agent" and OSType =="Windows", "MMA", AgentType) // Changes the AgentType value from "Direct Agent" to "MMA" for Windows machines | extend AgentType= iif(AgentType == "Direct Agent" and OSType =="Linux", "OMS", AgentType) // Changes the AgentType value from "Direct Agent" to "OMS" for Linux machines
Version
Přejmenujte sloupec tak, abyAgentVersion
byl přehledný, přidejte dalšísummarize
řádek pro vyhledání jedinečných kombinací typu agenta, verze agenta a typu operačního systému a pomocí agregační funkce KQLmake_set()
zobrazíte seznam všech počítačů, na kterých běží každá kombinace typu agenta a verze agenta:Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Heartbeat // The table you’re querying | where TimeGenerated >ago(48h) // Time range for the query - in this case, logs generated in the past 48 hours | summarize max(TimeGenerated) by Computer,AgentType=Category, OSType, Version // Retrieves the last record generated by each computer and provides information about computer, agent type, operating system, and agent version | extend AgentType= iif(AgentType == "Direct Agent" and OSType =="Windows", "MMA", AgentType) // Changes the AgentType value from "Direct Agent" to "MMA" for Windows machines | extend AgentType= iif(AgentType == "Direct Agent" and OSType =="Linux", "OMS", AgentType) // Changes the AgentType value from "Direct Agent" to "OMS" for Linux machines | summarize ComputersList=make_set(Computer) by AgentVersion=Version, AgentType, OSType // Summarizes the result set by unique combination of agent type, agent version, and operating system, and lists the set of all machines running the specific agent version
Teď máte data, která hledáte: seznam jedinečných kombinací typu agenta a verze agenta a sady všech nedávno aktivních počítačů, na kterých běží konkrétní verze každého agenta.