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.
Cari
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 |
Konten terkait
- Pelajari tutorial tentang Bahasa Kueri Kusto.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk