All Products
Search
Document Center

Simple Log Service:Sintaksis dan fungsi pencarian

Last Updated:May 31, 2026

Simple Log Service memungkinkan Anda menjalankan pernyataan pencarian untuk memfilter log. Hasil pencarian dapat digunakan secara mandiri atau sebagai input ke pernyataan analitik guna analisis yang lebih kompleks.

Prasyarat

Untuk mengkueri log, Anda harus membuat indeks.

Sintaksis dasar

Catatan

Pernyataan kueri dan pernyataan analitik dipisahkan oleh | dalam format pernyataan kueri|pernyataan analitik. Berikut ini contohnya:

* | SELECT status, count(*) AS PV GROUP BY status

Jenis pernyataan

Deskripsi

pernyataan pencarian

Menentukan kondisi pencarian. Kondisi dapat berupa kata kunci, nilai numerik, rentang numerik, spasi, atau tanda bintang (*).

Jika Anda menentukan spasi atau tanda bintang (*), tidak ada filter yang diterapkan.

Penting

Tentukan tidak lebih dari 30 kondisi dalam satu pernyataan pencarian.

pernyataan analitik

Penting

Anda harus menggunakan pernyataan analitik bersama pernyataan pencarian. Anda tidak perlu menentukan klausa FROM atau WHERE dalam pernyataan analitik karena layanan secara default menganalisis semua data di Logstore saat ini. Pernyataan analitik tidak membedakan huruf besar/kecil, tidak mendukung offset, dan tidak memerlukan titik koma (;) di akhir.

Menjalankan perhitungan dan analisis statistik pada hasil pencarian atau seluruh data. SLS mendukung fungsi dan sintaksis analitik berikut:

Menulis kueri pencarian

Untuk menulis pernyataan kueri:

Langkah 1: Pilih jenis pencarian

Penting

Hasil kueri dan analisis bergantung pada konfigurasi indeks Anda. Jika Anda membuat indeks teks penuh dan indeks bidang sekaligus, indeks bidang akan memiliki prioritas lebih tinggi.

Berdasarkan jenis indeks, Simple Log Service mendukung dua jenis pencarian untuk Logstore: pencarian teks penuh dan pencarian berdasarkan bidang. Perbedaan keduanya dijelaskan sebagai berikut:

  • Jika Anda hanya membuat indeks teks penuh, Anda harus menggunakan pencarian teks penuh.

  • Jika Anda membuat indeks bidang, ikuti aturan berikut:

    • Untuk bidang bertipe double atau long, Anda harus menggunakan sintaksis pencarian berdasarkan bidang.

    • Untuk bidang bertipe text: Jika Anda mengetahui bidang terindeks mana yang berisi kata kunci tersebut, gunakan sintaksis pencarian berdasarkan bidang. Jika tidak yakin bidang mana yang berisi kata kunci tersebut, gunakan sintaksis pencarian teks penuh.

      • Jika Anda tidak membuat indeks teks penuh, sintaksis pencarian teks penuh hanya mengkueri bidang teks yang terindeks.

      • Jika Anda membuat indeks teks penuh, sintaksis pencarian teks penuh mencari semua bidang teks yang terindeks.

Pencarian teks penuh

Pencarian teks penuh tidak menargetkan bidang tertentu dan mendukung karakter wildcard (seperti * dan ?) serta operator logika (seperti and, or, dan not).

Sintaksis pencarian
 kata_kunci1  [ and | or | not ] kata_kunci2  ...

Contoh

  • Contoh 1

    Cari log yang berisi kata kunci GET. Sintaksis pencarian: GET.

  • Contoh 2

    Cari log yang berisi kata kunci GET atau POST. Sintaksis pencarian: GET or POST.

  • Contoh 3

    Cari log dengan kata kunci yang diawali Jo, seperti Joe dan Jon. Sintaksis pencarian: Jo*.

Pencarian berdasarkan bidang

