Stručná nápověda pro převod mezi Splunk a Kusto

Cílem tohoto článku je pomoct uživatelům, kteří jsou obeznámeni se službou Splunk, seznámit se s dotazovací jazyk Kusto psát dotazy na protokoly pomocí Kusto. Přímé porovnání se provádí mezi těmito dvěma způsoby, aby se zdůraznily klíčové rozdíly a podobnosti, takže můžete stavět na svých stávajících znalostech.

Struktura a koncepty

Následující tabulka porovnává koncepty a datové struktury mezi protokoly Splunk a Kusto:

Koncepce Splunk Kusto Komentář
jednotka nasazení cluster cluster Kusto umožňuje libovolné dotazy napříč clustery. Splunk ne.
mezipaměti dat Kbelíky ukládání do mezipaměti a zásady uchovávání informací Řídí období a úroveň ukládání dat do mezipaměti. Toto nastavení má přímý vliv na výkon dotazů a náklady na nasazení.
logický oddíl dat index database Umožňuje logické oddělení dat. Obě implementace umožňují sjednocení a spojování napříč těmito oddíly.
metadata strukturovaných událostí tabulka Splunk nezpřístupňuje koncept metadat událostí vyhledávacímu jazyku. Protokoly Kusto mají koncept tabulky, která obsahuje sloupce. Každá instance události je mapována na řádek.
Záznam event row Pouze změna terminologie.
atribut záznamu pole sloupec V Kusto je toto nastavení předdefinované jako součást struktury tabulky. Ve Splunku má každá událost vlastní sadu polí.
typy Datatype Datatype Datové typy Kusto jsou explicitnější, protože jsou nastavené ve sloupcích. Oba typy mají schopnost dynamicky pracovat s datovými typy a zhruba ekvivalentní sadou datových typů, včetně podpory JSON.
dotazování a vyhledávání search query Koncepty jsou v Kusto a Splunku v podstatě stejné.
čas příjmu událostí systémový čas ingestion_time() Ve Splunku získá každá událost systémové časové razítko času, kdy byla událost indexována. V Kusto můžete definovat zásadu s názvem ingestion_time, která zveřejňuje systémový sloupec, na který lze odkazovat prostřednictvím funkce ingestion_time().

Functions

Následující tabulka uvádí funkce v Kusto, které jsou ekvivalentní funkcím Splunk.

Splunk Kusto Komentář
strcat strcat() (1)
split split() (1)
if iff() (1)
tonumber todouble()
tolong()
toint()
(1)
upper
lower
toupper()
tolower()
(1)
replace replace_string()nebo replace_strings()replace_regex() (1)
I když replace funkce v obou produktech přebírají tři parametry, parametry se liší.
substr substring() (1)
Všimněte si také, že Splunk používá 1 indexy. Kusto zaznamená indexy založené na nule.
tolower tolower() (1)
toupper toupper() (1)
match matches regex (2)
regex matches regex Ve Splunku regex je operátor. V Kusto je to relační operátor.
searchmatch == Ve Splunku searchmatch umožňuje vyhledání přesného řetězce.
random rand()
rand(n)
Splunkova funkce vrátí číslo mezi nulou a 231-1. Kusto vrátí číslo mezi 0,0 a 1,0, nebo pokud je zadán parametr, mezi 0 a n-1.
now now() (1)
relative_time totimespan() (1)
V Kusto je datetimeVal + totimespan(offsetVal)Splunkův ekvivalent relative_time(datetimeVal, offsetVal) .
Například se změní na search | | ...eval n=relative_time(now(), "-1d@d")extend myTime = now() - totimespan("1d").

(1) Ve Splunku je funkce vyvolána pomocí operátoru eval . V Kusto se používá jako součást nebo extendproject.
(2) Ve Splunku je funkce vyvolána pomocí operátoru eval . V Kusto se dá použít s operátorem where .

Operátory

Následující části obsahují příklady použití různých operátorů v nástrojích Splunk a Kusto.

Poznámka

V následujících příkladech se pole rule Splunk mapuje na tabulku v Kusto a výchozí časové razítko Splunku se mapuje na sloupec Logs Analytics ingestion_time() .

V nástroji Splunk můžete vynechat search klíčové slovo a zadat řetězec, který není udělován u citaci. V Kusto musíte každý dotaz začínat řetězcem find, řetězec bez citace je název sloupce a vyhledávací hodnota musí být řetězec v uvozování.

Produkt Operátor Příklad
Splunk search search Session.Id="c8894ffd-e684-43c9-9125-42adc25cd3fc" earliest=-24h
Kusto find find Session.Id=="c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time()> ago(24h)

Filtrovat

Dotazy protokolu Kusto začínají tabulkovou sadou výsledků, ve které filter se používá. Ve Splunku je filtrování výchozí operací aktuálního indexu. Operátor můžete použít where také ve Splunku, ale nedoporučujeme ho.

