Ściągawka porównująca platformę Splunk z programem Kusto

Ten artykuł ma pomóc użytkownikom, którzy znają narzędzie Splunk, poznają język zapytań Kusto do pisania zapytań dzienników za pomocą usługi Kusto. Bezpośrednie porównania są dokonywane między dwoma elementami, aby wyróżnić kluczowe różnice i podobieństwa, dzięki czemu można wykorzystać istniejącą wiedzę.

Struktura i pojęcia

W poniższej tabeli porównaliśmy pojęcia i struktury danych między dziennikami Splunk i Kusto:

Pojęcie Splunk Kusto Komentarz
jednostka wdrożenia cluster cluster Usługa Kusto umożliwia dowolne zapytania między klastrami. Splunk nie.
pamięci podręczne danych Wiadra Zasady buforowania i przechowywania Określa okres i poziom buforowania danych. To ustawienie bezpośrednio wpływa na wydajność zapytań i koszt wdrożenia.
logiczna partycja danych index database Umożliwia logiczne rozdzielenie danych. Obie implementacje umożliwiają łączenie i łączenie między tymi partycjami.
metadane zdarzeń strukturalnych Nie dotyczy tabela Splunk nie ujawnia koncepcji metadanych zdarzeń w języku wyszukiwania. Dzienniki usługi Kusto mają pojęcie tabeli, która zawiera kolumny. Każde wystąpienie zdarzenia jest mapowane na wiersz.
rejestrowanie event wiersz Tylko zmiana terminologii.
atrybut rekordu pole kolumna W usłudze Kusto to ustawienie jest wstępnie zdefiniowane w ramach struktury tabeli. W rozwiązaniu Splunk każde zdarzenie ma własny zestaw pól.
types (typy) Datatype Datatype Typy danych usługi Kusto są bardziej jawne, ponieważ są one ustawiane w kolumnach. Obie mają możliwość dynamicznej pracy z typami danych i w przybliżeniu równoważnym zestawem typów danych, w tym obsługą formatu JSON.
zapytanie i wyszukiwanie search query Pojęcia zasadniczo są takie same między Kusto i Splunk.
czas pozyskiwania zdarzeń czas systemowy ingestion_time() W rozwiązaniu Splunk każde zdarzenie otrzymuje sygnaturę czasową systemu czasu indeksowania zdarzenia. W usłudze Kusto można zdefiniować zasady o nazwie ingestion_time, które uwidacznia kolumnę systemową, do której można się odwoływać za pośrednictwem funkcji ingestion_time().

Funkcje

W poniższej tabeli przedstawiono funkcje w usłudze Kusto, które są równoważne funkcjom Splunk.

Splunk Kusto Komentarz
strcat strcat() (1)
split split() (1)
if iff() (1)
tonumber todouble()
tolong()
toint()
(1)
upper
lower
toupper()
tolower()
(1)
replace replace_string(), replace_strings() lub replace_regex() (1)
Chociaż replace funkcje przyjmują trzy parametry w obu produktach, parametry są różne.
substr substring() (1)
Należy również zauważyć, że Splunk używa indeksów opartych na jednym obiekcie. Usługa Kusto zauważa indeksy oparte na zerach.
tolower tolower() (1)
toupper toupper() (1)
match matches regex (2)
regex matches regex In Splunk jest regex operatorem. W usłudze Kusto jest to operator relacyjny.
searchmatch == Funkcja Splunk searchmatch umożliwia wyszukiwanie dokładnego ciągu.
random rand()
rand(n)
Funkcja Splunk zwraca liczbę z zakresu od zera do 231–1. Funkcja Kusto zwraca liczbę z zakresu od 0,0 do 1,0 lub jeśli podano parametr z zakresu od 0 do n-1.
now now() (1)
relative_time totimespan() (1)
W Kusto odpowiednik relative_time(datetimeVal, offsetVal)datetimeVal + totimespan(offsetVal)Splunk jest .
Na przykład search | eval n=relative_time(now(), "-1d@d") staje się .... | extend myTime = now() - totimespan("1d")

(1) W funkcji Splunk funkcja jest wywoływana przy użyciu eval operatora . W usłudze extend Kusto jest on używany jako część elementu lub project.
(2) W funkcji Splunk funkcja jest wywoływana eval przy użyciu operatora . W usłudze Kusto można go używać z operatorem where .