Pencarian berdasarkan bidang menargetkan bidang terindeks tertentu dan mendukung operasi bertipe, seperti perbandingan numerik dan pencocokan ekspresi reguler.

Penting
  • indexname1 adalah nama bidang yang akan dikueri. Jika nama bidang atau pengidentifikasi lain berisi karakter khusus (seperti spasi atau karakter Tionghoa) atau merupakan kata kunci pencarian (seperti and atau or), Anda harus mengapitnya dengan tanda kutip ganda (""). Untuk informasi lebih lanjut, lihat Cara menggunakan tanda kutip dalam pernyataan pencarian dan analitik.

  • Untuk bidang yang diindeks sebagai long atau double, gunakan operator perbandingan seperti >, >=, <, <=, =, dan in.

Sintaksis pencarian

indexname1 [ : | > | >= | < | <= | = | in ] keyword1 [ [ and | or | not ] indexname2 ... ]

Contoh

  • Contoh 1

    Cari log di mana request_method adalah GET. Sintaksis pencarian: request_method: GET.

  • Contoh 2

    Cari log di mana request_time_msec lebih besar dari 50 (bidang harus diindeks sebagai double). Sintaksis pencarian: request_time_msec>50.

  • Contoh 3

    Cari log di mana request_method adalah GET dan request_time_msec lebih besar dari 50. Sintaksis pencarian: request_method: GET and request_time_msec>50.

Langkah 2: Tipe data bidang

Saat menulis pernyataan pencarian, pertimbangkan karakteristik setiap tipe data bidang dan gunakan operator yang tepat untuk menemukan log secara efisien dan akurat.

Tipe data bidang

Tipe

Deskripsi

Operator yang didukung

text

Mewakili bidang string. Setelah Anda mengaktifkan pengindeksan teks penuh, SLS secara default mengatur tipe data semua bidang dalam log menjadi text, kecuali bidang __time__.

and, or, not, (), :, "", \, *, dan ?.

long dan double

Untuk mengkueri bidang berdasarkan rentang numerik, tipe datanya harus long atau double.

  • Jika tipe data bidang tidak diatur sebagai double atau long, atau jika rentang numerik berisi kesalahan sintaksis, SLS melakukan pencarian teks penuh, yang mungkin menghasilkan hasil yang tidak terduga.

    Sebagai contoh, jika bidang owner_id bukan bertipe double atau long, pernyataan pencarian owner_id>100 mengembalikan log yang berisi ketiga istilah berikut: owner_id, > (diperlakukan sebagai istilah, bukan pembatas), dan 100.

  • Jika Anda mengubah tipe data bidang dari text menjadi double atau long, hanya pencarian kesetaraan dengan operator = yang didukung. Untuk menggunakan operator rentang seperti lebih-dari (>) dan kurang-dari (<), Anda harus melakukan pengindeksan ulang.

and, or, not, (), >, >=, <, <=, =, dan in.

JSON

Untuk bidang dalam objek JSON, Anda dapat mengatur tipe datanya menjadi long, double, atau Enable Analytics berdasarkan nilainya dan mengaktifkan Enable Analytics.

Gunakan operator berdasarkan tipe data bidang dalam objek JSON tersebut.

Operator

Penting
  • Operator in harus ditulis dalam huruf kecil. Operator lain tidak membedakan huruf besar/kecil.

  • SLS menyimpan kata-kata berikut untuk digunakan sebagai operator. Untuk menggunakannya sebagai kata kunci pencarian, Anda harus mengapitnya dengan tanda kutip ganda (""): sort, asc, desc, group by, avg, sum, min, max, dan limit.

  • Operator disusun berdasarkan urutan prioritas menurun:

    1. Tanda titik dua (:)

    2. Tanda kutip ganda ("")

    3. Tanda kurung ()

    4. and, not

    5. or

Operator

Deskripsi

:

