All Products
Search
Document Center

Simple Log Service:Sintaksis dan fungsi pencarian

Last Updated:Aug 27, 2026

Simple Log Service memungkinkan Anda memfilter log menggunakan pernyataan pencarian. Hasilnya dapat digunakan secara mandiri atau sebagai input untuk pernyataan analitik.

Prasyarat

Untuk mengkueri log, Anda harus membuat indeks.

Sintaksis dasar

Catatan

Pernyataan kueri dan analitik dipisahkan oleh | dalam format pernyataan kueri|pernyataan analitik. Contoh:

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

Jenis pernyataan

Deskripsi

pernyataan pencarian

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

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

Penting

Jangan tentukan lebih dari 30 kondisi dalam satu pernyataan pencarian.

pernyataan analitik

Penting

Pernyataan analitik harus mengikuti pernyataan pencarian. Tidak diperlukan klausa FROM atau WHERE — SLS menganalisis semua data di Logstore saat ini secara default. Pernyataan ini tidak peka huruf besar/kecil, tidak mendukung offset, dan tidak memerlukan titik koma (;) di akhir.

Menjalankan perhitungan dan analisis statistik pada hasil pencarian atau seluruh data. Fungsi dan sintaksis yang didukung:

Menulis kueri pencarian

Untuk menulis pernyataan kueri:

Langkah 1: Pilih jenis pencarian

Penting

Hasil tergantung pada konfigurasi indeks Anda. Jika indeks teks penuh dan indeks bidang keduanya tersedia, indeks bidang memiliki prioritas lebih tinggi.

