全部产品
Search
文档中心

Simple Log Service:Menanyakan dan Menganalisis Log JSON

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menanyakan dan menganalisis log situs web JSON serta menyediakan contoh pernyataan SQL.

Prasyarat

Log teks dalam mode JSON harus dikumpulkan untuk penanyaan dan analisis lebih lanjut. Untuk informasi lebih lanjut, lihat Kumpulkan log teks dalam mode JSON.

Langkah 1: Buat indeks

  1. Masuk ke Konsol Simple Log Service.

  2. Pada bagian Projects, klik proyek yang ingin Anda kelola.

    image

  3. Pada tab Log Storage > Logstores, klik Logstore yang ingin Anda kelola.

    image

  4. Di pojok kanan atas halaman penanyaan dan analisis, pilih Index Attributes > Attributes. Jika belum ada indeks yang dibuat, klik Enable di halaman tersebut. Untuk informasi lebih lanjut tentang indeks teks penuh dan indeks bidang serta cara membuat indeks, lihat Buat Indeks.

    Catatan

    Jika Anda ingin menanyakan semua bidang dalam log, disarankan menggunakan indeks teks penuh. Jika hanya ingin menanyakan bidang tertentu, gunakan indeks bidang untuk mengurangi lalu lintas indeks. Untuk analisis bidang, Anda harus membuat indeks bidang dan menyertakan pernyataan SELECT dalam pernyataan penanyaan Anda.

  5. Buat indeks bidang. Gambar berikut menunjukkan contoh log JSON dan cara membuat indeks untuk bidang.

    日志样例

    配置索引

    • Bidang __topic__, __source__, dan __tag__ adalah bidang cadangan dari Simple Log Service. Untuk informasi lebih lanjut, lihat Bidang Cadangan.

    • Bidang @timestamp, remote_addr, remote_user, http_referer, http_user_agent, status, server_protocal, http_x_forward_for, dan upstream_addr tidak termasuk node daun. Anda dapat membuat indeks untuk bidang content.

    • Bidang request dan time mencakup node daun, tetapi node daun tersebut bukan array JSON.

      • Anda tidak dapat membuat indeks untuk bidang request atau time. Anda juga tidak dapat menanyakan atau menganalisis kedua bidang tersebut.

      • Anda dapat membuat indeks untuk node daun dari bidang request dan time. Saat membuat indeks, tentukan nama lengkap node daun dengan format: KEY1.KEY2.KEY3. Contoh: time.request_time dan time.upstream_response_time. Setelah indeks dibuat, Anda dapat menanyakan bidang time.request_time dan time.upstream_response_time.

    • Nilai dari bidang body_bytes_sent adalah array JSON. Anda tidak dapat membuat indeks untuk bidang tersebut atau node daun dari bidang tersebut. Anda tidak dapat menanyakan atau menganalisis bidang body_bytes_sent atau node daun dari bidang body_bytes_sent.

Langkah 2: Reindeks data

Indeks baru hanya berlaku untuk data yang dikumpulkan setelah pembuatan indeks. Jika ingin menanyakan data historis, gunakan fitur reindeks. Untuk informasi lebih lanjut, lihat Reindeks Log untuk Logstore.

Langkah 3: Menanyakan dan Menganalisis Log

Di halaman penanyaan dan analisis Logstore, masukkan pernyataan penanyaan, tentukan rentang waktu penanyaan, lalu jalankan pernyataan tersebut. Gunakan tanda kutip ganda (") untuk nama bidang dan tanda kutip tunggal (') untuk string. Sertakan pernyataan SELECT dalam pernyataan analitik. Untuk informasi lebih lanjut tentang cara menanyakan dan menganalisis log, lihat Menanyakan dan Menganalisis Log. Untuk FAQ terkait penanyaan dan analisis log JSON, lihat FAQ tentang Penanyaan dan Analisis Log JSON.

  • Tanyakan log permintaan yang mengembalikan kode status 200.

    content.status:200
  • Tanyakan log permintaan yang panjangnya lebih besar dari 70.

    content.request.request_length > 70
  • Tanyakan log permintaan GET.

    content.request.request_method:GET
  • Hitung jumlah log permintaan berdasarkan kode status.

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

    PV

  • Hitung jumlah permintaan berdasarkan durasi permintaan dan urutkan hasilnya berdasarkan durasi meningkat.

    * | SELECT "content.time.request_time", COUNT(*) AS count GROUP BY "content.time.request_time" ORDER BY "content.time.request_time"

    请求时长

  • Hitung rata-rata durasi permintaan berdasarkan metode permintaan.

    * | SELECT avg("content.time.request_time") AS avg_time,"content.request.request_method"  GROUP BY "content.request.request_method"

    平均请求时长

Referensi