Digunakan untuk pencarian berdasarkan bidang dalam format Key:Value. Contoh: request_method:GET.

Jika nama bidang atau nilai berisi karakter khusus seperti spasi, tanda titik dua (:), atau tanda hubung (-), Anda harus mengapit nama atau nilai tersebut dengan tanda kutip ganda (""). Contoh: "file info":apsara.

and

Operator and. Contoh: request_method:GET and status:200.

Jika Anda menentukan beberapa kata kunci tanpa operator logika, operator and digunakan secara default. Misalnya, GET 200 cn-shanghai setara dengan GET and 200 and cn-shanghai.

or

Operator or. Contoh: request_method:GET or status:200.

not

Operator not. Contoh: request_method:GET not status:200 dan not status:200.

( )

Meningkatkan prioritas kondisi pencarian di dalam tanda kurung. Contoh: (request_method:GET or request_method:POST) and status:200.

""

Anda dapat mengapit kata kunci sintaksis dengan "" (tanda kutip ganda) untuk mengubahnya menjadi karakter biasa. Dalam kueri bidang, semua kata yang diapit dengan "" diperlakukan sebagai satu frasa.

  • Jika nama bidang atau nilai berisi karakter khusus (seperti spasi, karakter Tionghoa, :, atau -) atau kata kunci sintaksis (seperti and atau or), Anda harus mengapitnya dengan "". Misalnya, pencarian untuk "and" menemukan log yang berisi kata "and", yang tidak diperlakukan sebagai operator.

  • SLS menyimpan kata-kata berikut untuk digunakan sebagai operator. Untuk menggunakannya sebagai kata kunci pencarian, Anda harus mengapitnya dengan "": sort, asc, desc, group by, avg, sum, min, max, dan limit.

  • Ketika log diproses oleh transformasi data atau plug-in Logtail, kunci tag diubah menjadi kunci standar. Untuk mengkueri kunci ini, Anda harus mengapit nama bidang dengan "". Contoh: "__tag__:__client_ip__":192.0.2.1. Bidang __tag__:__client_ip__ adalah bidang ter-reserve di SLS yang menunjukkan alamat IP host pengumpul log. Untuk informasi lebih lanjut, lihat bidang ter-reserve.

\

Ini adalah karakter escape. Karakter ini meng-escape tanda kutip ganda ("") sehingga Anda dapat mencarinya sebagai karakter literal. Misalnya, jika log berisi instance_id:nginx"01", Anda dapat mencarinya dengan pernyataan instance_id:nginx\"01\".

*

Karakter wildcard yang cocok dengan nol atau lebih karakter. Contoh: host:www*com.

Catatan

SLS menemukan hingga 100 istilah yang cocok dari log Anda, lalu mengembalikan semua log yang berisi istilah-istilah tersebut dan memenuhi kondisi pencarian.

?

Karakter wildcard yang cocok dengan satu karakter. Contoh: host:aliyund?c.

>

Mencari log di mana nilai bidang lebih besar dari angka yang ditentukan. Contoh: request_time>100.

>=

Mencari log di mana nilai bidang lebih besar dari atau sama dengan angka yang ditentukan. Contoh: request_time>=100.

<

Mencari log di mana nilai bidang kurang dari angka yang ditentukan. Contoh: request_time<100.

<=

Mencari log di mana nilai bidang kurang dari atau sama dengan angka yang ditentukan. Contoh: request_time<=100.

=

Mencari log di mana nilai bidang sama dengan angka yang ditentukan. Untuk bidang bertipe double atau long, operator = dan : setara. Misalnya, request_time=100 setara dengan request_time:100.

in

Mencari log di mana nilai bidang berada dalam rentang numerik yang ditentukan. Tanda kurung siku [] menunjukkan interval tertutup (inklusif), sedangkan tanda kurung () menunjukkan interval terbuka (eksklusif). Gunakan spasi untuk memisahkan dua angka dalam rentang. Contoh: request_time in [100 200] atau request_time in (100 200].