Produkt Operátor Příklad
Splunk search Event.Rule="330009.2" Session.Id="c8894ffd-e684-43c9-9125-42adc25cd3fc" _indextime>-24h
Kusto where Office_Hub_OHubBGTaskError
| where Session_Id == "c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time() > ago(24h)

Získání n událostí nebo řádků pro kontrolu

Dotazy protokolu Kusto také podporují take jako alias pro limit. Pokud jsou výsledky ve Splunku seřazené, head vrátí první n výsledků. V Kusto limit není seřazený, ale vrátí prvních n nalezených řádků.

Produkt Operátor Příklad
Splunk head Event.Rule=330009.2
| head 100
Kusto limit Office_Hub_OHubBGTaskError
| limit 100

Získání prvních n událostí nebo řádků seřazených podle pole nebo sloupce

Pro dolní výsledky ve Splunku použijte tail. V Kusto můžete určit směr řazení pomocí příkazu asc.

Produkt Operátor Příklad
Splunk head Event.Rule="330009.2"
| sort Event.Sequence
| head 20
Kusto top Office_Hub_OHubBGTaskError
| top 20 by Event_Sequence

Rozšíření sady výsledků o nová pole nebo sloupce

Splunk má eval funkci, ale není srovnatelná s operátorem eval v Kusto. eval Operátor v Splunku i extend operátor v Kusto podporují pouze skalární funkce a aritmetické operátory.

Produkt Operátor Příklad
Splunk eval Event.Rule=330009.2
| eval state= if(Data.Exception = "0", "success", "error")
Kusto extend Office_Hub_OHubBGTaskError
| extend state = iff(Data_Exception == 0,"success" ,"error")

přejmenování

Kusto používá project-rename operátor k přejmenování pole. V operátoru project-rename může dotaz využít všechny indexy, které jsou předem připravené pro pole. Splunk má rename operátor, který dělá totéž.

Produkt Operátor Příklad
Splunk rename Event.Rule=330009.2
| rename Date.Exception as execption
Kusto project-rename Office_Hub_OHubBGTaskError
| project-rename exception = Date_Exception

Formátování výsledků a projekce

Splunk pomocí příkazu table vybere sloupce, které se mají zahrnout do výsledků. Kusto má project operátor, který dělá to samé a další.

Produkt Operátor Příklad
Splunk table Event.Rule=330009.2
| table rule, state
Kusto project Office_Hub_OHubBGTaskError
| project exception, state

Splunk pomocí field - příkazu vybere sloupce, které se mají z výsledků vyloučit. Kusto má project-away operátor, který dělá totéž.

Produkt Operátor Příklad
Splunk fields - Event.Rule=330009.2
| fields - quota, hightest_seller
Kusto project-away Office_Hub_OHubBGTaskError
| project-away exception, state

Agregace

Podívejte se na seznam dostupných funkcí agregací souhrnů .

Operátor Splunk Příklad splunku Operátor Kusto Příklad Kusto
stats search (Rule=120502.*)
| stats count by OSEnv, Audience
summarize Office_Hub_OHubBGTaskError
| summarize count() by App_Platform, Release_Audience
evenstats ...
| stats count_i by time, category
| eventstats sum(count_i) AS count_total by _time_
join T2
| join kind=inner (T1) on _time
| project _time, category, count_i, count_total

Připojení

join ve Splunku má podstatná omezení. Poddotaz má limit 10 000 výsledků (nastavených v konfiguračním souboru nasazení) a je k dispozici omezený počet variant spojení.

Produkt Operátor Příklad
Splunk join Event.Rule=120103* | stats by Client.Id, Data.Alias
| join Client.Id max=0 [search earliest=-24h Event.Rule="150310.0" Data.Hresult=-2147221040]
Kusto join 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řadit

Pokud chcete ve Splunku řadit vzestupně, musíte použít reverse operátor . Kusto také podporuje definování umístění hodnot null, a to buď na začátku, nebo na konci.

Produkt Operátor Příklad
Splunk sort Event.Rule=120103
| sort Data.Hresult
| reverse
Kusto order by Office_Hub_OHubBGTaskError
| order by Data_Hresult, desc

Rozbalení více hodnot

Operátor rozbalení s více hodnotami je podobný ve Splunku i Kusto.

Produkt Operátor Příklad
Splunk mvexpand mvexpand solutions
Kusto mv-expand mv-expand solutions

Omezující vlastnosti výsledku, zajímavá pole

V Log Analytics v Azure Portal se zobrazí jenom první sloupec. Všechny sloupce jsou k dispozici prostřednictvím rozhraní API.

Produkt Operátor Příklad
Splunk fields Event.Rule=330009.2
| fields App.Version, App.Platform
Kusto facets Office_Excel_BI_PivotTableCreate
| facet by App_Branch, App_Version

Odstranění duplicitních dat

V Kusto můžete použít summarize arg_min() k obrácení pořadí zvoleného záznamu.

Produkt Operátor Příklad
Splunk dedup Event.Rule=330009.2
| dedup device_id sortby -batterylife
Kusto summarize arg_max() Office_Excel_BI_PivotTableCreate
| summarize arg_max(batterylife, *) by device_id