Cheatsheet voor conversie van Splunk naar Kusto

Dit artikel is bedoeld om gebruikers die bekend zijn met Splunk te helpen de Kusto-querytaal logboekquery's te schrijven met Kusto. Er worden directe vergelijkingen gemaakt tussen de twee om de belangrijkste verschillen en overeenkomsten te benadrukken, zodat u kunt voortbouwen op uw bestaande kennis.

Structuur en concepten

In de volgende tabel worden concepten en gegevensstructuren tussen Splunk- en Kusto-logboeken vergeleken:

Concept Splunk Kusto Opmerking
implementatie-eenheid cluster cluster Kusto staat willekeurige query's tussen clusters toe. Splunk niet.
gegevenscaches Emmers Cache- en bewaarbeleid Hiermee bepaalt u de periode en het cacheniveau voor de gegevens. Deze instelling is rechtstreeks van invloed op de prestaties van query's en de kosten van de implementatie.
logische partitie van gegevens index database Hiermee staat u logische scheiding van de gegevens toe. Beide implementaties staan samenvoegingen en samenvoeging tussen deze partities toe.
Metagegevens van gestructureerde gebeurtenissen N.v.t. tabel Splunk maakt het concept van metagegevens van gebeurtenissen niet beschikbaar voor de zoektaal. Kusto-logboeken hebben het concept van een tabel, die kolommen bevat. Elk gebeurtenisexemplaar wordt toegewezen aan een rij.
opnemen Gebeurtenis rij Alleen terminologiewijziging.
recordkenmerk veld kolom In Kusto is deze instelling vooraf gedefinieerd als onderdeel van de tabelstructuur. In Splunk heeft elke gebeurtenis een eigen set velden.
typen Datatype Datatype Kusto-gegevenstypen zijn explicieter omdat ze zijn ingesteld op de kolommen. Beide hebben de mogelijkheid om dynamisch te werken met gegevenstypen en ongeveer gelijkwaardige set gegevenstypen, inclusief JSON-ondersteuning.
query's uitvoeren en zoeken zoeken query Concepten zijn in wezen hetzelfde tussen Kusto en Splunk.
tijd voor gebeurtenisopname systeemtijd ingestion_time() In Splunk krijgt elke gebeurtenis een systeemtijdstempel van het tijdstip waarop de gebeurtenis is geïndexeerd. In Kusto kunt u een beleid definiëren met de naam ingestion_time dat een systeemkolom beschikbaar maakt waarnaar kan worden verwezen via de functie ingestion_time().

Functions

In de volgende tabel worden functies in Kusto opgegeven die gelijk zijn aan Splunk-functies.

Splunk Kusto Opmerking
strcat strcat() (1)
split split() (1)
if iff() (1)
tonumber todouble()
tolong()
toint()
(1)
upper
lower
toupper()
tolower()
(1)
replace replace_string(), replace_strings() of replace_regex() (1)
Hoewel replace functies in beide producten drie parameters hebben, zijn de parameters verschillend.
substr substring() (1)
Houd er ook rekening mee dat Splunk gebruikmaakt van op één gebaseerde indexen. Kusto noteert indexen op basis van nul.
tolower tolower() (1)
toupper toupper() (1)
match matches regex (2)
regex matches regex In Splunk regex is een operator. In Kusto is het een relationele operator.
searchmatch == In Splunk searchmatch kunt u zoeken naar de exacte tekenreeks.
random rand()
rand(n)
De functie van Splunk retourneert een getal tussen nul en 231-1. Kusto retourneert een getal tussen 0,0 en 1,0, of, als er een parameter is opgegeven, tussen 0 en n-1.
now now() (1)
relative_time totimespan() (1)
In Kusto is datetimeVal + totimespan(offsetVal)het equivalent van Splunk van relative_time(datetimeVal, offsetVal) .
Wordt | ...extend myTime = now() - totimespan("1d") bijvoorbeeld . search | eval n=relative_time(now(), "-1d@d")

(1) In Splunk wordt de functie aangeroepen met behulp van de eval operator. In Kusto wordt deze gebruikt als onderdeel van extend of project.
(2) In Splunk wordt de functie aangeroepen met behulp van de eval operator. In Kusto kan deze worden gebruikt met de where operator.

