全部产品
Search
文档中心

Simple Log Service:Kueri dan analisis log situs web

更新时间:Jul 02, 2025

Topik ini menjelaskan cara mengkueri dan menganalisis log situs web di konsol Simple Log Service.

Prasyarat

Log akses situs web telah dikumpulkan, dan konfigurasi Logtail telah dibuat. Untuk informasi lebih lanjut, lihat Kumpulkan log teks dari server.

Langkah 1: Buat indeks

Anda hanya dapat mengkueri dan menganalisis log setelah membuat indeks. Simple Log Service mendukung indeks teks penuh dan indeks bidang. Untuk informasi lebih lanjut, lihat Buat Indeks. Dalam topik ini, indeks bidang dibuat untuk log akses situs web.

  1. Masuk ke konsol Simple Log Service.

  2. Di 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, pilih Index Attributes > Attributes. Jika fitur pengindeksan tidak diaktifkan, klik Enable.

  5. Konfigurasikan indeks bidang dan klik OK. Anda dapat menambahkan indeks bidang secara manual satu per satu atau klik Automatic Index Generation. Simple Log Service secara otomatis menghasilkan indeks bidang berdasarkan log pertama dalam hasil pratinjau pengumpulan data.

    Penting
    • Fitur pengindeksan hanya berlaku untuk data log yang ditulis ke Logstore saat ini setelah Anda mengonfigurasi indeks. Jika Anda ingin mengkueri data historis, gunakan fitur pengindeksan ulang. Untuk informasi lebih lanjut, lihat Indeks Ulang Log untuk Logstore.

    • Jika Anda ingin mengeksekusi pernyataan SQL SELECT untuk analisis, aktifkan Analitik untuk bidang yang ingin Anda analisis saat mengonfigurasi indeks.

    • Indeks secara otomatis dikonfigurasikan untuk beberapa bidang cadangan di Simple Log Service. Untuk informasi lebih lanjut, lihat Bidang Cadangan.

    字段索引

Langkah 2: Kueri dan analisis log

Untuk informasi lebih lanjut tentang cara mengkueri dan menganalisis log di konsol, lihat Kueri dan Analisis Log. Anda harus menggunakan pernyataan analitik bersama dengan pernyataan pencarian dalam format Pernyataan Pencarian|Pernyataan Analitik. Pernyataan pencarian dapat dieksekusi sendiri, tetapi pernyataan analitik harus dieksekusi bersama dengan pernyataan pencarian.

Penting

Secara default, hanya 100 baris data yang dikembalikan setelah Anda mengeksekusi pernyataan kueri. Anda dapat menggunakan klausa LIMIT untuk mengubah jumlah baris yang dikembalikan. Untuk informasi lebih lanjut, lihat Klausa LIMIT.

Pernyataan pencarian

  • Untuk mengkueri entri log yang mengandung Chrome, eksekusi pernyataan pencarian berikut:

    Chrome
  • Untuk mengkueri entri log yang durasi permintaannya lebih dari 60 detik, eksekusi pernyataan pencarian berikut:

    request_time > 60
  • Untuk mengkueri entri log yang durasi permintaannya berkisar antara 60 hingga 120 detik, eksekusi pernyataan pencarian berikut:

    request_time in [60 120]
  • Untuk mengkueri entri log yang mencatat permintaan GET yang berhasil (kode status: 200 hingga 299), eksekusi pernyataan pencarian berikut:

    request_method : GET and status in [200 299]
  • Untuk mengkueri entri log yang nilainya pada bidang request_uri adalah /request/path-2, eksekusi pernyataan pencarian berikut:

    request_uri:/request/path-2/file-2