Penting

Operator in harus ditulis dalam huruf kecil.

__source__

Mencari log dari sumber log tertentu. Karakter wildcard didukung. Contoh: __source__:192.0.2.*.

Penting

Di Log Service, __source__ adalah bidang ter-reserve yang dapat disingkat menjadi source. Jika Anda mendefinisikan bidang kustom bernama source, bidang tersebut bertentangan dengan bidang ter-reserve source. Dalam kasus ini, Anda harus menggunakan kapitalisasi berbeda, seperti Source atau SOURCE, untuk mengkueri bidang kustom Anda.

__tag__

Mencari log menggunakan metadata. Contoh: __tag__:__receive_time__:1609837139.

__topic__

Mencari log dalam topik log tertentu. Contoh: __topic__:nginx_access_log.

Langkah 3: Pilih mode pencocokan

Pilih antara pencarian tepat dan pencarian fuzzy berdasarkan kata kunci dan kebutuhan bisnis Anda.

Jenis pencarian

Deskripsi

Contoh

Pencarian tepat

Menemukan log yang cocok dengan kata utuh.

SLS menggunakan segmentasi kata untuk memproses kueri. Artinya, pencarian frasa multi-kata mungkin tidak mengembalikan kecocokan tepat. Misalnya, kueri untuk abc def mengembalikan log yang berisi istilah abc dan istilah def, tetapi tidak harus sebagai frasa berurutan. Untuk menemukan kecocokan tepat untuk frasa abc def, gunakan pencarian frasa atau klausa LIKE. Untuk informasi lebih lanjut, lihat Pencarian frasa dan Bagaimana cara mengkueri log menggunakan pencocokan tepat?

  • host:example.com: Menemukan log di mana bidang host berisi example.com.

  • PUT and cn-shanghai: Menemukan log yang berisi kata kunci PUT dan cn-shanghai.

  • * | Select * where http_user_agent like '%like Gecko%': Menemukan log di mana nilai bidang http_user_agent berisi frasa like Gecko.

  • #"redo_index/1": Menemukan log yang berisi frasa redo_index/1.

Pencarian fuzzy

Untuk melakukan pencarian fuzzy, tambahkan karakter wildcard, baik tanda bintang (*) atau tanda tanya (?), di tengah atau akhir istilah pencarian. Istilah tersebut tidak boleh melebihi 64 karakter. SLS kemudian menemukan hingga 100 kata yang cocok dan mengembalikan semua log yang memuatnya. Semakin spesifik istilah Anda, semakin akurat hasilnya.

Penting
  • Jangan gunakan karakter wildcard, seperti tanda bintang (*) atau tanda tanya (?), di awal istilah pencarian.

  • Pencarian fuzzy menggunakan wildcard (* atau ?) tidak didukung pada bidang bertipe long atau double. Sebagai gantinya, Anda dapat mencari rentang nilai, seperti status in [200 299].

Pencarian fuzzy adalah jenis kueri sampel yang bekerja sebagai berikut:

  • Ketika pengindeksan bidang diaktifkan dan Anda mengkueri bidang tertentu, SLS mengambil sampel data dari indeks bidang tersebut alih-alih melakukan pemindaian penuh. Pengambilan sampel ini mengembalikan subset hasil yang representatif.

  • Ketika pengindeksan teks penuh diaktifkan dan Anda tidak menentukan bidang, SLS mengambil sampel data dari indeks teks penuh. Pengambilan sampel ini mengembalikan subset hasil yang representatif.

  • request_time>60 and request_method:Ge*: Menemukan log di mana nilai bidang request_time lebih besar dari 60 dan nilai bidang request_method dimulai dengan Ge.

  • addr*: Menemukan log yang berisi salah satu dari hingga 100 istilah yang dimulai dengan addr.

  • host:www.yl* mencari semua log untuk 100 istilah dari nilai bidang host yang dimulai dengan www.yl, dan mengembalikan log yang berisi istilah-istilah tersebut.

