Lembar cepat Splunk ke Kusto

Artikel ini ditujukan untuk membantu pengguna yang terbiasa dengan Splunk mempelajari Bahasa Kueri Kusto untuk menulis kueri log dengan Kusto. Perbandingan langsung dibuat antara keduanya untuk menyoroti perbedaan dan kesamaan utama, sehingga Anda dapat membangun pengetahuan yang ada.

Struktur dan konsep

Tabel berikut membandingkan konsep dan struktur data antara log Splunk dan Kusto:

Konsep Splunk Kusto Komentar
unit penyebaran klaster klaster Kusto memungkinkan kueri lintas kluster arbitrer. Splunk tidak.
cache data wadah kebijakan caching dan retensi Mengontrol periode dan tingkat caching untuk data. Pengaturan ini secara langsung memengaruhi performa kueri dan biaya penyebaran.
partisi logis data indeks database Memungkinkan pemisahan logis data. Kedua implementasi ini memungkinkan union dan penggabungan di seluruh partisi ini.
metadata peristiwa terstruktur T/A tabel Splunk tidak mengekspos konsep metadata peristiwa ke bahasa pencarian. Log Kusto memiliki konsep tabel, yang memiliki kolom. Setiap instans peristiwa dipetakan ke baris.
rekaman kejadian baris Hanya perubahan terminologi.
atribut rekaman bidang kolom Di Kusto, pengaturan ini ditentukan sebagai bagian dari struktur tabel. Di Splunk, setiap peristiwa memiliki set bidangnya sendiri.
Jenis datatype datatype Jenis data Kusto lebih eksplisit karena diatur pada kolom. Keduanya memiliki kemampuan untuk bekerja secara dinamis dengan jenis data dan set datatype yang kira-kira setara, termasuk dukungan JSON.
kueri dan pencarian pencarian query Konsep pada dasarnya sama antara Kusto dan Splunk.
waktu penyerapan peristiwa waktu Sistem ingestion_time() Di Splunk, setiap peristiwa mendapat stempel waktu sistem saat peristiwa diindeks. Di Kusto, Anda dapat menentukan kebijakan yang disebut ingestion_time yang mengekspos kolom sistem yang dapat direferensikan melalui fungsi ingestion_time().

Fungsi

Tabel berikut menentukan fungsi dalam Kusto yang setara dengan fungsi Splunk.

Splunk Kusto Komentar
strcat strcat() (1)
split split() (1)
if iff() (1)
tonumber todouble()
tolong()
toint()
(1)
upper
lower
toupper()
tolower()
(1)
replace replace_string(), replace_strings() atau replace_regex() (1)
Meskipun replace fungsi mengambil tiga parameter di kedua produk, parameternya berbeda.
substr substring() (1)
Perhatikan juga bahwa Splunk menggunakan indeks berbasis satu. Kusto mencatat indeks berbasis nol.
tolower tolower() (1)
toupper toupper() (1)
match matches regex (2)
regex matches regex Di Splunk, regex adalah operator. Di Kusto, ini adalah operator relasi.
searchmatch == Di Splunk, searchmatch memungkinkan mencari string yang tepat.
random rand()
rand(n)
Fungsi Splunk mengembalikan angka antara nol hingga 231-1. Kusto mengembalikan angka antara 0,0 dan 1,0, atau jika parameter disediakan, antara 0 dan n-1.
now now() (1)
relative_time totimespan() (1)
Di Kusto, Splunk yang setara relative_time(datetimeVal, offsetVal) adalah datetimeVal + totimespan(offsetVal).
Misalnya, search | eval n=relative_time(now(), "-1d@d") menjadi ... | extend myTime = now() - totimespan("1d").

(1) Di Splunk, fungsi dipanggil dengan menggunakan operator eval. Dalam Kusto, itu digunakan sebagai bagian dari extend atau project.
(2) Di Splunk, fungsi dipanggil dengan menggunakan operator eval. Di Kusto, ini dapat digunakan dengan operator where.

Operator

Bagian berikut memberikan contoh cara menggunakan operator yang berbeda di Splunk dan Kusto.

Catatan

Dalam contoh berikut, bidang rule Splunk memetakan ke tabel di Kusto, dan peta stempel waktu default Splunk ke kolom ingestion_time() Logs Analytics.

Di Splunk, Anda dapat menghilangkan kata kunci search dan menentukan string yang tidak dikutip. Di Kusto, Anda harus memulai setiap kueri dengan find, string yang tidak dikutip adalah nama kolom, dan nilai lookup harus berupa string yang dikutip.

