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()
.
Sök
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 tail
i Splunk . I Kusto kan du ange ordningsriktning med hjälp asc
av .
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 |
Relaterat innehåll
- Gå igenom en självstudie om Kusto-frågespråk.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för