All Products
Search
Document Center

Simple Log Service:Kueri dan analisis log website

Last Updated:Mar 26, 2026

Topik ini menjelaskan cara melakukan kueri dan analisis log website di Konsol Simple Log Service.

Prasyarat

Log akses website telah dikumpulkan dan konfigurasi Logtail telah dibuat. Untuk informasi selengkapnya, lihat Kumpulkan log teks dari server.

Langkah 1: Buat indeks

Anda hanya dapat melakukan kueri dan analisis log setelah membuat indeks. Simple Log Service mendukung indeks teks penuh dan indeks bidang. Untuk informasi selengkapnya, lihat Buat indeks. Pada topik ini, indeks bidang dibuat untuk log akses website.

  1. Masuk ke Konsol Simple Log Service.

  2. Pada bagian Projects, klik project yang diinginkan.

    image

  3. Pada tab Log Storage > Logstores, klik penyimpanan log yang diinginkan.

    image

  4. Di pojok kanan atas halaman kueri dan analisis, pilih Index Attributes > Attributes. Jika Anda belum mengaktifkan pengindeksan, klik Enable Indexing.

  5. Konfigurasikan indeks bidang, lalu klik OK. Anda dapat menambahkan indeks bidang satu per satu secara manual atau klik Automatic Index Generation. Simple Log Service akan 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 setelah Anda mengonfigurasi indeks. Jika ingin melakukan kueri terhadap data historis, Anda dapat menggunakan fitur pengindeksan ulang. Untuk informasi selengkapnya, lihat Pengindeksan ulang log untuk Logstore.

    • Jika ingin menjalankan pernyataan SQL SELECT untuk analisis, Anda harus mengaktifkan Enable Analytics untuk bidang-bidang yang ingin dianalisis saat mengonfigurasi indeks.

    • Indeks dikonfigurasi secara otomatis untuk beberapa bidang tercadang di Simple Log Service. Untuk informasi selengkapnya, lihat Bidang tercadang.

    字段索引

Langkah 2: Lakukan kueri dan analisis log

Untuk informasi selengkapnya tentang cara melakukan kueri dan analisis log di konsol, lihat Kueri dan analisis log. Anda harus menggunakan pernyataan analitik bersamaan dengan pernyataan pencarian dalam format Pernyataan pencarian|Pernyataan analitik. Pernyataan pencarian dapat dijalankan sendiri, tetapi pernyataan analitik harus dijalankan bersamaan dengan pernyataan pencarian.

Penting

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

Pernyataan pencarian

  • Untuk mengkueri entri log yang berisi Chrome, jalankan pernyataan pencarian berikut:

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

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

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

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

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

Pernyataan analisis

  • Hitung jumlah tampilan halaman (PV) sebuah website.

    Gunakan fungsi count untuk menghitung PV website.

    * | SELECT count(*) AS PV

    访问pv

  • Hitung PV website 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 memperoleh perbandingan minggu ke minggu. Dalam kueri ini, 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 client.

    Gunakan fungsi ip_to_province untuk memperoleh 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 sering 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 nilai bidang request_uri-nya 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 ingin mengkueri bidang yang diakhiri dengan karakter tertentu, Anda dapat menggunakan operator LIKE dalam pernyataan analitik.

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

    Dalam pernyataan ini, website_log 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 nilai bidang request_uri-nya berisi %abc%.

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

    模糊查询

Contoh log akses website

__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