Operatory

W poniższych sekcjach przedstawiono przykłady używania różnych operatorów w narzędziach Splunk i Kusto.

Uwaga

W poniższych przykładach pole rule Splunk mapuje na tabelę w usłudze Kusto i domyślną sygnaturę czasową splunku na kolumnę Logs Analytics ingestion_time() .

W narzędziu search Splunk można pominąć słowo kluczowe i określić ciąg bez cudzysłów. W usłudze Kusto należy uruchomić każde zapytanie z ciągiem findbez cudzysłów, a wartość odnośnika musi być ciągiem cytowanym.

Produkt Operator Przykład
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)

Filtr

Zapytania dziennika Kusto zaczynają się od zestawu wyników tabelarycznych, w którym filter jest stosowany. W funkcji Splunk filtrowanie jest domyślną operacją na bieżącym indeksie. Możesz również użyć operatora w narzędziu where Splunk, ale nie zalecamy go.

Produkt Operator Przykład
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)

Pobieranie n zdarzeń lub wierszy do inspekcji

Zapytania dziennika Kusto obsługują take również alias do limitusługi . Jeśli wyniki są uporządkowane w splunku, head zwraca pierwsze n wyników. W usłudze Kusto limit nie jest uporządkowane, ale zwraca pierwsze n znalezionych wierszy.

Produkt Operator Przykład
Splunk head Event.Rule=330009.2
| head 100
Kusto limit Office_Hub_OHubBGTaskError
| limit 100

Pobieranie pierwszych n zdarzeń lub wierszy uporządkowanych według pola lub kolumny

W przypadku dolnych wyników w narzędziu Splunk użyj polecenia tail. W usłudze Kusto można określić kierunek porządkowania przy użyciu polecenia asc.

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

Rozszerzanie zestawu wyników przy użyciu nowych pól lub kolumn

Splunk ma funkcję, ale nie jest porównywalna z operatorem evaleval w usłudze Kusto. Zarówno operator w narzędziu eval Splunk, jak extend i operator w usłudze Kusto obsługują tylko funkcje skalarne i operatory arytmetyczne.

Produkt Operator Przykład
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")

Zmień nazwę

Usługa Kusto używa project-rename operatora do zmiany nazwy pola. W operatorze project-rename zapytanie może korzystać z wszystkich indeksów, które są wstępnie utworzone dla pola. Splunk ma rename operator, który robi to samo.

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

Formatowanie wyników i projekcji

Funkcja Splunk używa polecenia , table aby wybrać kolumny do uwzględnienia w wynikach. Kusto ma project operator, który robi to samo i nie tylko.

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

Funkcja Splunk używa polecenia , field - aby wybrać kolumny do wykluczenia z wyników. Kusto ma project-away operator, który robi to samo.

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

Agregacja

Zapoznaj się z listą dostępnych funkcji agregacji podsumowania .

Operator Splunk Przykład splunk Operator Kusto Przykład kusto
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

Dołączanie

join w splunku ma znaczne ograniczenia. Podzapytywanie ma limit 10 000 wyników (ustawiony w pliku konfiguracji wdrożenia), a dostępna jest ograniczona liczba smaków sprzężenia.

Produkt Operator Przykład
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

Sortowanie

W narzędziu reverse Splunk, aby posortować w kolejności rosnącej, musisz użyć operatora . Usługa Kusto obsługuje również definiowanie lokalizacji, w której należy umieścić wartości null na początku lub na końcu.

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

Rozwiń wielowartościowe

Operator rozszerzania wielowartościowego jest podobny zarówno w narzędziu Splunk, jak i Kusto.

Produkt Operator Przykład
Splunk mvexpand mvexpand solutions
Kusto mv-expand mv-expand solutions

Aspekty wyników, interesujące pola

W usłudze Log Analytics w Azure Portal uwidoczniona jest tylko pierwsza kolumna. Wszystkie kolumny są dostępne za pośrednictwem interfejsu API.

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

Deduplikacja

W usłudze Kusto można użyć summarize arg_min() polecenia , aby odwrócić kolejność wybranego rekordu.

Produkt Operator Przykład
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