Produk Operator Contoh
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

Kueri log Kusto dimulai dari tataan hasil tabular tempat filter diterapkan. Di Splunk, pemfilteran adalah operasi default pada indeks saat ini. Anda juga dapat menggunakan operator where di Splunk, tetapi kami tidak merekomendasikannya.

Produk Operator Contoh
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)

Mendapatkan peristiwa atau baris n untuk inspeksi

Kueri log Kusto juga mendukung take sebagai alias ke limit. Di Splunk, jika hasilnya diurutkan, head mengembalikan hasil n pertama. Di Kusto, limit tidak diurutkan, tetapi mengembalikan baris n pertama yang ditemukan.

Produk Operator Contoh
Splunk head Event.Rule=330009.2
| head 100
Kusto limit Office_Hub_OHubBGTaskError
| limit 100

Mendapatkan peristiwa atau baris n pertama yang diurutkan berdasarkan bidang atau kolom

Untuk hasil bawah, di Splunk, Anda menggunakan tail. Di Kusto, Anda dapat menentukan arah pengurutan dengan menggunakan asc.

Produk Operator Contoh
Splunk head Event.Rule="330009.2"
| sort Event.Sequence
| head 20
Kusto top Office_Hub_OHubBGTaskError
| top 20 by Event_Sequence

Memperluas tataan hasil dengan bidang atau kolom baru

Splunk memiliki fungsi eval, tetapi tidak sebanding dengan operator eval di Kusto. Baik operator eval di Splunk dan operator extend di Kusto hanya mendukung fungsi bernilai skalar dan operator aritmetika.

Produk Operator Contoh
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")

Ganti nama

Kusto menggunakan operator project-rename untuk mengganti nama bidang. Di operator project-rename, kueri dapat memanfaatkan indeks apa pun yang dibangun sebelumnya untuk bidang. Splunk memiliki operator rename yang melakukan hal yang sama.

Produk Operator Contoh
Splunk rename Event.Rule=330009.2
| rename Date.Exception as execption
Kusto project-rename Office_Hub_OHubBGTaskError
| project-rename exception = Date_Exception

Memformat hasil dan proyeksi

Splunk menggunakan table perintah untuk memilih kolom mana yang akan disertakan dalam hasil. Kusto memiliki operator project yang melakukan hal yang sama dan lebih banyak.

Produk Operator Contoh
Splunk table Event.Rule=330009.2
| table rule, state
Kusto project Office_Hub_OHubBGTaskError
| project exception, state

Splunk menggunakan field - perintah untuk memilih kolom mana yang tidak akan disertakan dari hasil. Kusto memiliki operator project-away yang melakukan hal yang sama.

Produk Operator Contoh
Splunk fields - Event.Rule=330009.2
| fields - quota, hightest_seller
Kusto project-away Office_Hub_OHubBGTaskError
| project-away exception, state

Agregat

Lihat daftar fungsi agregasi ringkasan yang tersedia.

Operator Splunk Contoh Splunk Operator Kusto Contoh 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

Bergabung

join di Splunk memiliki batasan substansial. Subkueri memiliki batas 10.000 hasil (diatur dalam file konfigurasi penyebaran), dan sejumlah versi gabungan tersedia.

Produk Operator Contoh
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

Sort

Di Splunk, untuk mengurutkan dalam urutan menaik, Anda harus menggunakan operator reverse. Kusto juga mendukung mendefinisikan di mana menempatkan null, baik di awal atau di akhir.

Produk Operator Contoh
Splunk sort Event.Rule=120103
| sort Data.Hresult
| reverse
Kusto order by Office_Hub_OHubBGTaskError
| order by Data_Hresult, desc

Perluasan multinilai

Operator perluasan multinilai serupa di Splunk dan Kusto.

Produk Operator Contoh
Splunk mvexpand mvexpand solutions
Kusto mv-expand mv-expand solutions

Faset hasil, bidang yang menarik

Di Log Analytics di portal Azure, hanya kolom pertama yang diekspos. Semua kolom tersedia melalui API.

Produk Operator Contoh
Splunk fields Event.Rule=330009.2
| fields App.Version, App.Platform
Kusto facets Office_Excel_BI_PivotTableCreate
| facet by App_Branch, App_Version

Deduplikasi

Di Kusto, Anda dapat menggunakan summarize arg_min() untuk membalikkan urutan rekaman mana yang dipilih.

Produk Operator Contoh
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