Untuk informasi lebih lanjut, lihat Bagaimana cara melakukan kueri fuzzy pada log?

Contoh pernyataan pencarian

Pernyataan pencarian menghasilkan hasil berbeda tergantung pada konten log dan konfigurasi indeks. Contoh dalam topik ini didasarkan pada log sampel dan konfigurasi indeks berikut.

Tipe text, double, dan long

Log sampel

Topik ini menunjukkan pernyataan pencarian umum dengan menggunakan log akses NGINX.

日志样例

Konfigurasi indeks

Anda harus membuat indeks sebelum dapat mengkueri log. Untuk memeriksa konfigurasi indeks Anda, lakukan langkah-langkah berikut:

  1. Di halaman query and analysis logstore, pilih Index Attributes > Attributes.image

  2. Di panel yang muncul, periksa apakah indeks bidang telah dikonfigurasi.索引

Pencarian umum

Tujuan

Pernyataan pencarian

Debugging

Cari permintaan GET yang berhasil (kode status 200–299).

request_method:GET and status in [200 299]

Debugging

Cari permintaan GET dari luar wilayah Tiongkok (Hangzhou).

request_method:GET not region:cn-hangzhou

Tidak ada

Cari permintaan GET atau POST.

request_method:GET or request_method:POST

Debugging

Cari permintaan non-GET.

not request_method:GET

Debugging

Cari permintaan GET atau POST yang berhasil.

(request_method:GET or request_method:POST) and status in [200 299]

Debugging

Cari permintaan GET atau POST yang gagal.

(request_method:GET or request_method:POST) not status in [200 299]

Debugging

Cari permintaan GET yang berhasil (kode status 200–299) dengan waktu permintaan kurang dari 60 detik.

request_method:GET and status in [200 299] not request_time>=60

Debugging

Cari log dengan waktu permintaan 60 detik.

request_time:60

Debugging

request_time=60

Debugging

Cari log di mana waktu permintaan lebih besar dari atau sama dengan 60 detik dan kurang dari 200 detik.

request_time>=60 and request_time<200

Debugging

request_time in [60 200)

Debugging

Cari log di mana bidang request_time ada.

request_time:*

Debugging

Cari log di mana bidang request_time kosong atau berisi angka yang tidak valid.

(request_time:"") or (not request_time > -10000000000)

Debugging

Cari log yang berisi bidang request_time dengan nilai numerik.

request_time > -1000000000

Debugging

Cari log yang berisi and.

"and"
Catatan

Kata and diperlakukan sebagai string literal, bukan operator.

Debugging

Cari log di mana nilai bidang request method adalah PUT.

"request method":PUT
Penting

Nama bidang request method berisi spasi. Anda harus mengapitnya dengan tanda kutip ganda ("").

Tidak ada

Cari log yang topiknya HTTPS atau HTTP.

__topic__:HTTPS or __topic__:HTTP

Tidak ada

Cari log dari host 192.0.2.1.

__tag__:__client_ip__:192.0.2.1

Bidang __tag__:__client_ip__ adalah bidang ter-reserve di Log Service yang menunjukkan alamat IP host yang mengumpulkan log. Untuk informasi lebih lanjut, lihat Bidang ter-reserve.

Penting

Jika log diproses menggunakan transformasi data atau plug-in Logtail, kunci dalam tag diubah menjadi kunci biasa. Untuk mengkueri log tersebut, Anda harus mengapit nama bidang dengan tanda kutip ganda (""). Contoh: "__tag__:__client_ip__":192.0.2.1.

Tidak ada

Cari log yang berisi 192.168.XX.XX.

* | select * from log where key like '192.168.%.%'

Untuk informasi lebih lanjut, lihat Gunakan klausa SQL LIKE untuk kueri fuzzy yang tepat.

Tidak ada

