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()
.
Zoeken
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 tail
u 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 |
Gerelateerde inhoud
- Doorloop een zelfstudie over de Kusto-querytaal.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor