Splunk do mapy język zapytań 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.
rekord danych event wiersz Tylko zmiana terminologii.
atrybut rekordu danych 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() (1)
Należy również pamiętać, że chociaż replace() przyjmuje 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 usługi Kusto rozpoczynają się od zestawu wyników tabelarycznych, w którym filter jest stosowany. W narzędziu 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 dzienników Kusto obsługują take również alias dla elementu limit. W narzędziu Splunk, jeśli wyniki są uporządkowane, head zwraca pierwsze n wyników. W usłudze Kusto limit nie jest uporządkowana, 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 eval funkcję, ale nie jest porównywalna z operatorem eval w usłudze Kusto. Operator w narzędziu evalextend Splunk 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 = iif(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 table polecenia , aby wybrać kolumny do uwzględnienia w wynikach. Usługa Kusto ma project operator, który wykonuje 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 field - polecenia , aby wybrać kolumny do wykluczenia z wyników. Usługa Kusto ma project-away operator, który wykonuje 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

Zobacz listę funkcji agregacji podsumowania , które są dostępne.

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 in Splunk ma znaczne ograniczenia. Podzapytywanie ma limit 10 000 wyników (ustawionych w pliku konfiguracji wdrożenia), a dostępna jest ograniczona liczba sprzężeń.

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 sortować w kolejności rosnącej, należy użyć operatora . Usługa Kusto obsługuje również definiowanie miejsca, w którym 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

Rozwijanie wielowartościowe

Operator rozwijania 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ść wybierania 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

Następne kroki