Cari log di mana nilai bidang remote_user tidak kosong.

not remote_user:""

Debugging

Cari log di mana nilai bidang remote_user kosong.

remote_user:""

Debugging

Cari log di mana nilai bidang remote_user bukan null.

not remote_user:"null"

Debugging

Cari log yang tidak berisi bidang remote_user.

not remote_user:*

Debugging

Cari log yang berisi bidang remote_user.

remote_user:*

Debugging

Cari log di mana nilai bidang city bukan Shanghai.

not city:Shanghai
Catatan

Untuk mengkueri string Tionghoa, Anda harus mengaktifkan include Chinese saat mengonfigurasi indeks. Untuk informasi lebih lanjut, lihat Buat indeks.

Tidak ada

Pencarian fuzzy

Tujuan

Pernyataan pencarian

Debugging

Cari log yang berisi kata yang dimulai dengan cn.

cn*

Debugging

Cari log di mana nilai bidang region dimulai dengan cn.

region:cn*

Tidak ada

Cari log di mana nilai bidang region berisi cn*.

region:"cn*"
Catatan

Dalam pernyataan pencarian ini, cn* diperlakukan sebagai string literal. Misalnya:

  • Jika log berisi region:cn*,en dan pembatasnya adalah koma (,), kontennya dibagi menjadi region, cn*, dan en. Log ini dapat ditemukan dengan menggunakan pernyataan pencarian.

  • Jika log berisi region:cn*hangzhou, cn*hangzhou diperlakukan sebagai satu istilah. Anda tidak dapat menemukan log ini dengan menggunakan pernyataan pencarian.

Tidak ada

Cari log yang berisi kata yang dimulai dengan "mozi", diakhiri dengan "la", dan memiliki satu karakter di antaranya.

mozi?la

Debugging

Cari log yang berisi kata yang dimulai dengan "mo", diakhiri dengan "la", dan memiliki nol atau lebih karakter di antaranya.

mo*la

Debugging

Cari log yang berisi kata yang dimulai dengan "moz" dan kata yang dimulai dengan "sa".

moz* and sa*

Debugging

Cari log di mana nilai bidang region diakhiri dengan "hai".

Anda tidak dapat menemukan log ini dengan pernyataan pencarian. Sebagai gantinya, gunakan klausa LIKE dalam analisis SQL Anda. Untuk informasi lebih lanjut, lihat Gunakan klausa SQL LIKE untuk kueri fuzzy yang tepat.

*| select * from log where region like '%hai'

Tidak ada

Cari log di mana nilai bidang message dimulai dengan "get_time: 0..

Gunakan klausa like dalam analisis SQL.

*| select message where message like '"get_time: 0.%'

Atau, gunakan instruksi where dalam Structured Process Language (SPL) untuk memfilter log.

*| where message like '"get_time: 0.%'

Tidak ada

Pencarian berdasarkan pembatas

Log Service membagi konten log menjadi kata-kata menggunakan pembatas yang ditentukan. Pembatas default adalah , '";=()[]{}?@&<>/:\n\t\r. Jika Anda mengosongkan pengaturan Delimiter, nilai bidang diperlakukan sebagai satu istilah. Anda hanya dapat menemukan istilah ini dengan menggunakan pencarian tepat atau fuzzy pada seluruh string. Untuk informasi lebih lanjut tentang cara mengatur pembatas, lihat Buat indeks.

Sebagai contoh, nilai bidang http_user_agent adalah Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/192.0.2.0 Safari/537.2.

  • Jika Anda mengatur delimiter ke nilai kosong, nilai bidang diperlakukan sebagai satu token. Akibatnya, Anda tidak dapat menemukan log dengan menggunakan pernyataan kueri http_user_agent:Chrome.

  • Jika Anda mengatur Delimiter ke , '";=()[]{}?@&<>/:\n\t\r, nilai bidang dibagi menjadi istilah-istilah Mozilla, 5.0, Windows, NT, 6.1, AppleWebKit, 537.2, KHTML, like, Gecko, Chrome, 192.0.2.0, Safari, dan 537.2. Anda dapat menemukan log dengan menggunakan pernyataan pencarian seperti http_user_agent:Chrome.

