Hasznos tanácsok a Splunkról Kustóra váltáshoz

Ez a cikk a Splunkot ismerő felhasználóknak nyújt segítséget a napló lekérdezések a Kusto-val való írásához szükséges Kusto lekérdezésnyelv elsajátításához. A két fő különbség és hasonlóság közvetlen összehasonlítására van lehetőség, így a meglévő tudásra építhet.

Struktúra és fogalmak

Az alábbi táblázat a Splunk- és a Kusto-naplók fogalmait és adatstruktúráit hasonlítja össze:

Fogalom Splunk Kusto Megjegyzés
üzembehelyezési egység cluster cluster A Kusto tetszőleges fürtök közötti lekérdezéseket engedélyez. Splunk nem.
adat-gyorsítótárak Vödör gyorsítótárazási és adatmegőrzési szabályzatok Szabályozza az adatok időtartamát és gyorsítótárazási szintjét. Ez a beállítás közvetlenül befolyásolja a lekérdezések teljesítményét és az üzembe helyezés költségét.
adatok logikai partíciója index adatbázis Lehetővé teszi az adatok logikai elkülönítését. Mindkét implementáció lehetővé teszi az egyesítőket és a csatlakozást ezeken a partíciókon.
strukturált esemény metaadatai N/A tábla A Splunk nem teszi elérhetővé az esemény metaadatainak fogalmát a keresési nyelvnek. A Kusto-naplók egy oszlopokat tartalmazó táblázat fogalmát tartalmazzák. Minden eseménypéldány egy sorra van leképezve.
Rekord Esemény sor Csak a terminológia változik.
record attribútum mező oszlop A Kusto-ban ez a beállítás előre definiálva van a táblaszerkezet részeként. A Splunkban minden esemény saját mezőkészlettel rendelkezik.
types Adattípus Adattípus A Kusto-adattípusok explicitebbek, mert az oszlopokon vannak beállítva. Mindkettő képes dinamikusan együttműködni az adattípusokkal és nagyjából egyenértékű adattípusokkal, beleértve a JSON-támogatást is.
lekérdezés és keresés keresés query A fogalmak alapvetően megegyeznek a Kusto és a Splunk között.
eseménybetöltési idő rendszeridő ingestion_time() A Splunk-ban minden esemény megkapja az esemény indexelésének idejét jelző rendszeridőbélyeget. A Kusto-ban definiálhat egy ingestion_time nevű szabályzatot, amely elérhetővé tesz egy rendszeroszlopot, amely a ingestion_time() függvényen keresztül hivatkozható.

Functions

Az alábbi táblázat a Kusto Splunk-függvényekkel egyenértékű függvényeit határozza meg.

Splunk Kusto Megjegyzés
strcat strcat() (1)
split split() (1)
if iff() (1)
tonumber todouble()
tolong()
toint()
(1)
upper
lower
toupper()
tolower()
(1)
replace replace_string(), replace_strings() vagy replace_regex() (1)
Bár replace a függvények mindkét termékben három paramétert használnak, a paraméterek eltérőek.
substr substring() (1)
Azt is vegye figyelembe, hogy a Splunk egy-alapú indexeket használ. A Kusto nulla alapú indexeket jegyez fel.
tolower tolower() (1)
toupper toupper() (1)
match matches regex (2)
regex matches regex A Splunk regex egy operátor. A Kusto-ban ez egy relációs operátor.
searchmatch == A Splunk searchmatch alkalmazásban lehetővé teszi a pontos sztring keresését.
random rand()
rand(n)
A Splunk függvény nulla és 231–1 közötti számot ad vissza. A Kusto értéke egy 0,0 és 1,0 közötti számot ad vissza, vagy ha paraméter van megadva, 0 és n-1 között.
now now() (1)
relative_time totimespan() (1)
A Kusto-ban a Splunk megfelelője relative_time(datetimeVal, offsetVal) a .datetimeVal + totimespan(offsetVal)
Például a következő lesz...extend myTime = now() - totimespan("1d") | : . search | eval n=relative_time(now(), "-1d@d")

(1) A Splunk esetében a függvény meghívása az eval operátorral történik. A Kusto-ban a vagy projecta extend részeként használják.
(2) A Splunkban a függvény meghívása az eval operátor használatával történik. A Kusto-ban az operátorral where használható.

Operátorok

Az alábbi szakaszok példákat mutatnak be a Splunk és a Kusto különböző operátorainak használatára.

Megjegyzés

Az alábbi példákban a Splunk mező rule leképez egy Kusto-táblára, a Splunk alapértelmezett időbélyege pedig a Logs Analytics ingestion_time() oszlopra lesz leképezve.

