Splunk dotazu protokolu Azure MonitorSplunk to Azure Monitor log query

Tento článek je určený jako pomoc uživatelům, kteří znají Splunk učit jazyk dotaz Kusto psaní dotazů protokolu ve službě Azure Monitor.This article is intended to assist users who are familiar with Splunk to learn the Kusto query language to write log queries in Azure Monitor. Přímé porovnání mezi dvěma pochopit klíčové rozdíly a podobnosti probíhají, kde můžete využít své stávající znalosti.Direct comparisons are made between the two to understand key differences and also similarities where you can leverage your existing knowledge.

Struktura a konceptyStructure and concepts

Následující tabulka porovnává koncepty a datových struktur mezi protokoly Splunk a Azure Monitor.The following table compares concepts and data structures between Splunk and Azure Monitor logs.

KonceptConcept SplunkSplunk Azure MonitorAzure Monitor KomentářComment
Jednotka nasazeníDeployment unit Clusterucluster Clusterucluster Azure Monitor umožňuje libovolné různé dotazy clusteru.Azure Monitor allows arbitrary cross cluster queries. Splunk je nepodporuje.Splunk does not.
Mezipaměti datData caches kontejnerybuckets Zásady ukládání do mezipaměti a jejich uchováváníCaching and retention policies Určuje období a ukládání do mezipaměti úrovně pro data.Controls the period and caching level for the data. Toto nastavení přímo ovlivňuje výkon dotazů a náklady na nasazení.This setting directly impacts the performance of queries and cost of the deployment.
Logický oddíl datLogical partition of data indexindex databasedatabase Umožňuje logické rozdělení data.Allows logical separation of the data. Obou implementacích povolit sjednocení a propojení mezi tyto oddíly.Both implementations allow unions and joining across these partitions.
Strukturované událost metadatStructured event metadata neuvedenoN/A tabletable Splunk nemá koncept vystaveni vyhledávací jazyk metadat události.Splunk does not have the concept exposed to the search language of event metadata. Protokoly Azure monitoru nemá koncept tabulku, která má sloupce.Azure Monitor logs has the concept of a table, which has columns. Každá instance události je namapována na řádek.Each event instance is mapped to a row.
Datový záznamData record událostevent Řádekrow Terminologie pouze změny.Terminology change only.
Atribut záznam datData record attribute Polefield Sloupeccolumn Ve službě Azure Monitor je předdefinovaná jako součást struktura tabulky.In Azure Monitor, this is predefined as part of the table structure. Každá událost ve Splunku, má svou vlastní sadu polí.In Splunk, each event has its own set of fields.
TypyTypes datový typdatatype datový typdatatype Azure Monitor datové typy jsou více explicitní, jako jsou nastaveny na sloupce.Azure Monitor datatypes are more explicit as they are set on the columns. Oba se budou moct pracovat dynamicky datových typů a zhruba ekvivalentní sadu datových typů včetně podpory JSON.Both have the ability to work dynamically with data types and roughly equivalent set of datatypes including JSON support.
Dotazy a hledáníQuery and search searchsearch queryquery Koncepty jsou v podstatě stejné mezi Azure Monitor a Splunk.Concepts are essentially the same between both Azure Monitor and Splunk.
Čas ingestování událostiEvent ingestion time Systémový časSystem Time ingestion_time()ingestion_time() Každé události ve Splunku, získá systému časové razítko času, které události se indexovat.In Splunk, each event gets a system timestamp of the time that the event was indexed. Ve službě Azure Monitor můžete definovat zásadu ingestion_time, který zpřístupňuje systémový sloupec, který může být odkazováno pomocí funkce ingestion_time().In Azure Monitor, you can define a policy called ingestion_time that exposes a system column that can be referenced through the ingestion_time() function.

FunkceFunctions

Následující tabulka obsahuje funkce ve službě Azure Monitor, která jsou rovnocenná Splunk funkce.The following table specifies functions in Azure Monitor that are equivalent to Splunk functions.