Penting

Jika kata kunci pencarian berisi pembatas, Anda harus menggunakan pencarian frasa atau klausa LIKE. Misalnya:

  • Pencarian frasa: #"redo_index/1". Untuk informasi lebih lanjut, lihat Pencarian frasa.

  • Klausa LIKE: * | select * from log where key like 'redo_index/1'.

Tujuan

Pernyataan pencarian

Debugging

Cari log di mana nilai bidang http_user_agent berisi Chrome.

http_user_agent:Chrome

Debugging

Cari log di mana nilai bidang http_user_agent berisi Linux dan Chrome.

http_user_agent:Linux and http_user_agent:Chrome

Debugging

http_user_agent:"Linux Chrome"

Debugging

Cari log di mana nilai bidang http_user_agent berisi Firefox atau Chrome.

http_user_agent:Firefox or http_user_agent:Chrome

Debugging

Cari log di mana nilai bidang request_uri berisi /request/path-2.

request_uri:/request/path-2

Debugging

Cari log di mana nilai bidang request_uri dimulai dengan /request tetapi tidak berisi /file-0.

request_uri:/request* not request_uri:/file-0

Debugging

Temukan kecocokan tepat untuk log yang berisi frasa redo_index/1.

  • #"redo_index/1"

  • * | select * from log where key like 'redo_index/1'

Catatan

Pencarian frasa atau klausa LIKE dapat memberikan kecocokan tepat untuk frasa. Pencarian tepat standar mencocokkan istilah individual seperti redo_index dan 1.

Tidak ada

Escape kata kunci

  • Dalam pernyataan pencarian

    Anda dapat mengapit kata kunci sintaksis dengan "" (tanda kutip ganda) untuk mengubahnya menjadi karakter biasa. Dalam kueri bidang, semua kata yang diapit dengan "" diperlakukan sebagai satu frasa.

    • Jika nama bidang atau nilai berisi karakter khusus (seperti spasi, karakter Tionghoa, :, atau -) atau kata kunci sintaksis (seperti and atau or), Anda harus mengapitnya dengan "". Misalnya, pencarian untuk "and" menemukan log yang berisi kata "and", yang tidak diperlakukan sebagai operator.

    • SLS menyimpan kata-kata berikut untuk digunakan sebagai operator. Untuk menggunakannya sebagai kata kunci pencarian, Anda harus mengapitnya dengan "": sort, asc, desc, group by, avg, sum, min, max, dan limit.

    • Ketika log diproses oleh transformasi data atau plug-in Logtail, kunci tag diubah menjadi kunci standar. Untuk mengkueri kunci ini, Anda harus mengapit nama bidang dengan "". Contoh: "__tag__:__client_ip__":192.0.2.1. Bidang __tag__:__client_ip__ adalah bidang ter-reserve di SLS yang menunjukkan alamat IP host pengumpul log. Untuk informasi lebih lanjut, lihat bidang ter-reserve.

    Tujuan

    Pernyataan pencarian

    Cari log di mana nilai bidang request method adalah PUT. Nama bidang request method berisi spasi dan harus diapit dengan tanda kutip ganda ("").

    "request method":PUT

    Cari log di mana nilai bidang system error description berisi DB. Nama bidang system error description berisi spasi.

    "system error description":DB*

    Kueri ini menemukan log di mana nilai bidang region berisi cn*. Di sini, cn* adalah string. Jika konten log adalah region:cn*,en dan pembatasnya adalah koma (,), konten log dibagi menjadi region, cn*, dan en. Anda kemudian dapat menggunakan pernyataan di sebelah kanan untuk menemukan log ini.

    region:"cn*"

    Cari log di mana nilai bidang remote_user kosong.

    remote_user:""

    Cari log di mana nilai bidang Authorization adalah Bearer 12345. Nilai bidang Bearer 12345 berisi spasi.

    "Authorization": "Bearer 12345"

    Analisis log di mana nilai bidang errorContent berisi The body is not valid json string. Nilai bidang berisi spasi.

    * | select * where errorContent like '%The body is not valid json string%'

    Cari log yang dikumpulkan dari host 192.0.2.1.

    "__tag__:__client_ip__":192.0.2.1
  • Dalam pernyataan analitik

    • Jika kata benda yang tepat, seperti nama bidang atau nama tabel, berisi karakter khusus (seperti spasi, karakter Tionghoa, :, atau -) atau kata kunci sintaksis (seperti and atau or), Anda harus mengapitnya dengan tanda kutip ganda ("").

    • Karakter yang merepresentasikan string harus diapit dengan tanda kutip tunggal (''). Karakter yang tidak diapit tanda kutip atau diapit tanda kutip ganda ("") merepresentasikan nama bidang atau nama kolom. Misalnya, 'status' merepresentasikan string "status", sedangkan status atau "status" merepresentasikan bidang log status.

    Tujuan

    Pernyataan analitik

    Cari log yang berisi 192.168.XX.XX.

    * | select * from log where key like '192.168.%.%'

    Hitung 10 waktu permintaan teratas.

    Nama kolom top 10 berisi spasi dan harus diapit dengan tanda kutip ganda ("").

    * | SELECT max(request_time,10) AS "top 10"

    Hitung jumlah log untuk setiap status permintaan.

    Bidang content diindeks sebagai tipe JSON. Untuk informasi lebih lanjut, lihat Cara mengkueri dan menganalisis bidang JSON terindeks.

    * | SELECT "content.status", COUNT(*) AS PV GROUP BY "content.status"

