Lathund för Splunk till Kusto

Den här artikeln är avsedd att hjälpa användare som är bekanta med Splunk att lära sig Kusto-frågespråk att skriva loggfrågor med Kusto. Direkta jämförelser görs mellan de två för att belysa viktiga skillnader och likheter, så att du kan bygga vidare på dina befintliga kunskaper.

Struktur och begrepp

I följande tabell jämförs begrepp och datastrukturer mellan Splunk- och Kusto-loggar:

Koncept Splunk Kusto Kommentar
distributionsenhet cluster cluster Kusto tillåter godtyckliga frågor mellan kluster. Splunk gör det inte.
datacacheminnen Hinkar cachelagrings- och kvarhållningsprinciper Styr perioden och cachelagringsnivån för data. Den här inställningen påverkar direkt prestandan för frågor och kostnaden för distributionen.
logisk partition av data index databas Tillåter logisk separation av data. Båda implementeringarna tillåter unioner och sammanfogning mellan dessa partitioner.
strukturerade händelsemetadata Ej tillämpligt bord Splunk exponerar inte begreppet händelsemetadata för sökspråket. Kusto-loggar har konceptet med en tabell, som innehåller kolumner. Varje händelseinstans mappas till en rad.
spela in händelse rad Endast terminologi ändras.
postattribut fält kolumn I Kusto är den här inställningen fördefinierad som en del av tabellstrukturen. I Splunk har varje händelse en egen uppsättning fält.
typer Datatyp Datatyp Kusto-datatyper är mer explicita eftersom de anges för kolumnerna. Båda har möjlighet att arbeta dynamiskt med datatyper och ungefär motsvarande uppsättning datatyper, inklusive JSON-stöd.
fråga och söka sök query Begreppen är i princip desamma mellan Kusto och Splunk.
händelseinmatningstid systemtid ingestion_time() I Splunk får varje händelse en systemtidsstämpel för den tid då händelsen indexerades. I Kusto kan du definiera en princip som heter ingestion_time som exponerar en systemkolumn som kan refereras via funktionen ingestion_time().

Functions

Följande tabell anger funktioner i Kusto som motsvarar Splunk-funktioner.

Splunk Kusto Kommentar
strcat strcat() (1)
split split() (1)
if iff() (1)
tonumber todouble()
tolong()
toint()
(1)
upper
lower
toupper()
tolower()
(1)
replace replace_string(), replace_strings() eller replace_regex() (1)
Även om replace funktionerna har tre parametrar i båda produkterna är parametrarna olika.
substr substring() (1)
Observera också att Splunk använder enbaserade index. Kusto noterar nollbaserade index.
tolower tolower() (1)
toupper toupper() (1)
match matches regex (2)
regex matches regex I Splunk regex är en operator. I Kusto är det en relationsoperator.
searchmatch == I Splunk searchmatch kan du söka efter den exakta strängen.
random rand()
rand(n)
Splunks funktion returnerar ett tal mellan noll till 231–1. Kusto returnerar ett tal mellan 0,0 och 1,0, eller om en parameter anges, mellan 0 och n-1.
now now() (1)
relative_time totimespan() (1)
I Kusto är datetimeVal + totimespan(offsetVal)Splunks motsvarighet relative_time(datetimeVal, offsetVal) till .
Blir | extend myTime = now() - totimespan("1d")... till exempel . search | eval n=relative_time(now(), "-1d@d")

(1) I Splunk anropas funktionen med hjälp av operatorn eval . I Kusto används den som en del av extend eller project.
(2) I Splunk anropas funktionen med hjälp av operatorn eval . I Kusto kan den användas med operatorn where .

Operatorer

Följande avsnitt innehåller exempel på hur du använder olika operatorer i Splunk och Kusto.

Anteckning

I följande exempel mappar fältet rule Splunk till en tabell i Kusto och Splunks standardtidsstämpel mappar till kolumnen Logs Analytics ingestion_time() .

I Splunk kan du utelämna nyckelordet search och ange en icke-citatsträng. I Kusto måste du starta varje fråga med find, en icke-citatsträng är ett kolumnnamn och uppslagsvärdet måste vara en citerad sträng.

