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 extend
project
.
(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()
.
Hledat
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 |
Související obsah
- Projděte si kurz o dotazovací jazyk Kusto.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro