Splunk - Kusto hızlı başvuru kılavuzu

Bu makale, Splunk'a aşina olan kullanıcıların Kusto ile günlük sorguları yazma Kusto Sorgu Dili öğrenmesine yardımcı olmayı amaçlar. İkisi arasında temel farkları ve benzerlikleri vurgulamak için doğrudan karşılaştırmalar yapılır, böylece mevcut bilgilerinizi temel alabilirsiniz.

Yapı ve kavramlar

Aşağıdaki tabloda Splunk ile Kusto günlükleri arasındaki kavramlar ve veri yapıları karşılaştırmaktadır:

Konsept Splunk Kusto Yorum
dağıtım birimi cluster cluster Kusto, rastgele kümeler arası sorgulara izin verir. Splunk'un yok.
veri önbellekleri Kova önbelleğe alma ve saklama ilkeleri Verilerin süresini ve önbelleğe alma düzeyini denetler. Bu ayar sorguların performansını ve dağıtım maliyetini doğrudan etkiler.
verilerin mantıksal bölümü dizin database Verilerin mantıksal ayrımını sağlar. Her iki uygulama da birleşimlere ve bu bölümler arasında birleştirmeye olanak sağlar.
yapılandırılmış olay meta verileri Yok tablo Splunk, olay meta verileri kavramını arama diline sunmaz. Kusto günlükleri, sütunları olan bir tablo kavramına sahiptir. Her olay örneği bir satıra eşlenir.
kaydet event satır Yalnızca terminoloji değişikliği.
record özniteliği alan sütun Kusto'da bu ayar, tablo yapısının bir parçası olarak önceden tanımlanmıştır. Splunk'ta her olayın kendi alan kümesi vardır.
types Datatype Datatype Kusto veri türleri sütunlarda ayarlandığından daha açık olur. Her ikisi de JSON desteği dahil olmak üzere veri türleri ve kabaca eşdeğer veri türleri kümesiyle dinamik olarak çalışma özelliğine sahiptir.
sorgulama ve arama search query Kavramlar temel olarak Kusto ile Splunk arasında aynıdır.
olay alma süresi sistem süresi ingestion_time() Splunk'ta her olay, olayın dizine alındığı zamanın sistem zaman damgasını alır. Kusto'da, ingestion_time () işlevi aracılığıyla başvurulabilen bir sistem sütununu kullanıma sunan ingestion_time adlı bir ilke tanımlayabilirsiniz.

İşlevler

Aşağıdaki tablo Kusto'da Splunk işlevlerine eşdeğer işlevleri belirtir.

Splunk Kusto Yorum
strcat strcat() (1)
split split() (1)
if iff() (1)
tonumber todouble()
tolong()
toint()
(1)
upper
lower
toupper()
tolower()
(1)
replace replace_string()veya replace_strings()replace_regex() (1)
replace İşlevler her iki üründe de üç parametre alsa da, parametreler farklıdır.
substr substring() (1)
Splunk'un tek tabanlı dizinler kullandığını da unutmayın. Kusto sıfır tabanlı dizinleri not eder.
tolower tolower() (1)
toupper toupper() (1)
match matches regex (2)
regex matches regex Splunk'ta regex bir işleçtir. Kusto'da ilişkisel bir işleçtir.
searchmatch == Splunk'ta, searchmatch tam dizenin aranmasına izin verir.
random rand()
rand(n)
Splunk'un işlevi sıfır ile 231-1 arasında bir sayı döndürür. Kusto's, 0,0 ile 1,0 arasında veya parametre sağlanmışsa 0 ile n-1 arasında bir sayı döndürür.
now now() (1)
relative_time totimespan() (1)
Kusto'da Splunk'un eşdeğeri relative_time(datetimeVal, offsetVal) şeklindedir datetimeVal + totimespan(offsetVal).
Örneğin, olur search | extend myTime = now() - totimespan("1d")eval n=relative_time(now(), "-1d@d")... | .

(1) Splunk'ta işlev işleci kullanılarak çağrılır eval . Kusto'da veya projectöğesinin extend bir parçası olarak kullanılır.
(2) Splunk'ta işlev işleci kullanılarak çağrılır eval . Kusto'da işleciyle where birlikte kullanılabilir.

İşleçler

Aşağıdaki bölümlerde Splunk ve Kusto'da farklı işleçlerin nasıl kullanılacağına ilişkin örnekler verilmiştir.

Not

Aşağıdaki örneklerde Splunk alanı rule Kusto'daki bir tabloyla eşlenmiş ve Splunk'un varsayılan zaman damgası Logs Analytics sütunuyla eşlemektedir ingestion_time() .

Splunk'ta anahtar sözcüğünü search atlayabilir ve tırnak içinde olmayan bir dize belirtebilirsiniz. Kusto'da her sorguyu ile findbaşlatmanız gerekir, tırnak içine alınmamış dize bir sütun adıdır ve arama değeri tırnak içine alınmış bir dize olmalıdır.

