Oktatás
Modul
Lekérdezési naplók a Microsoft Sentinelben - Training
Lekérdezési naplók a Microsoft Sentinelben
Ezt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
Az Azure Monitor-naplókban tárolt adatok rekordhalmazként vannak tárolva egy Log Analytics-munkaterületen vagy az Application Insights-alkalmazásban, amelyek mindegyike egyedi oszlopkészlettel rendelkezik. Számos adattípus szabványos oszlopokkal rendelkezik, amelyek több típusban is gyakran előfordulnak. Ez a cikk ezeket az oszlopokat ismerteti, és példákat tartalmaz arra, hogyan használhatja őket lekérdezésekben.
Az Application Insights munkaterület-alapú alkalmazásai egy Log Analytics-munkaterületen tárolják az adataikat, és ugyanazokat a szabványos oszlopokat használják, mint a munkaterület más táblái. A klasszikus alkalmazások külön tárolják az adataikat, és a cikkben meghatározott különböző szabványos oszlopokkal rendelkeznek.
Megjegyzés
A standard oszlopok némelyike nem jelenik meg a Log Analytics sémanézetben vagy intelliense nézetben, és csak akkor jelennek meg a lekérdezési eredményekben, ha explicit módon adja meg az oszlopot a kimenetben.
A TenantId oszlop tartalmazza a Log Analytics-munkaterület munkaterület-azonosítóját.
A TimeGenerated oszlop azt a dátumot és időt tartalmazza, amikor az adatforrás létrehozta a rekordot. További részletekért tekintse meg a naplóadatok betöltésének idejét az Azure Monitorban .
A TimeGenerated egy gyakori oszlopot biztosít, amelyet az idő szerinti szűréshez vagy összegzéshez használhat. Amikor kiválaszt egy időtartományt egy nézethez vagy irányítópulthoz az Azure Portalon, a TimeGenerated használatával szűri az eredményeket.
Megjegyzés
A klasszikus Application Insights-erőforrásokat támogató táblák a TimeGenerated oszlop helyett az Időbélyeg oszlopot használják.
Megjegyzés
A TimeGenerated érték nem lehet 2 napnál régebbi a beérkezés előtt, vagy egy napnál hosszabb a jövőben. Ha bizonyos esetekben az érték 2 napnál vagy több napnál régebbi a jövőben, akkor azt a tényleges kapott időre cserélik.
Az alábbi lekérdezés az előző hét minden napján létrehozott hibaesemények számát adja vissza.
Event
| where EventLevelName == "Error"
| where TimeGenerated between(startofweek(ago(7days))..endofweek(ago(7days)))
| summarize count() by bin(TimeGenerated, 1day)
| sort by TimeGenerated asc
A _TimeReceived oszlop azt a dátumot és időpontot tartalmazza, amikor a rekordot az Azure Monitor betöltési pontja megkapta az Azure-felhőben. Ez hasznos lehet az adatforrás és a felhő közötti késési problémák azonosításához. Ilyen lehet például egy hálózatkezelési probléma, amely késlelteti az ügynöktől érkező adatok küldését. További részletekért tekintse meg a naplóadatok betöltésének idejét az Azure Monitorban .
Megjegyzés
A _TimeReceived oszlop minden használatkor ki lesz számítva. Ez a folyamat erőforrás-igényes. Ne használja nagy számú rekord szűréséhez. A függvény ismétlődő használata megnövelheti a lekérdezések végrehajtási időtartamát.
Az alábbi lekérdezés óránkénti átlagos késést ad egy ügynök eseményrekordjaihoz. Ez magában foglalja az ügynöktől a felhőig eltelt időt és a rekord napló lekérdezésekhez való rendelkezésre állásának teljes idejét.
Event
| where TimeGenerated > ago(1d)
| project TimeGenerated, TimeReceived = _TimeReceived, IngestionTime = ingestion_time()
| extend AgentLatency = toreal(datetime_diff('Millisecond',TimeReceived,TimeGenerated)) / 1000
| extend TotalLatency = toreal(datetime_diff('Millisecond',IngestionTime,TimeGenerated)) / 1000
| summarize avg(AgentLatency), avg(TotalLatency) by bin(TimeGenerated,1hr)
A Típus oszlop tartalmazza annak a táblának a nevét, amelyből a rekordot lekérte, és amelyről a rekordtípus is tekinthető. Ez az oszlop olyan lekérdezésekben hasznos, amelyek több tábla rekordjait kombinálják, például az search
operátort használó lekérdezésekben, hogy különbséget tesznek a különböző típusú rekordok között. $table egyes lekérdezésekben típus helyett használható.
Megjegyzés
A klasszikus Application Insights-erőforrásokat támogató táblák a Type oszlop helyett az itemType oszlopot használják.
Az alábbi lekérdezés az elmúlt órában gyűjtött rekordok számát adja vissza típus szerint.
search *
| where TimeGenerated > ago(1h)
| summarize count() by Type
A _ItemId oszlop a rekord egyedi azonosítóját tartalmazza.
A _ResourceId oszlop a rekordhoz társított erőforrás egyedi azonosítóját tartalmazza. Ez egy szabványos oszlopot biztosít, a lekérdezés hatókörének csak egy adott erőforrásból származó rekordokra való hatókörére, vagy a kapcsolódó adatok több táblán keresztüli összekapcsolására.
Az Azure-erőforrások esetében a _ResourceId értéke az Azure-erőforrás-azonosító URL-címe. Az oszlop az Azure-erőforrásokra, köztük az Azure Arc-erőforrásokra vagy azokra az egyéni naplókra korlátozódik, amelyek a betöltés során az erőforrás-azonosítót jelölik.
Megjegyzés
Egyes adattípusok már rendelkeznek Olyan mezőkkel, amelyek Azure-erőforrás-azonosítót vagy legalább részeit, például előfizetés-azonosítót tartalmaznak. Bár ezek a mezők a visszamenőleges kompatibilitás érdekében megmaradnak, javasoljuk, hogy a _ResourceId használva végezzen keresztkorrelációt, mivel konzisztensebb lesz.
Az alábbi lekérdezés az egyes számítógépek teljesítmény- és eseményadatait illeszti össze. A 101 azonosítójú és 50%-os processzorkihasználtsággal rendelkező összes eseményt megjeleníti.
Perf
| where CounterName == "% User Time" and CounterValue > 50 and _ResourceId != ""
| join kind=inner (
Event
| where EventID == 101
) on _ResourceId
Az alábbi lekérdezés az AzureActivity rekordokat a SecurityEvent rekordokkal kapcsolja össze. Megjeleníti az összes tevékenységműveletet a gépekre bejelentkezett felhasználókkal.
AzureActivity
| where
OperationName in ("Restart Virtual Machine", "Create or Update Virtual Machine", "Delete Virtual Machine")
and ActivityStatus == "Succeeded"
| join kind= leftouter (
SecurityEvent
| where EventID == 4624
| summarize LoggedOnAccounts = makeset(Account) by _ResourceId
) on _ResourceId
Az alábbi lekérdezés elemzi _ResourceId és összesíti a számlázott adatköteteket azure-erőforráscsoportonként.
union withsource = tt *
| where _IsBillable == true
| parse tolower(_ResourceId) with "/subscriptions/" subscriptionId "/resourcegroups/"
resourceGroup "/providers/" provider "/" resourceType "/" resourceName
| summarize Bytes=sum(_BilledSize) by resourceGroup | sort by Bytes nulls last
Ezeket a union withsource = tt *
lekérdezéseket takarékosan használja, mivel az adattípusok közötti vizsgálatok végrehajtása költséges.
Mindig hatékonyabb a _SubscriptionId oszlop használata, mint kinyerni a _ResourceId oszlop elemzésével.
A _SubscriptionId oszlop tartalmazza annak az erőforrásnak az előfizetés-azonosítóját, amelyhez a rekord társítva van. Ez egy szabványos oszlopot biztosít a lekérdezés hatókörének csak egy adott előfizetés rekordjaira való hatóköréhez, vagy a különböző előfizetések összehasonlításához.
Az Azure-erőforrások esetében a __SubscriptionId értéke az Azure-erőforrás-azonosító URL-címének előfizetési része. Az oszlop az Azure-erőforrásokra korlátozódik, beleértve az Azure Arc-erőforrásokat , vagy az előfizetés-azonosítót a betöltés során jelző egyéni naplókra.
Megjegyzés
Egyes adattípusok már rendelkeznek Azure-előfizetés-azonosítót tartalmazó mezőkkel. Bár ezek a mezők a visszamenőleges kompatibilitás érdekében megmaradnak, javasoljuk, hogy a _SubscriptionId oszlopot használva végezzen keresztkorrelációt, mivel konzisztensebb lesz.
Az alábbi lekérdezés egy adott előfizetés számítógépeinek teljesítményadatait vizsgálja.
Perf
| where TimeGenerated > ago(24h) and CounterName == "memoryAllocatableBytes"
| where _SubscriptionId == "ebb79bc0-aa86-44a7-8111-cabbe0c43993"
| summarize avgMemoryAllocatableBytes = avg(CounterValue) by Computer
Az alábbi lekérdezés elemzi _ResourceId és összesíti a számlázott adatköteteket Azure-előfizetésenként.
union withsource = tt *
| where _IsBillable == true
| summarize Bytes=sum(_BilledSize) by _SubscriptionId | sort by Bytes nulls last
Ezeket a union withsource = tt *
lekérdezéseket takarékosan használja, mivel az adattípusok közötti vizsgálatok végrehajtása költséges.
A _IsBillable oszlop azt határozza meg, hogy a betöltött adatok számlázhatónak minősülnek-e. Az _IsBillable egyenlő false
adatok nem járnak adatbetöltési, adatmegőrzési vagy archiválási költségekkel.
A számlázott adattípusokat küldő számítógépek listájának lekéréséhez használja a következő lekérdezést:
Megjegyzés
A lekérdezéseket union withsource = tt *
takarékosan használhatja, mivel az adattípusok közötti vizsgálatok végrehajtása költséges.
union withsource = tt *
| where _IsBillable == true
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize TotalVolumeBytes=sum(_BilledSize) by computerName
Ez kiterjeszthető a számlázott adattípusokat küldő számítógépek óránkénti számának visszaadására:
union withsource = tt *
| where _IsBillable == true
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize dcount(computerName) by bin(TimeGenerated, 1h) | sort by TimeGenerated asc
A _BilledSize oszlop adja meg az Azure-fióknak kiszámlázott adatok bájtban megadott méretét, ha _IsBillable igaz. A számlázott méret kiszámításának részleteiről további információt az Adatméret kiszámítása című témakörben talál.
A számítógépenként betöltött számlázható események méretének megtekintéséhez használja az _BilledSize
oszlopot, amely bájtokban adja meg a méretet:
union withsource = tt *
| where _IsBillable == true
| summarize Bytes=sum(_BilledSize) by Computer | sort by Bytes nulls last
Az előfizetésenként betöltött számlázható események méretének megtekintéséhez használja a következő lekérdezést:
union withsource=table *
| where _IsBillable == true
| summarize Bytes=sum(_BilledSize) by _SubscriptionId | sort by Bytes nulls last
Az erőforráscsoportonként betöltött számlázható események méretének megtekintéséhez használja a következő lekérdezést:
union withsource=table *
| where _IsBillable == true
| parse _ResourceId with "/subscriptions/" SubscriptionId "/resourcegroups/" ResourceGroupName "/" *
| summarize Bytes=sum(_BilledSize) by _SubscriptionId, ResourceGroupName | sort by Bytes nulls last
A számítógépenként betöltött események számának megtekintéséhez használja a következő lekérdezést:
union withsource = tt *
| summarize count() by Computer | sort by count_ nulls last
A számítógépenként betöltött számlázható események számának megtekintéséhez használja a következő lekérdezést:
union withsource = tt *
| where _IsBillable == true
| summarize count() by Computer | sort by count_ nulls last
Ha meg szeretné tekinteni egy adott számítógép számlázható adattípusainak számát, használja a következő lekérdezést:
union withsource = tt *
| where Computer == "computer name"
| where _IsBillable == true
| summarize count() by tt | sort by count_ nulls last
Oktatás
Modul
Lekérdezési naplók a Microsoft Sentinelben - Training
Lekérdezési naplók a Microsoft Sentinelben
Dokumentáció
Erőforrások közötti lekérdezés az Azure Monitorral - Azure Monitor
Több Log Analytics-munkaterület, alkalmazás vagy erőforrás adatainak lekérdezése és korrelációja a "workspace()", "app()" és "resource()" Kusto lekérdezésnyelv (KQL) kifejezésekkel.
A napló lekérdezések használatának első lépései az Azure Monitorban - Azure Monitor
Ez a cikk egy oktatóanyagot tartalmaz a napló lekérdezések Azure Monitorban való írásának első lépéseihez.
Szöveges adatok elemzése az Azure Monitor-naplókban - Azure Monitor
Ez a cikk az Azure Monitor-rekordok naplóadatainak elemzési lehetőségeit ismerteti az adatok betöltésekor és lekérdezésben való lekérésekor, és összehasonlítja az egyes adatok relatív előnyeit.