SplunkSplunk Azure MonitorAzure Monitor KomentářComment
strcat –strcat strcat()strcat() (1)(1)
splitsplit split()split() (1)(1)
ifif iff()iff() (1)(1)
tonumbertonumber todouble()todouble()
tolong()tolong()
toint()toint()
(1)(1)
horníupper
Nižšílower
toupper()toupper()
tolower()tolower()
(1)(1)
nahraditreplace replace()replace() (1)(1)
Všimněte si také, že při replace() přijímá tři parametry v obou produktů, parametry jsou různé.Also note that while replace() takes three parameters in both products, the parameters are different.
substr –substr substring()substring() (1)(1)
Všimněte si také, že používá Splunk založen na jedničce indexy.Also note that Splunk uses one-based indices. Azure Monitor poznámky indexy od nuly.Azure Monitor notes zero-based indices.
ToLowertolower tolower()tolower() (1)(1)
ToUppertoupper toupper()toupper() (1)(1)
Shodamatch odpovídá regulárnímumatches regex (2)(2)
regexregex odpovídá regulárnímumatches regex Ve Splunku regex je operátor.In Splunk, regex is an operator. Ve službě Azure Monitor je relační operátor.In Azure Monitor, it's a relational operator.
searchmatchsearchmatch == Ve Splunku searchmatch umožňuje vyhledat přesný řetězec.In Splunk, searchmatch allows searching for the exact string.
náhodnérandom rand()rand()
rand(n)rand(n)
Splunk vaší funkce vrátí číslo od nuly do 231-1.Splunk's function returns a number from zero to 231-1. Azure Monitor "vrátí číslo v rozsahu od 0,0 do 1,0, nebo pokud parametr zadán, mezi 0 a n-1.Azure Monitor' returns a number between 0.0 and 1.0, or if a parameter provided, between 0 and n-1.
teďnow now()now() (1)(1)
relative_timerelative_time ToTimeSpan()totimespan() (1)(1)
Ve službě Azure Monitor je ekvivalent na Splunk relative_time (datetimeVal, offsetVal) datetimeVal + totimespan(offsetVal).In Azure Monitor, Splunk's equivalent of relative_time(datetimeVal, offsetVal) is datetimeVal + totimespan(offsetVal).
Například search | eval n=relative_time(now(), "-1d@d") stane ... | extend myTime = now() - totimespan("1d").For example, search | eval n=relative_time(now(), "-1d@d") becomes ... | extend myTime = now() - totimespan("1d").

(1) ve Splunku, funkce se vyvolala s eval operátor.(1) In Splunk, the function is invoked with the eval operator. Ve službě Azure Monitor se používá jako součást extend nebo project.In Azure Monitor, it is used as part of extend or project.
(2) ve Splunku, funkce se vyvolala s eval operátor.(2) In Splunk, the function is invoked with the eval operator. Ve službě Azure Monitor, lze použít s where operátor.In Azure Monitor, it can be used with the where operator.

OperátoryOperators

V následujících částech jsou uvedeny příklady použití různých operátorů mezi Splunk a Azure Monitor.The following sections give examples of using different operators between Splunk and Azure Monitor.

Poznámka

Pro účely následující příklad pole Splunk pravidlo mapuje na tabulku ve službě Azure Monitor a na Splunk výchozí časové razítko map pro analýzu protokolů ingestion_time() sloupce.For the purpose of the following example, the Splunk field rule maps to a table in Azure Monitor, and Splunk's default timestamp maps to the Logs Analytics ingestion_time() column.

Ve Splunku, můžete vynechat search – klíčové slovo a zadejte řetězec bez uvozovek.In Splunk, you can omit the search keyword and specify an unquoted string. Ve službě Azure Monitor je nutné spustit každý dotaz s find, bez uvozovek řetězec je název sloupce a hodnota vyhledávání musí být řetězec v uvozovkách.In Azure Monitor you must start each query with find, an unquoted string is a column name, and the lookup value must be a quoted string.

SplunkSplunk searchsearch search Session.Id="c8894ffd-e684-43c9-9125-42adc25cd3fc" earliest=-24h
Azure MonitorAzure Monitor findfind find Session.Id=="c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time()> ago(24h)

FiltrFilter

Azure Monitor log dotazy zahájeno v tabulkovém výsledku nastavit kde filtr.Azure Monitor log queries start from a tabular result set where the filter. Filtrování ve Splunku, je výchozí operaci v aktuální index.In Splunk, filtering is the default operation on the current index. Můžete také použít where operátor v Splunk, ale nedoporučuje.You can also use where operator in Splunk, but it is not recommended.

SplunkSplunk searchsearch Event.Rule="330009.2" Session.Id="c8894ffd-e684-43c9-9125-42adc25cd3fc" _indextime>-24h
Azure MonitorAzure Monitor kdewhere Office_Hub_OHubBGTaskError
| where Session_Id == "c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time() > ago(24h)

Získávání n události/řádků pro kontroluGetting n events/rows for inspection

Azure Monitor protokolu dotazuje také podporu take jako alias pro limit.Azure Monitor log queries also support take as an alias to limit. Ve Splunku, pokud jsou řazeny výsledky head vrátí prvních n výsledků.In Splunk, if the results are ordered, head will return the first n results. Ve službě Azure Monitor omezení není řazení, ale vrátí prvních n řádků, které se nacházejí.In Azure Monitor, limit is not ordered but returns the first n rows that are found.

SplunkSplunk hlavníhead Event.Rule=330009.2
| head 100
Azure MonitorAzure Monitor Limitlimit Office_Hub_OHubBGTaskError
| limit 100

Získat prvních n události/řádků seřazené podle pole nebo sloupecGetting the first n events/rows ordered by a field/column

Dolní výsledků ve Splunku použijete tail.For bottom results, in Splunk you use tail. Ve službě Azure Monitor můžete určit pořadí směr s asc.In Azure Monitor you can specify the ordering direction with asc.

SplunkSplunk hlavníhead Event.Rule="330009.2"
| sort Event.Sequence
| head 20
Azure MonitorAzure Monitor nahorutop Office_Hub_OHubBGTaskError
| top 20 by Event_Sequence