A Splunk alkalmazásban kihagyhatja a search kulcsszót, és megadhat egy nem kvótált sztringet. A Kusto-ban minden lekérdezést a következővel findkell kezdenie: , a nem kvótált sztring egy oszlopnév, a keresési értéknek pedig egy idézőjeles sztringnek kell lennie.

Termék Operátor Példa
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)

Szűrő

A Kusto-napló lekérdezései egy táblázatos eredménykészletből indulnak ki, amelyben filter az alkalmazás történik. A Splunk esetében a szűrés az aktuális index alapértelmezett művelete. A Splunkban is használhatja az where operátort, de nem javasoljuk.

Termék Operátor Példa
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)

N esemény vagy sor lekérése vizsgálathoz

A Kusto-napló lekérdezései aliasként is támogatják take a parancsot limit. A Splunkban, ha az eredmények rendezve vannak, head az első n eredményt adja vissza. A Kusto-ban nincs rendezve, limit de a talált első n sort adja vissza.

Termék Operátor Példa
Splunk head Event.Rule=330009.2
| head 100
Kusto limit Office_Hub_OHubBGTaskError
| limit 100

Az első n esemény vagy sor lekérése mező vagy oszlop szerint rendezve

Az alsó eredményeknél a Splunkban a következőt kell használnia tail: . A Kusto-ban a paranccsal ascadhatja meg a sorrend irányát.

Termék Operátor Példa
Splunk head Event.Rule="330009.2"
| sort Event.Sequence
| head 20
Kusto top Office_Hub_OHubBGTaskError
| top 20 by Event_Sequence

Az eredményhalmaz kiterjesztése új mezőkkel vagy oszlopokkal

A Splunk rendelkezik egy eval függvénnyel, de nem hasonlítható össze a eval Kusto operátorával. eval A Splunk operátora és a extend Kusto operátora is csak a skaláris függvényeket és az aritmetikai operátorokat támogatja.

Termék Operátor Példa
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")

Átnevezés

A Kusto az project-rename operátorral nevez át egy mezőt. Az operátorban a project-rename lekérdezések kihasználhatják a mezőkhöz előre összeállított indexeket. A Splunknak van egy rename operátora, amely ugyanezt teszi.

Termék Operátor Példa
Splunk rename Event.Rule=330009.2
| rename Date.Exception as execption
Kusto project-rename Office_Hub_OHubBGTaskError
| project-rename exception = Date_Exception

Eredmények és leképezés formázása

A Splunk a table paranccsal választja ki, hogy mely oszlopok szerepeljenek az eredmények között. A Kusto rendelkezik egy operátorral project , amely ugyanezt és többet is tesz.

Termék Operátor Példa
Splunk table Event.Rule=330009.2
| table rule, state
Kusto project Office_Hub_OHubBGTaskError
| project exception, state

A Splunk a field - paranccsal választja ki, hogy mely oszlopokat zárja ki az eredmények közül. A Kusto rendelkezik egy project-away operátorral, amely ugyanezt teszi.

Termék Operátor Példa
Splunk fields - Event.Rule=330009.2
| fields - quota, hightest_seller
Kusto project-away Office_Hub_OHubBGTaskError
| project-away exception, state

Összesítés

Tekintse meg az elérhető összesítési függvények listáját .

Splunk operátor Példa splunkra Kusto operátor Kusto-példa
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

Csatlakozás

join A Splunk jelentős korlátozásokkal rendelkezik. Az alkonfiguráció korlátja 10 000 (az üzembehelyezési konfigurációs fájlban van megadva), és korlátozott számú illesztés-íz érhető el.

Termék Operátor Példa
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

Rendezés

A Splunkban növekvő sorrendben történő rendezéshez az operátort reverse kell használnia. A Kusto azt is támogatja, hogy hol helyezzen el null értékeket, akár az elején, akár a végén.

Termék Operátor Példa
Splunk sort Event.Rule=120103
| sort Data.Hresult
| reverse
Kusto order by Office_Hub_OHubBGTaskError
| order by Data_Hresult, desc

Többértékű kibontás

A többértékű kibontás operátor a Splunk és a Kusto esetén is hasonló.

Termék Operátor Példa
Splunk mvexpand mvexpand solutions
Kusto mv-expand mv-expand solutions

Eredmény aspektusai, érdekes mezők

A Log Analyticsben a Azure Portal csak az első oszlop jelenik meg. Minden oszlop az API-val érhető el.

Termék Operátor Példa
Splunk fields Event.Rule=330009.2
| fields App.Version, App.Platform
Kusto facets Office_Excel_BI_PivotTableCreate
| facet by App_Branch, App_Version

Deduplikátum

A Kusto használatával summarize arg_min() megfordíthatja a kiválasztott rekord sorrendjét.

Termék Operátor Példa
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