Berdasarkan jenis indeks, Simple Log Service mendukung dua jenis pencarian untuk Logstore: pencarian teks penuh dan pencarian berdasarkan bidang.

  • 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 Anda 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. Pencarian ini mendukung karakter wildcard (* dan ?) serta operator logika (and, or, 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 perbandingan numerik serta pencocokan ekspresi reguler.

Penting
  • indexname1 adalah nama bidang yang akan dikueri. Jika nama bidang atau pengenal lain berisi karakter khusus (seperti spasi atau karakter Tionghoa) atau kata kunci pencarian (seperti and atau or), Anda harus membungkusnya dengan tanda kutip ganda (""). 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 bernilai 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 bernilai GET dan request_time_msec lebih besar dari 50. Sintaksis pencarian: request_method: GET and request_time_msec>50.

Langkah 2: Tipe data bidang

Setiap tipe data bidang mendukung operator yang berbeda.

Tipe data bidang

Tipe

Deskripsi

Operator yang didukung

text

Bidang string. Dengan pengindeksan teks penuh diaktifkan, semua bidang secara default bertipe text kecuali __time__.

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

long dan double

Kueri rentang numerik memerlukan tipe bidang long atau double.

  • Jika tipe bidang bukan double atau long, atau sintaksis rentang tidak valid, SLS akan kembali ke pencarian teks penuh, yang dapat menghasilkan hasil yang tidak sesuai harapan.

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

  • Jika Anda mengubah tipe data bidang dari text menjadi double atau long, hanya pencarian kesamaan 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

Tetapkan tipe data bidang JSON menjadi long, double, atau Enable Analytics berdasarkan nilainya, dan aktifkan Enable Analytics.

Gunakan operator berdasarkan tipe data bidang dalam objek JSON.

Operator

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

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

  • Operator disusun berdasarkan urutan prioritas menurun:

    1. Titik dua (:)

    2. Tanda kutip ganda ("")

    3. Tanda kurung ()

    4. and, not

    5. or

Operator

Deskripsi

:

Pencarian berdasarkan bidang dalam format Key:Value. Contoh: request_method:GET.

Jika nama bidang atau nilai berisi karakter khusus seperti spasi, titik dua (:), atau tanda hubung (-), Anda harus membungkus 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.

( )

Mengelompokkan kondisi pencarian untuk meningkatkan prioritasnya. Contoh: (request_method:GET or request_method:POST) and status:200.

""

Bungkus kata kunci sintaksis dengan "" (tanda kutip ganda) agar dianggap sebagai literal. Dalam kueri bidang, semua kata dalam "" dianggap 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 membungkusnya dengan "". Misalnya, pencarian untuk "and" menemukan log yang berisi kata "and", yang tidak dianggap sebagai operator.

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

  • Saat log diproses oleh transformasi data atau plug-in Logtail, kunci tag dikonversi menjadi kunci standar. Untuk mengkueri kunci ini, Anda harus membungkus nama bidang dengan "". Contoh: "__tag__:__client_ip__":192.0.2.1. Bidang __tag__:__client_ip__ adalah bidang terpesan yang menyimpan IP host pengumpulan log.

\

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

*

Pencocokan wildcard 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.

?

Pencocokan wildcard tepat satu karakter. Contoh: host:aliyund?c.

>

Nilai bidang lebih besar dari angka tertentu. Contoh: request_time>100.

>=

Nilai bidang lebih besar dari atau sama dengan angka tertentu. Contoh: request_time>=100.

<

Nilai bidang kurang dari angka tertentu. Contoh: request_time<100.

<=

Nilai bidang kurang dari atau sama dengan angka tertentu. Contoh: request_time<=100.

=

Mencari log di mana nilai bidang sama dengan angka tertentu. 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 tertentu. Tanda kurung siku [] menunjukkan interval tertutup (inklusif), sedangkan tanda kurung () menunjukkan interval terbuka (eksklusif). Gunakan spasi untuk memisahkan dua angka dalam rentang tersebut. 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 tertentu. Karakter wildcard didukung. Contoh: __source__:192.0.2.*.

Penting

Dalam Layanan Log, __source__ adalah bidang terpesan yang dapat disingkat menjadi source. Jika Anda menentukan bidang kustom bernama source, bidang tersebut bentrok dengan bidang terpesan source. Dalam kasus ini, Anda harus menggunakan kapitalisasi berbeda, seperti Source atau SOURCE, untuk mengkueri bidang kustom Anda.

__tag__

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

__topic__

Mencari log berdasarkan topik. Contoh: __topic__:nginx_access_log.

Langkah 3: Pilih mode pencocokan

SLS mendukung pencarian tepat dan pencarian fuzzy.

Jenis pencarian

Deskripsi

Contoh

Pencarian tepat

Menemukan log yang cocok dengan kata utuh.

SLS menggunakan segmentasi kata, sehingga kueri multi-kata mungkin tidak mengembalikan kecocokan tepat. Kueri untuk abc def mengembalikan log yang berisi abc dan def, tetapi belum tentu sebagai frasa berurutan. Untuk mencocokkan frasa tepat abc def, gunakan pencarian frasa atau klausa LIKE. 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

Tambahkan karakter wildcard (* atau ?) di tengah atau akhir istilah (batas 64 karakter). SLS mencocokkan hingga 100 istilah dan mengembalikan semua log yang memuatnya. Istilah yang lebih spesifik menghasilkan hasil yang lebih baik.

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 kueri berbasis sampel:

  • Dengan pengindeksan bidang diaktifkan, SLS mengambil sampel dari indeks bidang tersebut daripada melakukan pemindaian penuh, mengembalikan subset hasil yang representatif.

  • Dengan pengindeksan teks penuh dan tanpa bidang tertentu, SLS mengambil sampel dari indeks teks penuh, mengembalikan subset 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 diawali Ge.

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

  • host:www.yl*: Menemukan log di mana bidang host diawali www.yl, mencocokkan hingga 100 istilah.

Cara melakukan kueri fuzzy pada log?

Contoh pernyataan pencarian

Hasil pencarian tergantung pada konten log dan konfigurasi indeks. Contoh berikut menggunakan log sampel dan konfigurasi indeks berikut.

Tipe text, double, dan long

Log sampel

Berikut adalah contoh log akses NGINX. Pernyataan pencarian berikut didasarkan pada format log ini:

__tag__:__receive_time__0 :1645499498
body_bytes_sent :3033
client_ip :11x xxx xxx4.26
host :www.wmxxxxxxxxxm
http_host :wxxxxxxxx xxxck.com
http_user_agent :Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.xxx xxx56 Safari/535.11
http_x_forwarded_for :11xx xxxxxxx.213
instance_id :i-01
instance_name :instance-02
network_type :vlan
owner_id :owner-01
referer :www.xxxxxxxxx.com
region :cn-shanghai
remote_addr :21x xx xxx76
remote_user :6f3x
request method :PUT POST
request_length :2414
request_method :GET
request_time :71
request_uri :/request/path-1/file-2
scheme :https
server_protocol :HTTP/2.0
slbid :slb-01
status :200
time_local :22/Feb/2022:03:11:08
upstream_addr :117.xxx.xxx6
upstream_response_time :27
upstream_status :200
user_agent :Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20120101 FireFox/29.0
vip_addr :2xx xxxxxxxx.33
vpc_id :195datxxxxxxxxxxxxxxxxx6d9c1f46f

Konfigurasi indeks

Buat indeks sebelum mengkueri log. Untuk memeriksa konfigurasi indeks Anda, ikuti langkah-langkah berikut.

  1. Di halaman query and analysis penyimpanan log, pilih Index Attributes > Attributes.

  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 China (Hangzhou).

request_method:GET not region:cn-hangzhou

None

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 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 dianggap 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 membungkusnya dengan tanda kutip ganda ("").

None

Cari log yang topiknya HTTPS atau HTTP.

__topic__:HTTPS or __topic__:HTTP

None

Cari log dari host 192.0.2.1.

__tag__:__client_ip__:192.0.2.1

Bidang __tag__:__client_ip__ adalah bidang terpesan yang menyimpan alamat IP host pengumpulan log.

Penting

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

None

Cari log yang berisi 192.168.XX.XX.

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

Gunakan klausa SQL LIKE untuk kueri fuzzy yang tepat.

None

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, aktifkan include Chinese saat Anda mengonfigurasi indeks.

None

Pencarian fuzzy

Tujuan

Pernyataan pencarian

Debugging

Cari log yang berisi kata yang diawali cn.

cn*

Debugging

Cari log di mana nilai bidang region diawali cn.

region:cn*

None

Cari log di mana nilai bidang region berisi cn*.

region:"cn*"
Catatan

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

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

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

None

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

mozi?la

Debugging

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

mo*la

Debugging

Cari log yang berisi kata yang diawali "moz" dan kata yang diawali "sa".

moz* and sa*

Debugging

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

Pernyataan pencarian tidak dapat menemukan log ini. Gunakan klausa SQL LIKE sebagai gantinya.

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

None

Cari log di mana nilai bidang message diawali "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.%'

None

Pencarian berdasarkan pembatas

SLS membagi konten log menjadi kata-kata menggunakan pembatas yang dikonfigurasi. Nilai defaultnya adalah , '";=()[]{}?@&<>/:\n\t\r. Jika Anda mengosongkan Delimiter, nilai bidang dianggap sebagai satu istilah dan hanya dapat ditemukan melalui pencarian tepat atau fuzzy pada seluruh string. 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 menjadi kosong, nilai bidang dianggap sebagai satu token. Akibatnya, Anda tidak dapat menemukan log dengan menggunakan pernyataan kueri http_user_agent:Chrome.

  • Jika Anda mengatur Delimiter menjadi , '";=()[]{}?@&<>/:\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".

  • 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 diawali /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.

None

Escape kata kunci

  • Dalam pernyataan pencarian

    Bungkus kata kunci sintaksis dengan "" (tanda kutip ganda) agar dianggap sebagai literal. Dalam kueri bidang, semua kata dalam "" dianggap 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 membungkusnya dengan "". Misalnya, pencarian untuk "and" menemukan log yang berisi kata "and", yang tidak dianggap sebagai operator.

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

    • Saat log diproses oleh transformasi data atau plug-in Logtail, kunci tag dikonversi menjadi kunci standar. Untuk mengkueri kunci ini, Anda harus membungkus nama bidang dengan "". Contoh: "__tag__:__client_ip__":192.0.2.1. Bidang __tag__:__client_ip__ adalah bidang terpesan yang menyimpan IP host pengumpulan log.

    Tujuan

    Pernyataan pencarian

    Cari log di mana nilai bidang request method adalah PUT. Nama bidang request method berisi spasi dan harus dibungkus 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 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, seperti nama bidang atau nama tabel, berisi karakter khusus (seperti spasi, karakter Tionghoa, :, atau -) atau kata kunci sintaksis (seperti and atau or), Anda harus membungkusnya dengan tanda kutip ganda ("").

    • Karakter yang merepresentasikan string harus dibungkus dengan tanda kutip tunggal (''). Karakter yang tidak dibungkus tanda kutip atau dibungkus 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 dibungkus dengan tanda kutip ganda ("").

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

    Hitung jumlah log untuk setiap status permintaan.

    Bidang content diindeks sebagai JSON. Cara mengkueri dan menganalisis bidang JSON yang 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

Buat indeks sebelum mengkueri log. Untuk memeriksa konfigurasi indeks Anda, ikuti langkah-langkah berikut.

  1. Di halaman query and analysis penyimpanan log, pilih Index Attributes > Attributes.

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

Contoh

Tujuan

Pernyataan pencarian

Cari log yang mencatat error 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 error 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

Permasalahan log JSON

FAQ tentang mengkueri dan menganalisis log JSON

Pemecahan masalah error kueri

Topik terkait