Ürün İşleç Örnek
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)

Filtre

Kusto günlük sorguları, uygulanan tablosal bir sonuç kümesinden filter başlar. Splunk'ta filtreleme, geçerli dizindeki varsayılan işlemdir. Splunk'ta işlecini where de kullanabilirsiniz, ancak bunu önermeyiz.

Ürün İşleç Örnek
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)

İnceleme için n olay veya satır alma

Kusto günlük sorguları için diğer ad limitolarak da desteklenirtake. Splunk'ta, sonuçlar sıralıysa ilk headn sonucu döndürür. Kusto'da limit sıralı değildir, ancak bulunan ilk n satırı döndürür.

Ürün İşleç Örnek
Splunk head Event.Rule=330009.2
| head 100
Kusto limit Office_Hub_OHubBGTaskError
| limit 100

Alan veya sütuna göre sıralanmış ilk n olayı veya satırı alma

En alttaki sonuçlar için Splunk'ta kullanırsınız tail. Kusto'da kullanarak sıralama yönünü ascbelirtebilirsiniz.

Ürün İşleç Örnek
Splunk head Event.Rule="330009.2"
| sort Event.Sequence
| head 20
Kusto top Office_Hub_OHubBGTaskError
| top 20 by Event_Sequence

Sonuç kümesini yeni alan veya sütunlarla genişletme

Splunk'un bir eval işlevi vardır, ancak Kusto'daki işleçle eval karşılaştırılamaz. eval Hem Splunk'taki işleç hem extend de Kusto'daki işleç yalnızca skaler işlevleri ve aritmetik işleçleri destekler.

Ürün İşleç Örnek
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")

Rename

Kusto, bir alanı yeniden adlandırmak için işlecini kullanır project-rename . işlecinde project-rename sorgu, bir alan için önceden oluşturulmuş dizinlerden yararlanabilir. Splunk'un aynı işlemi üstlenen bir rename işleci vardır.

Ürün İşleç Örnek
Splunk rename Event.Rule=330009.2
| rename Date.Exception as execption
Kusto project-rename Office_Hub_OHubBGTaskError
| project-rename exception = Date_Exception

Sonuçları ve yansıtmayı biçimlendirme

Splunk, sonuçlara eklenecek sütunları seçmek için komutunu kullanır table . Kusto'nun aynı ve daha fazlasını kullanan bir project işleci vardır.

Ürün İşleç Örnek
Splunk table Event.Rule=330009.2
| table rule, state
Kusto project Office_Hub_OHubBGTaskError
| project exception, state

Splunk, sonuçların dışında tutulacak sütunları seçmek için komutunu kullanır field - . Kusto'nun aynı işlemi uygulayan bir project-away işleci vardır.

Ürün İşleç Örnek
Splunk fields - Event.Rule=330009.2
| fields - quota, hightest_seller
Kusto project-away Office_Hub_OHubBGTaskError
| project-away exception, state

Toplama

Kullanılabilir toplamaları özetleme işlevlerinin listesine bakın.

Splunk işleci Splunk örneği Kusto işleci Kusto örneği
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

Katılın

join Splunk'ta önemli sınırlamalar vardır. Alt sorgunun 10.000 sonuç sınırı vardır (dağıtım yapılandırma dosyasında ayarlanır) ve sınırlı sayıda birleştirme özelliği kullanılabilir.

Ürün İşleç Örnek
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

Sırala

Splunk'ta artan düzende sıralamak için işlecini reverse kullanmanız gerekir. Kusto ayrıca null değerlerin en başına veya sonuna yerleştirileceği yeri tanımlamayı da destekler.

Ürün İşleç Örnek
Splunk sort Event.Rule=120103
| sort Data.Hresult
| reverse
Kusto order by Office_Hub_OHubBGTaskError
| order by Data_Hresult, desc

Birden çok değerli genişletme

Çok değerli genişletme işleci hem Splunk hem de Kusto'da benzerdir.

Ürün İşleç Örnek
Splunk mvexpand mvexpand solutions
Kusto mv-expand mv-expand solutions

Sonuç modelleri, ilginç alanlar

Azure portal Log Analytics'te yalnızca ilk sütun gösterilir. Tüm sütunlar API aracılığıyla kullanılabilir.

Ürün İşleç Örnek
Splunk fields Event.Rule=330009.2
| fields App.Version, App.Platform
Kusto facets Office_Excel_BI_PivotTableCreate
| facet by App_Branch, App_Version

Yinelenenleri Kaldırma

Kusto'da, kaydın seçildiği sırayı ters çevirmek için kullanabilirsiniz summarize arg_min() .

Ürün İşleç Örnek
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