Tipe Json

Log sampel

{
  "timestamp": "2025-03-21T14:35:18Z",
  "level": "ERROR",
  "service": {
    "name": "payment-processor",
    "version": "v2.8.1",
    "environment": "production"
  },
  "error": {
    "code": 5031,
    "message": "Failed to connect to third-party API",
    "details": {
      "endpoint": "https://api.paymentgateway.com/v3/verify",
      "attempts": 3,
      "last_response": {
        "status_code": 504,
        "headers": {
          "Content-Type": "application/json",
          "X-RateLimit-Limit": "100"
        }
      }
    }
  },
  "user": {
    "id": "usr-9a2b3c4d",
    "session": {
      "id": "sess-zxy987",
      "device": {
        "type": "mobile",
        "os": "Android 14",
        "network": "4G"
      }
    }
  },
  "trace": {
    "correlation_id": "corr-6f5e4d3c",
    "span_id": "span-00a1b2"
  }
}

Konfigurasi indeks

Anda harus membuat indeks sebelum dapat mengkueri log. Untuk memeriksa konfigurasi indeks Anda, lakukan langkah-langkah berikut:

  1. Di halaman query and analysis logstore, pilih Index Attributes > Attributes.image

  2. Di panel yang muncul, periksa apakah indeks bidang telah dikonfigurasi.

    image

Contoh

Tujuan

Pernyataan pencarian

Cari log yang mencatat kesalahan permintaan.

level:error

Cari semua permintaan dari pengguna dengan ID usr-9a2b3c4d.

user.id:usr-9a2b3c4d

Cari log dari pengguna usr-9a2b3c4d dengan kode status kesalahan 504.

user.id:usr-9a2b3c4d and error.details.last_response.status_code :504

FAQ

Kueri tidak mengembalikan log

Apa yang harus dilakukan jika kueri tidak mengembalikan log

Masalah log JSON

FAQ tentang mengkueri dan menganalisis log JSON

Penyelesaian masalah kesalahan kueri

Topik terkait