Analýza využití v pracovním prostoru služby Log Analytics
Náklady na Azure Monitor se můžou výrazně lišit v závislosti na objemu shromažďovaných dat v pracovním prostoru služby Log Analytics. Tento svazek je ovlivněn sadou řešení využívajících pracovní prostor a objem dat, která jednotlivá řešení shromažďují. Tento článek obsahuje pokyny k analýze shromážděných dat, které vám pomůžou řídit náklady na příjem dat. Pomůže vám určit příčinu vyššího než očekávaného využití. Pomůže vám také předpovědět náklady při monitorování dalších prostředků a konfiguraci různých funkcí služby Azure Monitor.
Tip
Strategie pro snížení nákladů na Azure Monitor najdete v tématu Optimalizace nákladů a Azure Monitor.
Příčiny vyššího než očekávaného využití
Každý pracovní prostor služby Log Analytics se účtuje jako samostatná služba a přispívá k faktuře za vaše předplatné Azure. Objem příjmu dat může být značný v závislosti na:
- Sada přehledů a služeb, které jsou povolené a jejich konfigurace.
- Počet a typ monitorovaných prostředků
- Objem dat shromážděných z každého monitorovaného prostředku
Neočekávaný nárůst některého z těchto faktorů může vést ke zvýšení poplatků za uchovávání dat. Zbytek tohoto článku poskytuje metody pro detekci takové situace a následnou analýzu shromážděných dat, aby bylo možné identifikovat a zmírnit zdroj zvýšeného využití.
Odeslání upozornění, když je shromažďování dat vysoké
Abyste se vyhnuli neočekávaným fakturám, měli byste být proaktivně upozorněni, kdykoli dojde k nadměrnému využití. Oznámení umožňuje řešit případné anomálie před koncem fakturačního období.
Následující příklad je pravidlo upozornění prohledávání protokolu, které odešle upozornění, pokud fakturovatelný objem dat přijatý za posledních 24 hodin byl větší než 50 GB. Upravte nastavení logiky upozornění tak, aby používalo jinou prahovou hodnotu na základě očekávaného využití ve vašem prostředí. Můžete také zvýšit frekvenci kontroly využití vícekrát denně, ale tato možnost způsobí vyšší poplatek za pravidlo upozornění.
Nastavení | Hodnota |
---|---|
Scope | |
Cílový obor | Vyberte pracovní prostor služby Log Analytics. |
Condition (Podmínka) | |
Dotaz | Usage | where IsBillable | summarize DataGB = sum(Quantity / 1000) |
Měrný systém | Míra: DataGB Typ agregace: Celkem Členitost agregace: 1 den |
Logika upozornění | Operátor: Větší než Prahová hodnota: 50 Frekvence vyhodnocení: 1 den |
Akce | Vyberte nebo přidejte skupinu akcí, která vás upozorní na překročení prahové hodnoty. |
Podrobnosti | |
Závažnost | Upozorňující |
Název pravidla upozornění | Fakturovatelný objem dat větší než 50 GB za 24 hodin. |
Analýza využití ve službě Azure Monitor
Spusťte analýzu pomocí existujících nástrojů ve službě Azure Monitor. Tyto nástroje nevyžadují žádnou konfiguraci a často poskytují potřebné informace s minimálním úsilím. Pokud potřebujete podrobnější analýzu shromážděných dat než existující funkce služby Azure Monitor, použijte v Log Analytics některý z následujících dotazů na protokoly.
Přehledy pracovních prostorů služby Log Analytics
Přehledy pracovních prostorů služby Log Analytics vám poskytují rychlý přehled dat ve vašem pracovním prostoru. Můžete například určit:
- Tabulky dat, které ingestují největší objem dat v hlavní tabulce.
- Hlavní zdroje informací, které přispívají k datům
- Trend příjmu dat
Přehled příjmu dat podle řešení a tabulky najdete na kartě Využití . Tyto informace vám můžou pomoct rychle identifikovat tabulky, které přispívají k hromadnému objemu dat. Na kartě se také zobrazuje trend shromažďování dat v průběhu času. Můžete určit, jestli se shromažďování dat v průběhu času trvale zvýšilo nebo se náhle zvýšilo v reakci na změnu konfigurace.
Vyberte Další dotazy pro předem připravené dotazy, které vám pomůžou lépe porozumět vašim vzorům dat.
Využití a odhadované náklady
V grafu příjem dat na stránce Využití a odhadované náklady pro každý pracovní prostor se zobrazuje celkový objem odeslaných dat a počet odesílaných řešení jednotlivými řešeními za předchozích 31 dnů. Tyto informace vám pomůžou určit trendy, jako je například to, jestli je zvýšení z celkového využití dat nebo využití konkrétním řešením.
Dotazování na objemy dat z tabulky Využití
Analyzujte množství fakturovatelných dat shromážděných konkrétní službou nebo řešením. Tyto dotazy používají tabulku Využití , která shromažďuje data o využití pro každou tabulku v pracovním prostoru.
Poznámka:
Klauzule s TimeGenerated
je určená pouze k zajištění toho, aby se prostředí dotazů na webu Azure Portal vrátilo za výchozích 24 hodin. Pokud používáte datový typ Využití a EndTime
představuje časové intervaly, StartTime
pro které se zobrazují výsledky.
Fakturovatelný objem dat podle typu za poslední měsíc
Usage
| where TimeGenerated > ago(32d)
| where StartTime >= startofday(ago(31d)) and EndTime < startofday(now())
| where IsBillable == true
| summarize BillableDataGB = sum(Quantity) / 1000. by bin(StartTime, 1d), DataType
| render columnchart
Fakturovatelný objem dat podle řešení a typu za poslední měsíc
Usage
| where TimeGenerated > ago(32d)
| where StartTime >= startofday(ago(31d)) and EndTime < startofday(now())
| where IsBillable == true
| summarize BillableDataGB = sum(Quantity) / 1000 by Solution, DataType
| sort by Solution asc, DataType asc
Dotazování objemu dat z událostí přímo
Pokud potřebujete hlubší analýzu shromážděných dat, můžete v Log Analytics použít dotazy na protokoly. Každá tabulka v pracovním prostoru služby Log Analytics má následující standardní sloupce, které vám můžou pomoct při analýze fakturovatelných dat:
- _IsBillable identifikuje záznamy, za které se účtují poplatky za příjem dat. Tento sloupec slouží k filtrování nefakturovatelných dat.
- _BilledSize poskytuje velikost v bajtech záznamu.
Fakturovatelný objem dat pro konkrétní události
Pokud zjistíte, že určitý datový typ shromažďuje nadměrná data, můžete chtít analyzovat data v této tabulce a určit konkrétní záznamy, které se zvyšují. Tento příklad vyfiltruje konkrétní ID událostí v Event
tabulce a pak poskytne počet pro každé ID. Tento dotaz můžete upravit pomocí sloupců z jiných tabulek.
Event
| where TimeGenerated > startofday(ago(31d)) and TimeGenerated < startofday(now())
| where EventID == 5145 or EventID == 5156
| where _IsBillable == true
| summarize count(), Bytes=sum(_BilledSize) by EventID, bin(TimeGenerated, 1d)
Objem dat podle prostředků Azure, skupiny prostředků nebo předplatného
Můžete analyzovat množství fakturovatelných dat shromážděných z konkrétního prostředku nebo sady prostředků. Tyto dotazy používají sloupce _ResourceId a _SubscriptionId pro data z prostředků hostovaných v Azure.
Upozorňující
Používejte vyhledávací dotazy střídmě, protože kontroly napříč datovými typy jsou náročné na provádění prostředků. Pokud nepotřebujete výsledky pro každé předplatné, skupinu prostředků nebo název prostředku, použijte tabulku Využití jako v předchozích dotazech.
Fakturovatelný objem dat podle ID prostředku za poslední celý den
find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _ResourceId, _BilledSize, _IsBillable
| where _IsBillable == true
| summarize BillableDataBytes = sum(_BilledSize) by _ResourceId
| sort by BillableDataBytes nulls last
Fakturovatelný objem dat podle skupiny prostředků za poslední celý den
find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _ResourceId, _BilledSize, _IsBillable
| where _IsBillable == true
| summarize BillableDataBytes = sum(_BilledSize) by _ResourceId
| extend resourceGroup = tostring(split(_ResourceId, "/")[4] )
| summarize BillableDataBytes = sum(BillableDataBytes) by resourceGroup
| sort by BillableDataBytes nulls last
Může být užitečné analyzovat _ResourceId
:
| parse tolower(_ResourceId) with "/subscriptions/" subscriptionId "/resourcegroups/"
resourceGroup "/providers/" provider "/" resourceType "/" resourceName
Fakturovatelný objem dat podle předplatného za poslední celý den
find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _BilledSize, _IsBillable, _SubscriptionId
| where _IsBillable == true
| summarize BillableDataBytes = sum(_BilledSize) by _SubscriptionId
| sort by BillableDataBytes nulls last
Tip
U pracovních prostorů s velkými objemy dat může být provádění dotazů, jako jsou dotazy uvedené v této části, které se dotazují na velké objemy nezpracovaných dat, možná nutné omezit na jeden den. Pokud chcete sledovat trendy v průběhu času, zvažte nastavení sestavy Power BI a použití přírůstkové aktualizace ke shromažďování objemů dat na prostředek jednou denně.
Objem dat podle počítače
Můžete analyzovat množství fakturovatelných dat shromážděných z virtuálního počítače nebo sady virtuálních počítačů. Tabulka Usage nemá členitost k zobrazení datových svazků pro konkrétní virtuální počítače, takže tyto dotazy používají operátor hledání k prohledávání všech tabulek, které obsahují název počítače. Typ Použití je vynechán, protože tento dotaz je určen pouze pro analýzu trendů dat.
Upozorňující
Používejte vyhledávací dotazy střídmě, protože kontroly napříč datovými typy jsou náročné na provádění prostředků. Pokud nepotřebujete výsledky pro každé předplatné, skupinu prostředků nebo název prostředku, použijte tabulku Využití jako v předchozích dotazech.
Fakturovatelný objem dat podle počítače za poslední celý den
find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _BilledSize, _IsBillable, Computer, Type
| where _IsBillable == true and Type != "Usage"
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| summarize BillableDataBytes = sum(_BilledSize) by computerName
| sort by BillableDataBytes desc nulls last
Počet fakturovatelných událostí podle počítače za poslední celý den
find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _IsBillable, Computer, Type
| where _IsBillable == true and Type != "Usage"
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| summarize eventCount = count() by computerName
| sort by eventCount desc nulls last
Dotazování na běžné datové typy
Pokud zjistíte, že u konkrétního datového typu máte nadměrná fakturovatelná data, budete možná muset provést dotaz pro analýzu dat v této tabulce. Následující dotazy poskytují ukázky pro některé běžné datové typy:
Řešení zabezpečení
SecurityEvent
| summarize AggregatedValue = count() by EventID
| order by AggregatedValue desc nulls last
Řešení pro správu protokolů
Usage
| where Solution == "LogManagement" and iff(isnotnull(toint(IsBillable)), IsBillable == true, IsBillable == "true") == true
| summarize AggregatedValue = count() by DataType
| order by AggregatedValue desc nulls last
Datový typ Perf
Perf
| summarize AggregatedValue = count() by CounterPath
Perf
| summarize AggregatedValue = count() by CounterName
Datový typ Event
Event
| summarize AggregatedValue = count() by EventID
Event
| summarize AggregatedValue = count() by EventLog, EventLevelName
Datový typ Syslog
Syslog
| summarize AggregatedValue = count() by Facility, SeverityLevel
Syslog
| summarize AggregatedValue = count() by ProcessName
Datový typ AzureDiagnostics
AzureDiagnostics
| summarize AggregatedValue = count() by ResourceProvider, ResourceId
Data Application Insights
Existují dva přístupy ke zkoumání množství dat shromážděných pro Application Insights v závislosti na tom, jestli máte klasickou aplikaci nebo aplikaci založenou na pracovním prostoru. _BilledSize
Použijte vlastnost, která je k dispozici pro každou ingestovaná událost pro prostředky založené na pracovním prostoru i klasické prostředky. Pro klasické prostředky můžete také použít agregované informace v tabulce systemEvents .
Poznámka:
Dotazy na tabulky Application Insights s výjimkou SystemEvents
– budou fungovat pro prostředek Application Insights založený na pracovním prostoru i klasickém prostředku Application Insights. Zpětná kompatibilita umožňuje nadále používat starší názvy tabulek. V případě prostředku založeného na pracovním prostoru otevřete protokoly v nabídce pracovního prostoru služby Log Analytics. V případě klasického prostředku otevřete protokoly v nabídce Application Insights .
Operace závislostí generují největší objem dat za posledních 30 dnů (založené na pracovním prostoru nebo klasickém)
dependencies
| where timestamp >= startofday(ago(30d))
| summarize sum(_BilledSize) by operation_Name
| render barchart
Denní objem dat podle typu pro tento prostředek Application Insights za posledních 7 dnů (pouze klasický)
systemEvents
| where timestamp >= startofday(ago(7d)) and timestamp < startofday(now())
| where type == "Billing"
| extend BillingTelemetryType = tostring(dimensions["BillingTelemetryType"])
| extend BillingTelemetrySizeInBytes = todouble(measurements["BillingTelemetrySize"])
| summarize sum(BillingTelemetrySizeInBytes) by BillingTelemetryType, bin(timestamp, 1d)
Trendy objemu dat pro prostředky založené na pracovních prostorech
Pokud se chcete podívat na trendy objemu dat pro prostředky Application Insights založené na pracovních prostorech, použijte dotaz, který obsahuje všechny tabulky Application Insights. Následující dotazy používají názvy tabulek specifické pro prostředky založené na pracovních prostorech.
Denní objem dat podle typu pro všechny prostředky Application Insights v pracovním prostoru po dobu 7 dnů
union AppAvailabilityResults,
AppBrowserTimings,
AppDependencies,
AppExceptions,
AppEvents,
AppMetrics,
AppPageViews,
AppPerformanceCounters,
AppRequests,
AppSystemEvents,
AppTraces
| where TimeGenerated >= startofday(ago(7d)) and TimeGenerated < startofday(now())
| summarize sum(_BilledSize) by _ResourceId, bin(TimeGenerated, 1d)
Pokud se chcete podívat na trendy objemu dat pouze pro jeden prostředek Application Insights, přidejte před předchozí dotaz následující řádek summarize
:
| where _ResourceId contains "<myAppInsightsResourceName>"
Tip
U pracovních prostorů s velkými objemy dat může být potřeba dotazy, jako je předchozí, které dotazují velké objemy nezpracovaných dat, omezit na jeden den. Pokud chcete sledovat trendy v průběhu času, zvažte nastavení sestavy Power BI a použití přírůstkové aktualizace ke shromažďování objemů dat na prostředek jednou denně.
Principy uzlů odesílaných dat
Pokud nemáte nadměrná data z nějakého konkrétního zdroje, můžete mít nadměrný počet agentů, kteří odesílají data.
Počet uzlů agentů, které odesílají prezenční signál každý den v posledním měsíci
Heartbeat
| where TimeGenerated > startofday(ago(31d))
| summarize nodes = dcount(Computer) by bin(TimeGenerated, 1d)
| render timechart
Upozorňující
Používejte vyhledávací dotazy střídmě, protože kontroly napříč datovými typy jsou náročné na provádění prostředků. Pokud nepotřebujete výsledky pro každé předplatné, skupinu prostředků nebo název prostředku, použijte tabulku Využití jako v předchozích dotazech.
Počet uzlů odesílaných všechna data za posledních 24 hodin
find where TimeGenerated > ago(24h) project Computer
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize nodes = dcount(computerName)
Objem dat odeslaný každým uzlem za posledních 24 hodin
find where TimeGenerated > ago(24h) project _BilledSize, Computer
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize TotalVolumeBytes=sum(_BilledSize) by computerName
Uzly fakturované za starší cenovou úroveň pro jednotlivé uzly
Starší verze cenové úrovně pro jednotlivé uzly se účtuje za uzly s hodinovou členitostí. Také nepočítá uzly, které odesílají jenom sadu datových typů zabezpečení. Pokud chcete získat seznam počítačů, které se budou účtovat jako uzly, pokud je pracovní prostor ve starší cenové úrovni pro jednotlivé uzly, vyhledejte uzly, které odesílají fakturované datové typy, protože některé datové typy jsou bezplatné. V tomto případě použijte pole úplně vlevo plně kvalifikovaného názvu domény.
Následující dotazy vrátí počet počítačů s fakturovanými daty za hodinu. Počet jednotek na faktuře je v jednotkách měsíců uzlu, které jsou reprezentovány billableNodeMonthsPerDay
v dotazu. Pokud má pracovní prostor nainstalované řešení Update Management, přidejte do seznamu v where
klauzuli datové typy Update a UpdateSummary.
find where TimeGenerated >= startofday(ago(7d)) and TimeGenerated < startofday(now()) project Computer, _IsBillable, Type, TimeGenerated
| where Type !in ("SecurityAlert", "SecurityBaseline", "SecurityBaselineSummary", "SecurityDetection", "SecurityEvent", "WindowsFirewall", "MaliciousIPCommunication", "LinuxAuditLog", "SysmonEvent", "ProtectionStatus", "WindowsEvent")
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| where _IsBillable == true
| summarize billableNodesPerHour=dcount(computerName) by bin(TimeGenerated, 1h)
| summarize billableNodesPerDay = sum(billableNodesPerHour)/24., billableNodeMonthsPerDay = sum(billableNodesPerHour)/24./31. by day=bin(TimeGenerated, 1d)
| sort by day asc
Poznámka:
Složitost skutečného fakturačního algoritmu při použití cílení řešení není v předchozím dotazu reprezentována.
Počty uzlů zabezpečení a automatizace
Počet jedinečných uzlů zabezpečení
union
(
Heartbeat
| where (Solutions has 'security' or Solutions has 'antimalware' or Solutions has 'securitycenter')
| project Computer
),
(
ProtectionStatus
| where Computer !in (Heartbeat | project Computer)
| project Computer
)
| distinct Computer
| project lowComputer = tolower(Computer)
| distinct lowComputer
| count
Počet jedinečných automatizačních uzlů
ConfigurationData
| where (ConfigDataType == "WindowsServices" or ConfigDataType == "Software" or ConfigDataType =="Daemons")
| extend lowComputer = tolower(Computer) | summarize by lowComputer
| join (
Heartbeat
| where SCAgentChannel == "Direct"
| extend lowComputer = tolower(Computer) | summarize by lowComputer, ComputerEnvironment
) on lowComputer
| summarize count() by ComputerEnvironment | sort by ComputerEnvironment asc
Pozdní příchod dat
Pokud zaznamenáte vysoké ingestování dat hlášené pomocí Usage
záznamů, ale nevidíte stejné výsledky sečtení _BilledSize
přímo u datového typu, je možné, že máte data s pozdním příchodem. K této situaci dochází, když se data ingestují pomocí starých časových razítek.
Agent může mít například problém s připojením a po opětovném připojení odesílat kumulovaná data. Nebo hostitel může mít nesprávný čas. V obou příkladech může dojít k zjevné nesrovnalosti mezi přijatými daty hlášenými datovým typem Využití a dotazem, který sečte _BilledSize nad nezpracovanými daty za konkrétní den určený funkcí TimeGenerated, časové razítko, kdy byla událost vygenerována.
Pokud chcete diagnostikovat problémy s pozdním příchodem dat, použijte sloupec _TimeReceived a sloupec TimeGenerated . Vlastnost _TimeReceived
je čas přijetí záznamu bodem příjmu služby Azure Monitor v cloudu Azure.
Následující příklad je v reakci na velké objemy přijatých dat W3CIISLog 2. května 2021, aby bylo možné identifikovat časová razítka u těchto přijatých dat. Tento where TimeGenerated > datetime(1970-01-01)
příkaz obsahuje informace o uživatelském rozhraní Log Analytics, aby se podíval na všechna data.
W3CIISLog
| where TimeGenerated > datetime(1970-01-01)
| where _TimeReceived >= datetime(2021-05-02) and _TimeReceived < datetime(2021-05-03)
| where _IsBillable == true
| summarize BillableDataMB = sum(_BilledSize)/1.E6 by bin(TimeGenerated, 1d)
| sort by TimeGenerated asc
Další kroky
- Informace o způsobu výpočtu poplatků pro data v pracovním prostoru služby Log Analytics a různých možnostech konfigurace pro snížení poplatků najdete v podrobnostech o cenách protokolů služby Azure Monitor.
- Informace o nákladech a využití služby Azure Monitor najdete v popisu různých typů poplatků za Azure Monitor a jejich analýzu na faktuře za Azure.
- Podívejte se na osvědčené postupy služby Azure Monitor – Správa nákladů pro osvědčené postupy při konfiguraci a správě služby Azure Monitor, abyste minimalizovali poplatky.
- Informace o použití transformací k omezení množství dat shromážděných v pracovním prostoru služby Log Analytics pomocí nežádoucích záznamů a sloupců najdete v tématu Transformace shromažďování dat ve službě Azure Monitor (Preview ).