Pernyataan analisis

  • Hitung jumlah tampilan halaman (PV) sebuah situs web.

    Gunakan fungsi count untuk menghitung PV sebuah situs web.

    * | SELECT count(*) AS PV

    访问pv

  • Hitung PV sebuah situs web per 1 menit.

    Gunakan fungsi date_trunc untuk memotong waktu per menit dan gunakan klausa GROUP BY untuk mengelompokkan hasil analisis berdasarkan waktu. Kemudian, gunakan fungsi count untuk menghitung jumlah PV per menit dan gunakan klausa ORDER BY untuk mengurutkan hasil analisis berdasarkan waktu.

    * | SELECT count(*) as PV, date_trunc('minute', __time__) as time GROUP BY time ORDER BY time

    网站PV

  • Hitung jumlah permintaan untuk setiap metode permintaan per 5 menit.

    Gunakan __time__ - __time__ %300 untuk memotong waktu per 5 menit dan gunakan klausa GROUP BY untuk mengelompokkan hasil analisis berdasarkan waktu. Kemudian, gunakan fungsi count untuk menghitung jumlah permintaan setiap 5 menit dan gunakan klausa ORDER BY untuk mengurutkan hasil analisis berdasarkan waktu.

    * | SELECT request_method, count(*) as count, __time__ - __time__ %300 as time GROUP BY time, request_method ORDER BY time

    请求次数

  • Bandingkan jumlah PV minggu ini dengan jumlah PV minggu lalu.

    Gunakan fungsi count untuk menghitung total jumlah PV. Kemudian, gunakan fungsi ts_compare untuk mendapatkan rasio PV minggu ini terhadap PV minggu lalu. Dalam pernyataan kueri berikut, website_log adalah nama Logstore.

    * | SELECT diff[1] as this_week, diff[2] as last_week, time FROM (SELECT ts_compare(pv, 604800) as diff, time FROM (SELECT COUNT(*) as pv, date_trunc('week', __time__) as time FROM website_log GROUP BY time ORDER BY time) GROUP BY time)

    环比上周PV

  • Kumpulkan statistik distribusi alamat IP klien.

    Gunakan fungsi ip_to_province untuk mendapatkan provinsi tempat alamat IP berada, dan gunakan klausa GROUP BY untuk mengelompokkan hasil analisis berdasarkan provinsi. Kemudian, gunakan fungsi count untuk menghitung jumlah kemunculan setiap alamat IP, dan gunakan klausa ORDER BY untuk mengurutkan hasil analisis berdasarkan jumlah kemunculan.

    * | SELECT count(*) as count, ip_to_province(client_ip) as address GROUP BY address ORDER BY count DESC

    客户端分布

  • Hitung 10 URI permintaan yang paling banyak diakses.

    Gunakan klausa GROUP BY untuk mengelompokkan hasil analisis berdasarkan URI permintaan. Gunakan fungsi count untuk menghitung jumlah permintaan akses untuk setiap URI. Kemudian, gunakan klausa ORDER BY untuk mengurutkan hasil analisis berdasarkan jumlah permintaan akses.

    * | SELECT count(*) as PV, request_uri as PATH GROUP BY PATH ORDER BY PV DESC LIMIT 10

    请求路径

  • Kueri entri log yang nilainya pada bidang request_uri diakhiri dengan %file-7.

    Penting

    Dalam pernyataan kueri, karakter wildcard asterisk (*) dan tanda tanya (?) digunakan untuk pencarian fuzzy. Karakter wildcard harus digunakan di tengah atau di akhir kata. Jika Anda ingin mengkueri bidang yang diakhiri dengan karakter tertentu, gunakan operator LIKE dalam pernyataan analitik.

    * | select * from website_log where request_uri like '%file-7'

    website_log dalam pernyataan kueri sebelumnya adalah nama Logstore.

    模糊查询

  • Hitung statistik URI permintaan yang diakses.

    Gunakan fungsi regexp_extract untuk mengekstrak bagian file dari bidang request_uri. Kemudian, gunakan fungsi count untuk menghitung jumlah permintaan akses untuk setiap URI.

    * | SELECT regexp_extract(request_uri, '.*\/(file.*)', 1) file, count(*) as count group by file

    分析uri

  • Kueri entri log yang nilainya pada bidang request_uri mengandung %abc%.

    * | SELECT * where request_uri like '%/%abc/%%' escape '/'

    模糊查询

Contoh log akses situs web

__tag__:__client_ip__:192.0.2.0
__tag__:__receive_time__:1609985755
__source__:198.51.100.0
__topic__:website_access_log
body_bytes_sent:4512
client_ip:198.51.100.10
host:example.com
http_host:example.com
http_user_agent:Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; ja-jp) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
http_x_forwarded_for:198.51.100.1
instance_id:i-02
instance_name:instance-01
network_type:vlan
owner_id:%abc%-01
referer:example.com
region:cn-shanghai
remote_addr:203.0.113.0
remote_user:neb
request_length:4103
request_method:POST
request_time:69
request_uri:/request/path-1/file-0
scheme:https
server_protocol:HTTP/2.0
slbid:slb-02
status:200
time_local:07/Jan/2021:02:15:53
upstream_addr:203.0.113.10
upstream_response_time:43
upstream_status:200
user_agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.33 (KHTML, like Gecko) Ubuntu/9.10 Chromium/13.0.752.0 Chrome/13.0.752.0 Safari/534.33
vip_addr:192.0.2.2
vpc_id:3db327b1****82df19818a72