Operators

De volgende secties bevatten voorbeelden van het gebruik van verschillende operators in Splunk en Kusto.

Notitie

In de volgende voorbeelden wordt het veld rule Splunk toegewezen aan een tabel in Kusto en wordt het standaardtijdstempel van Splunk toegewezen aan de kolom Logs Analytics ingestion_time() .

In Splunk kunt u het search trefwoord weglaten en een tekenreeks zonder aanhalingstekens opgeven. In Kusto moet u elke query starten met find, een tekenreeks zonder aanhalingstekens is een kolomnaam en de opzoekwaarde moet een tekenreeks met aanhalingstekens zijn.

Product Operator Voorbeeld
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)

Filter

Kusto-logboekquery's beginnen met een resultatenset in tabelvorm waarin filter wordt toegepast. In Splunk is filteren de standaardbewerking voor de huidige index. U kunt de where operator ook gebruiken in Splunk, maar dit wordt niet aanbevolen.

Product Operator Voorbeeld
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 gebeurtenissen of rijen ophalen voor inspectie

Kusto-logboekquery's bieden ook ondersteuning take als alias voor limit. Als de resultaten in Splunk zijn geordend, head worden de eerste n resultaten geretourneerd. In Kusto limit , is niet geordend, maar het retourneert de eerste n rijen die zijn gevonden.

Product Operator Voorbeeld
Splunk head Event.Rule=330009.2
| head 100
Kusto limit Office_Hub_OHubBGTaskError
| limit 100

De eerste n gebeurtenissen of rijen op volgorde van een veld of kolom ophalen

Voor de onderste resultaten gebruikt tailu in Splunk. In Kusto kunt u de volgorderichting opgeven met behulp van asc.

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

De resultatenset uitbreiden met nieuwe velden of kolommen

Splunk heeft een eval functie, maar deze is niet vergelijkbaar met de eval operator in Kusto. Zowel de eval operator in Splunk als de extend operator in Kusto ondersteunen alleen scalaire functies en rekenkundige operatoren.

Product Operator Voorbeeld
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")

Naam wijzigen

Kusto gebruikt de operator om de project-rename naam van een veld te wijzigen. In de project-rename operator kan een query profiteren van alle indexen die vooraf zijn samengesteld voor een veld. Splunk heeft een rename operator die hetzelfde doet.

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

Resultaten en projectie opmaken

Splunk gebruikt de table opdracht om te selecteren welke kolommen moeten worden opgenomen in de resultaten. Kusto heeft een project operator die hetzelfde doet en meer.

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

Splunk gebruikt de field - opdracht om te selecteren welke kolommen moeten worden uitgesloten van de resultaten. Kusto heeft een project-away operator die hetzelfde doet.

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

Aggregatie

Bekijk de lijst met functies voor samenvatten van aggregaties die beschikbaar zijn.

Splunk-operator Voorbeeld van Splunk Kusto-operator Kusto-voorbeeld
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

Deelnemen

join in Splunk heeft aanzienlijke beperkingen. De subquery heeft een limiet van 10.000 resultaten (ingesteld in het configuratiebestand van de implementatie) en er is een beperkt aantal joins beschikbaar.

Product Operator Voorbeeld
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

Sorteren

Als u in Splunk in oplopende volgorde wilt sorteren, moet u de reverse operator gebruiken. Kusto ondersteunt ook het definiëren waar null-waarden moeten worden geplaatst, aan het begin of aan het einde.

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

Uitvouwen met meerdere waarden

De uitvouwoperator met meerdere waarden is vergelijkbaar in zowel Splunk als Kusto.

Product Operator Voorbeeld
Splunk mvexpand mvexpand solutions
Kusto mv-expand mv-expand solutions

Resultaat facetten, interessante velden

In Log Analytics in de Azure Portal wordt alleen de eerste kolom weergegeven. Alle kolommen zijn beschikbaar via de API.

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

Ontdubbelen

In Kusto kunt u gebruiken summarize arg_min() om de volgorde van de record te wijzigen.

Product Operator Voorbeeld
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