Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł ma pomóc użytkownikom, którzy znają rozwiązanie Splunk, nauczyć się języka Kusto Query Language do pisania zapytań dzienników za pomocą usługi Kusto. Bezpośrednie porównania są wykonywane między nimi, aby wyróżnić kluczowe różnice i podobieństwa, dzięki czemu możesz opierać się na istniejącej wiedzy.
Struktura i pojęcia
W poniższej tabeli porównaliśmy pojęcia i struktury danych między dziennikami Splunk i Kusto:
| Concept | Splunk | Kusto | Comment |
|---|---|---|---|
| jednostka wdrożenia | klaster | klaster | Usługa Kusto umożliwia wykonywanie dowolnych zapytań między klastrami. Splunk tego nie robi. |
| pamięci podręczne danych | buckets | Zasady buforowania i przechowywania | Określa okres i poziom buforowania danych. To ustawienie ma bezpośredni wpływ na wydajność zapytań i koszt wdrożenia. |
| partycja logiczna danych | indeks | baza danych | Umożliwia logiczne rozdzielenie danych. Obie implementacje umożliwiają łączenie związków i łączenie w tych partycjach. |
| metadane zdarzeń strukturalnych | N/A | tabela | Funkcja Splunk nie ujawnia koncepcji metadanych zdarzeń w języku wyszukiwania. Dzienniki usługi Kusto wykorzystują koncept tabeli, która zawiera kolumny. Każde wystąpienie zdarzenia jest mapowane na wiersz. |
| rekord | wydarzenie | szereg | Tylko zmiana terminologii. |
| atrybut rekordu | pole | kolumna | W usłudze Kusto to ustawienie jest wstępnie zdefiniowane jako część struktury tabeli. W rozwiązaniu Splunk każde zdarzenie ma własny zestaw pól. |
| typy | Datatype | Datatype | Typy danych Kusto są bardziej określone, ponieważ są ustawiane na 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 | wyszukać | kwerenda | Pojęcia zasadniczo są takie same między Kusto i Splunk. |
| czas pozyskiwania zdarzeń | czas systemowy | ingestion_time() |
W narzędziu Splunk każde zdarzenie otrzymuje sygnaturę czasową systemu momentu indeksowania zdarzenia. W usłudze Kusto można zdefiniować zasady o nazwie ingestion_time, które uwidacznia kolumnę systemową, do której można odwoływać się za pomocą funkcji ingestion_time(). |
Functions
W poniższej tabeli określono funkcje w usłudze Kusto, które są równoważne funkcjom Splunk.
| Splunk | Kusto | Comment |
|---|---|---|
strcat |
strcat() |
(1) |
split |
split() |
(1) |
if |
iff() |
(1) |
tonumber |
todouble()tolong()toint() |
(1) |
upperlower |
toupper()tolower() |
(1) |
replace |
replace_string(), replace_strings() lub replace_regex() |
(1) Chociaż funkcje replace w obu produktach przyjmują trzy parametry, parametry są różne. |
substr |
substring() |
(1) Należy również zauważyć, że Splunk korzysta z indeksów zaczynających się od jednego. Zauważ, że Kusto używa indeksów zaczynających się od zera. |
tolower |
tolower() |
(1) |
toupper |
toupper() |
(1) |
match |
matches regex |
(2) |
regex |
matches regex |
Operatorem w Splunk jest regex. W platformie 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 odpowiednikiem relative_time(datetimeVal, offsetVal) w Splunk jest datetimeVal + totimespan(offsetVal).Na przykład search | eval n=relative_time(now(), "-1d@d") staje się .... | extend myTime = now() - totimespan("1d") |
W Splunku funkcja jest wywoływana przy użyciu operatora eval. W Kusto jest używany jako część extend lub project.
(2) W Splunk funkcja jest wywoływana przy użyciu operatora eval. W Kusto można używać go z operatorem where.
Operatorów
W poniższych sekcjach przedstawiono przykłady używania różnych operatorów w rozwiązaniach Splunk i Kusto.
Uwaga / Notatka
W poniższych przykładach pole rule Splunk mapuje na tabelę w usłudze Kusto, a domyślna sygnatura czasowa Splunk na kolumnę Logs Analytics ingestion_time().
Search
W narzędziu Splunk można pominąć nazwę słowa kluczowego i określić ciąg znaków bez cudzysłowów. W usłudze Kusto musisz rozpocząć każde zapytanie od ciągu find, nieoznakowany ciąg jest nazwą kolumny, a wartość wyszukiwania musi być ciągiem w cudzysłowie.
| Product | Operator | Example |
|---|---|---|
| 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
Zapytania dziennika 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 także użyć operatora where w Splunku, ale nie zalecamy tego.
| Product | Operator | Example |
|---|---|---|
| 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 na potrzeby inspekcji
Zapytania dzienników Kusto obsługują take jako alias dla limit. W narzędziu Splunk, jeśli wyniki są uporządkowane, head zwraca pierwsze n wyników. W Kusto limit nie jest uporządkowane, ale zwraca pierwsze n znalezionych wierszy.
| Product | Operator | Example |
|---|---|---|
| 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.
| Product | Operator | Example |
|---|---|---|
| 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 Kusto. Zarówno operator eval w Splunk, jak i operator extend w Kusto obsługują tylko funkcje skalarne i operatory arytmetyczne.
| Product | Operator | Example |
|---|---|---|
| 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ę
Kusto używa operatora project-rename 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 operator rename, który robi to samo.
| Product | Operator | Example |
|---|---|---|
| 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
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.
| Product | Operator | Example |
|---|---|---|
| Splunk | table |
Event.Rule=330009.2| table rule, state |
| Kusto | project |
Office_Hub_OHubBGTaskError| project exception, state |
Splunk używa polecenia fields -, aby wybrać kolumny do wykluczenia z wyników. Usługa Kusto ma operator project-away, który wykonuje to samo.
| Product | Operator | Example |
|---|---|---|
| Splunk | fields - |
Event.Rule=330009.2| fields - quota, hightest_seller |
| Kusto | project-away |
Office_Hub_OHubBGTaskError| project-away exception, state |
Aggregation
Zobacz listę funkcji podsumowania agregacji , 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łączyć
join w narzędziu Splunk ma znaczne ograniczenia. Podzapytanie ma limit 10 000 wyników (ustawiony w pliku konfiguracyjnym wdrożenia), a dostępna jest ograniczona liczba rodzajów sprzężeń.
| Product | Operator | Example |
|---|---|---|
| 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 |
Sortuj
Domyślna kolejność sortowania jest rosnąca. Aby określić kolejność malejącą, dodaj znak minus (-) przed nazwą pola. Usługa Kusto obsługuje również definiowanie, czy wartości null mają być umieszczane na początku, czy na końcu.
| Product | Operator | Example |
|---|---|---|
| Splunk | sort |
Event.Rule=120103| sort -Data.Hresult |
| Kusto | order by |
Office_Hub_OHubBGTaskError| order by Data_Hresult, desc |
Rozszerz wartości wielokrotne
Operator rozwijania wielowartościowego jest podobny w Splunk i Kusto.
| Product | Operator | Example |
|---|---|---|
| Splunk | mvexpand |
mvexpand solutions |
| Kusto | mv-expand |
mv-expand solutions |
Aspekty wyników, interesujące pola
W usłudze Log Analytics w witrynie Azure Portal uwidoczniona jest tylko pierwsza kolumna. Wszystkie kolumny są dostępne za pośrednictwem interfejsu API.
| Product | Operator | Example |
|---|---|---|
| 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.
| Product | Operator | Example |
|---|---|---|
| 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 |
Schemat czasu
Narzędzia Kusto i Splunk używają timechart operatora do wizualizowania danych z biegiem czasu. W narzędziu Splunk dane są agregowane w określonych przedziałach czasowych i mogą być używane z różnymi funkcjami statystycznymi. W Kusto odpowiednik jest osiągany przy użyciu funkcji summarize i bin, a następnie operatora utwórz wykres czasowy.
| Product | Operator | Example |
|---|---|---|
| Splunk | timechart |
index=StormEvents | where StartTime >= "2007-01-01" AND StartTime <= "2007-12-31" AND DamageCrops > 0 | bin span=7d StartTime | stats count as EventCount by StartTime | timechart span=7d count as EventCount |
| Kusto | timechart |
StormEvents | where StartTime between (datetime(2007-01-01) .. datetime(2007-12-31)) and DamageCrops > 0 | summarize EventCount = count() by bin(StartTime, 7d) | render timechart |
Treści powiązane
- Zapoznaj się z samouczkiem dotyczącym języka zapytań Kusto.