Rozšíření výsledku sadě pomocí nového pole nebo sloupceExtending the result set with new fields/columns

Splunk má také eval funkce, která nemá být srovnatelné s eval operátor.Splunk also has an eval function, which is not to be comparable with the eval operator. Oba eval operátor ve Splunku a extend operátor ve službě Azure Monitor se podporují jenom skalární funkce a aritmetické operátory.Both the eval operator in Splunk and the extend operator in Azure Monitor only support scalar functions and arithmetic operators.

SplunkSplunk (V angličtině)eval Event.Rule=330009.2
| eval state= if(Data.Exception = "0", "success", "error")
Azure MonitorAzure Monitor Rozšířeníextend Office_Hub_OHubBGTaskError
| extend state = iif(Data_Exception == 0,"success" ,"error")

PřejmenovatRename

Azure Monitor se používá stejný operátor přejmenovat a vytvořit nové pole.Azure Monitor uses the same operator to rename and to create a new field. Splunk má dva samostatné operátory, eval a rename.Splunk has two separate operators, eval and rename.

SplunkSplunk Přejmenovatrename Event.Rule=330009.2
| rename Date.Exception as execption
Azure MonitorAzure Monitor Rozšířeníextend Office_Hub_OHubBGTaskError
| extend exception = Date_Exception

Formát výsledky/projekceFormat results/Projection

Splunk pravděpodobně nemají podobně jako operátor project-away.Splunk does not seem to have an operator similar to project-away. Uživatelské rozhraní můžete použít k filtrování tokeny pole.You can use the UI to filter away fields.

SplunkSplunk Tabulkatable Event.Rule=330009.2
| table rule, state
Azure MonitorAzure Monitor projectproject
project-awayproject-away
Office_Hub_OHubBGTaskError
| project exception, state

AgregaceAggregation

Najdete v článku agregací ve službě Azure Monitor protokolu dotazy pro jinou agregační funkce.See the Aggregations in Azure Monitor log queries for the different aggregation functions.

SplunkSplunk Statistikystats search (Rule=120502.*)
| stats count by OSEnv, Audience
Azure MonitorAzure Monitor shrnutísummarize Office_Hub_OHubBGTaskError
| summarize count() by App_Platform, Release_Audience

PřipojitJoin

Spojení ve Splunku má významné omezení.Join in Splunk has significant limitations. Poddotaz má limit 10000 výsledky (nastavte v konfiguračním souboru nasazení) a existuje digitálních omezený počet spojení.The subquery has a limit of 10000 results (set in the deployment configuration file), and there a limited number of join flavors.

SplunkSplunk joinjoin Event.Rule=120103* | stats by Client.Id, Data.Alias | join Client.Id max=0 [search earliest=-24h Event.Rule="150310.0" Data.Hresult=-2147221040]
Azure MonitorAzure Monitor joinjoin cluster("OAriaPPT").database("Office PowerPoint").Office_PowerPoint_PPT_Exceptions
| where Data_Hresult== -2147221040
| join kind = inner (Office_System_SystemHealthMetadata
| summarize by Client_Id, Data_Alias)on Client_Id

SeřaditSort

Ve Splunku seřadit v vzestupném pořadí, je nutné použít reverse operátor.In Splunk, to sort in ascending order you must use the reverse operator. Azure monitorovat také podporuje určení, kam chcete vložit hodnoty Null, na začátku nebo na konci.Azure Monitor also supports defining where to put nulls, at the beginning or at the end.

SplunkSplunk Řazenísort Event.Rule=120103
| sort Data.Hresult
| reverse
Azure MonitorAzure Monitor Řadit podleorder by Office_Hub_OHubBGTaskError
| order by Data_Hresult, desc

Rozbalte více hodnotMultivalue expand

Toto je podobné operátor v Splunk a Azure Monitor.This is a similar operator in both Splunk and Azure Monitor.

SplunkSplunk mvexpandmvexpand mvexpand foo
Azure MonitorAzure Monitor mvexpandmvexpand mvexpand foo

Omezující vlastnosti výsledky, zajímavé poleResults facets, interesting fields

V Log Analytics na portálu Azure portal je přístupný jenom v prvním sloupci.In Log Analytics in the Azure portal, only the first column is exposed. Všechny sloupce jsou k dispozici prostřednictvím rozhraní API.All columns are available through the API.

SplunkSplunk Polefields Event.Rule=330009.2
| fields App.Version, App.Platform
Azure MonitorAzure Monitor omezující vlastnostifacets Office_Excel_BI_PivotTableCreate
| facet by App_Branch, App_Version

Duplicitní zrušeníDe-duplicate

Můžete použít summarize arg_min() místo toho pořadí, které získá vybrali záznam.You can use summarize arg_min() instead to reverse the order of which record gets chosen.

SplunkSplunk Při odstraňování duplicitních datdedup Event.Rule=330009.2
| dedup device_id sortby -batterylife
Azure MonitorAzure Monitor summarize arg_max()summarize arg_max() Office_Excel_BI_PivotTableCreate
| summarize arg_max(batterylife, *) by device_id

Další postupNext steps