Produkt Operator Exempel
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)

Filtrera

Kusto-loggfrågor börjar från en tabellresultatuppsättning som filter tillämpas. I Splunk är filtrering standardåtgärden för det aktuella indexet. Du kan också använda operatorn where i Splunk, men vi rekommenderar det inte.

Produkt Operator Exempel
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)

Hämta n händelser eller rader för inspektion

Kusto-loggfrågor stöder take även som alias till limit. Om resultatet sorteras head i Splunk returneras de första n resultaten. I Kusto limit sorteras inte, men den returnerar de första n raderna som hittas.

Produkt Operator Exempel
Splunk head Event.Rule=330009.2
| head 100
Kusto limit Office_Hub_OHubBGTaskError
| limit 100

Hämta de första n händelserna eller raderna ordnade efter ett fält eller en kolumn

För de nedre resultaten använder du taili Splunk . I Kusto kan du ange ordningsriktning med hjälp ascav .

Produkt Operator Exempel
Splunk head Event.Rule="330009.2"
| sort Event.Sequence
| head 20
Kusto top Office_Hub_OHubBGTaskError
| top 20 by Event_Sequence

Utöka resultatuppsättningen med nya fält eller kolumner

Splunk har en eval funktion, men den är inte jämförbar med operatorn eval i Kusto. Både operatorn eval i Splunk och operatorn extend i Kusto stöder endast skalärfunktioner och aritmetiska operatorer.

Produkt Operator Exempel
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")

Byt namn

Kusto använder operatorn project-rename för att byta namn på ett fält. I operatorn project-rename kan en fråga dra nytta av alla index som är fördefinierade för ett fält. Splunk har en rename operator som gör samma sak.

Produkt Operator Exempel
Splunk rename Event.Rule=330009.2
| rename Date.Exception as execption
Kusto project-rename Office_Hub_OHubBGTaskError
| project-rename exception = Date_Exception

Formatera resultat och projektion

Splunk använder table kommandot för att välja vilka kolumner som ska ingå i resultatet. Kusto har en project operator som gör samma sak och mycket mer.

Produkt Operator Exempel
Splunk table Event.Rule=330009.2
| table rule, state
Kusto project Office_Hub_OHubBGTaskError
| project exception, state

Splunk använder field - kommandot för att välja vilka kolumner som ska undantas från resultaten. Kusto har en project-away operator som gör samma sak.

Produkt Operator Exempel
Splunk fields - Event.Rule=330009.2
| fields - quota, hightest_seller
Kusto project-away Office_Hub_OHubBGTaskError
| project-away exception, state

Aggregering

Se listan över sammanfattningsaggregeringsfunktioner som är tillgängliga.

Splunk-operator Splunk-exempel Kusto-operator Kusto-exempel
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

Anslut

join i Splunk har betydande begränsningar. Underfrågan har en gräns på 10 000 resultat (anges i distributionskonfigurationsfilen) och ett begränsat antal kopplingssmak är tillgängliga.

Produkt Operator Exempel
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

Sortera

Om du vill sortera i stigande ordning i Splunk måste du använda operatorn reverse . Kusto har också stöd för att definiera var null ska placeras, antingen i början eller i slutet.

Produkt Operator Exempel
Splunk sort Event.Rule=120103
| sort Data.Hresult
| reverse
Kusto order by Office_Hub_OHubBGTaskError
| order by Data_Hresult, desc

Flervärdesexp expandera

Multivalue expand-operatorn liknar både Splunk och Kusto.

Produkt Operator Exempel
Splunk mvexpand mvexpand solutions
Kusto mv-expand mv-expand solutions

Resultatfasytor, intressanta fält

I Log Analytics i Azure Portal exponeras endast den första kolumnen. Alla kolumner är tillgängliga via API:et.

Produkt Operator Exempel
Splunk fields Event.Rule=330009.2
| fields App.Version, App.Platform
Kusto facets Office_Excel_BI_PivotTableCreate
| facet by App_Branch, App_Version

Deduplicera

I Kusto kan du använda summarize arg_min() för att ändra ordningen på vilken post som väljs.

Produkt Operator Exempel
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