All Products
Search
Document Center

Web Application Firewall:Kueri log

Last Updated:Apr 01, 2026

Gunakan Log Service for WAF untuk mencari, memfilter, dan menganalisis log lalu lintas WAF secara real time. Hasil kueri menampilkan permintaan yang diblokir, asal serangan, dan aturan perlindungan yang dipicu—sehingga Anda dapat menyelidiki insiden, menyesuaikan aturan, dan mengambil tindakan berdasarkan temuan tanpa meninggalkan Konsol.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Lakukan kueri dan analisis log

  1. Masuk ke Konsol WAF. Di bilah navigasi atas, pilih kelompok sumber daya dan wilayah tempat instans WAF Anda dideploy (Chinese Mainland atau Outside Chinese Mainland).

  2. Di panel navigasi kiri, pilih Security Operations > Log Service.

  3. Pilih nama domain dari daftar drop-down, lalu aktifkan Status untuk mengaktifkan pengumpulan log untuk nama domain tersebut. Daftar drop-down (berlabel 1 pada gambar) hanya menampilkan nama domain yang dilindungi oleh WAF. Jika nama domain yang Anda butuhkan tidak tersedia, tambahkan terlebih dahulu ke WAF. Lihat Tutorial.

    enable log collection

  4. Di tab Log Search, buat dan jalankan kueri.

    1. Masukkan pernyataan kueri di kotak pencarian (berlabel 1 pada gambar). Pernyataan kueri menggunakan sintaksis pencarian Log Service. Untuk detail sintaksis, lihat Sintaksis pencarian. Untuk daftar lengkap field log WAF yang dapat digunakan sebagai kondisi kueri, lihat Field log yang didukung oleh WAF. Jika Anda lebih suka pendekatan terpandu, buka Advanced Search di atas kotak pencarian, isi kondisinya, lalu klik Search. Konsol akan menghasilkan pernyataan kueri untuk Anda. Kondisi berikut tersedia:

      Kondisi pencarian

      Deskripsi

      IP

      Alamat IP client yang mengirim permintaan

      Request ID

      ID unik yang diberikan WAF untuk setiap permintaan. WAF menyertakan ID ini pada halaman error dan halaman slider CAPTCHA, sehingga Anda dapat melacak permintaan tertentu selama troubleshooting.

      Rule ID

      ID aturan perlindungan WAF yang cocok dengan permintaan. Temukan ID aturan di halaman Security Report atau di bawah System Management > Protection Rule Group.

      Server Response Code

      Kode status HTTP yang dikembalikan server origin ke WAF

      Status Code Returned by WAF

      Kode status HTTP yang dikembalikan WAF ke client

      Protection Features

      Jenis aturan perlindungan WAF yang cocok dengan permintaan. Untuk jenis aturan dan konfigurasinya, lihat Ikhtisar.

    2. (Opsional) Untuk menghitung atau mengagregasi hasilnya, tambahkan pernyataan analitik setelah tanda vertikal (|). Pernyataan analitik menggunakan sintaksis SQL-92 standar. Untuk detailnya, lihat Ikhtisar kueri dan analisis log. Lewati langkah ini jika Anda hanya perlu melihat entri log yang cocok.

    3. Tetapkan rentang waktu menggunakan pemilih waktu (berlabel 2 pada gambar).

    4. Klik Search & Analyze (berlabel 3 pada gambar).

    Query logs

Hasil muncul dalam histogram log dan di tab Raw Logs serta Graph di bawahnya. Untuk contoh kueri praktis, lihat Contoh kueri dan analisis.

Kelola hasil kueri

Log histogram

Histogram log menunjukkan distribusi log yang dikueri sepanjang waktu.

Log histogram
  • Arahkan kursor ke persegi panjang hijau untuk melihat rentang waktu yang diwakilinya dan jumlah log dalam rentang tersebut.

  • Klik persegi panjang hijau untuk memperdalam rincian waktu dan melihat entri yang cocok di tab Raw Logs.

Raw Logs

Tab Raw Logs menampilkan entri log individual.

Raw logs

Analisis cepat

Klik ikon alias untuk beralih antara nama field dan alias field. Alias ditetapkan saat Anda mengonfigurasi indeks. Misalnya, jika Anda menetapkan alias host_name menjadi host, daftar Analisis Cepat menampilkan host saat tampilan alias diaktifkan.

Jika sebuah field tidak memiliki alias, namanya selalu ditampilkan, terlepas dari pengaturan tampilan alias.

Untuk informasi lebih lanjut, lihat Analisis cepat.

Lihat dan unduh log

ActionCara
Beralih antara tampilan tabel dan data mentahKlik Table atau Raw Data
Salin entri logKlik ikon copy
Lihat detail tagKlik ikon details
Aktifkan tampilan multi-barisKlik New Line
Urutkan berdasarkan waktuKlik Time
Unduh logKlik ikon downloads. Opsi: Download Log in Current Page, Download All Logs with Cloud Shell, Download All Logs Using Command Line Tool. Lihat Unduh log.
Konfigurasi pengaturan tampilanKlik ikon setting. Opsi: Tag Configurations, Column Settings, JSON Configurations, Event Settings

Graph

Tab Graph memvisualisasikan hasil analitik. Tab ini memerlukan pernyataan analitik (SQL-92) dalam kueri Anda.

ActionCara
Ubah jenis grafikPilih jenis grafik dari pemilih grafik. Untuk jenis yang tersedia, lihat Konfigurasi grafik.
Pratinjau grafikPratinjau grafik setelah Anda mengubah jenis grafik
Tambahkan ke dasborKlik Add to New Dashboard
Unduh logKlik Download Log. Opsi: Download Log in Current Page, Download All Logs with Cloud Shell, Download All Logs Using Command Line Tool. Lihat Unduh log.

Untuk menyesuaikan grafik secara detail, gunakan pengaturan berikut:

PengaturanDeskripsi
General ConfigurationsPengaturan global untuk grafik, seperti skema warna yang diterapkan pada semua hasil pernyataan kueri
Field ConfigurationPengaturan tampilan per-pernyataan-kueri atau per-kolom, seperti skema warna khusus untuk satu hasil kueri
Configure an interaction occurrencePerilaku drill-down untuk hasil kueri atau kolom data, memungkinkan analisis detail halus

LogReduce

Di tab LogReduce, klik Enable LogReduce untuk mengelompokkan entri log serupa dan mengungkap pola. Untuk detailnya, lihat LogReduce.

Bertindak berdasarkan hasil kueri

Setelah menemukan informasi yang Anda butuhkan dalam log, Anda dapat melakukan tindakan berikut tanpa meninggalkan Konsol:

ActionCara
Buat notifikasiPilih Save as Alert > New Alert. Log Service mengevaluasi aturan sesuai jadwal dan mengirim notifikasi setiap kali kondisi pemicu terpenuhi. Untuk detail konfigurasi, lihat Konfigurasi aturan notifikasi.
Tambahkan grafik ke dasborDi tab Graph, klik Add to New Dashboard.
Unduh log untuk analisis offlineKlik ikon unduh di tab Raw Logs atau Download Log di tab Graph. Lihat Unduh log.

Field log utama

Field berikut sering digunakan dalam kueri log WAF. Untuk referensi field lengkap, lihat Field log yang didukung oleh WAF.

FieldDeskripsiNilai yang mungkin
final_pluginFitur perlindungan yang bertindak terhadap permintaanwaf (Mesin aturan perlindungan), acl (blacklist alamat IP dan kebijakan perlindungan kustom), cc (serangan flood HTTP dan kebijakan perlindungan kustom)
final_actionAksi yang diambil terhadap permintaanblock, dan lainnya tergantung konfigurasi aturan
real_client_ipAlamat IP asal client. Jika proxy digunakan atau header IP tidak valid, nilainya adalah -. Dalam kasus tersebut, gunakan remote_addr sebagai cadangan.Alamat IP atau -
remote_addrAlamat IP yang terhubung ke WAFAlamat IP
matched_hostNama domain yang cocok dengan permintaanString nama domain
hostNama domain yang dimintaString nama domain
request_pathPath permintaanPath string
request_methodMetode permintaan HTTPGET, POST, PUT, DELETE, dan sebagainya
statusKode status HTTP yang dikembalikan WAF ke clientKode status HTTP
upstream_statusKode status HTTP yang dikembalikan server origin ke WAFKode status HTTP
querystringString kueri dari permintaanString yang di-encode URL
http_user_agentUser agent clientString user agent

Contoh kueri dan analisis

Contoh berikut mencakup skenario investigasi keamanan umum. Setiap contoh menggunakan pernyataan pencarian (sebelum |) dan pernyataan analitik (setelah |).

Permintaan yang diblokir berdasarkan fitur perlindungan, per 15 menit

Menampilkan jumlah permintaan yang diblokir oleh setiap fitur perlindungan dalam interval 15 menit.

* |
SELECT
  time_series(__time__, '15m', '%H:%i', '0') as time,
  COUNT_if(final_plugin = 'waf') as "wafmodule",
  COUNT_if(final_plugin = 'acl') as "aclmodule",
  COUNT_if(final_plugin = 'cc') as "httpfloodmodule"
GROUP by
  time
ORDER by
  time

Rincian fitur perlindungan berdasarkan domain

Menampilkan berapa kali setiap fitur perlindungan dipicu, dikelompokkan berdasarkan nama domain.

* |
SELECT
  count(*) as times,
  host,
  final_plugin
GROUP by
  host,
  final_plugin
ORDER by
  times desc

Kueri per detik (QPS), per 15 menit

* |
SELECT
  time_series(__time__, '15m', '%H:%i', '0') as time,
  count(*) / 900 as QPS
GROUP by
  time
ORDER by
  time

Domain yang paling sering menjadi target serangan flood HTTP

and acl_action :block |
SELECT
  count(*) as times,
  host
GROUP by
  host
ORDER by
  times desc

Detail permintaan per detik (10 terbaru)

Mengembalikan waktu, domain, path, metode, kode status WAF, kode status server origin, dan string kueri untuk permintaan terbaru.

* |
SELECT
  date_format(date_trunc('second', __time__), '%H:%i:%s') as time,
  host,
  request_path,
  request_method,
  status,
  upstream_status,
  querystring
LIMIT
  10

10 serangan terbaru yang diblokir pada domain tertentu

Ganti your_domain_name dengan nama domain yang sebenarnya.

matched_host: your_domain_name
and final_action: block |
SELECT
  time,
  real_client_ip,
  http_user_agent
ORDER by
  time desc
LIMIT
  10

Jumlah hari sejak serangan terakhir yang diblokir pada domain tertentu

Hasil dibulatkan ke satu tempat desimal.

matched_host: your_domain_name
and final_action: block |
SELECT
  time,
  round((to_unixtime(now())-__time__) / 86400, 1) as "days_passed",
  real_client_ip,
  http_user_agent
ORDER by
  time desc
LIMIT
  10

Tren serangan berdasarkan hari

Menggunakan date_trunc untuk mengelompokkan timestamp serangan berdasarkan hari. Untuk detail fungsi ini, lihat Fungsi tanggal dan waktu.

matched_host: your_domain_name
and final_action: block |
SELECT
  date_trunc('day', __time__) as dt,
  count(1) as PV
GROUP by
  dt
ORDER by
  dt

Rincian serangan berdasarkan negara

Menggunakan ip_to_country untuk memetakan alamat IP client ke negara. Saat real_client_ip bernilai - (proxy digunakan atau header IP tidak valid), kueri menggunakan remote_addr sebagai cadangan.

matched_host: your_domain_name
and final_action: block |
SELECT
  ip_to_country(
    if(real_client_ip = '-', remote_addr, real_client_ip)
  ) as country,
  count(1) as "Number of attacks"
GROUP by
  country

Rincian serangan berdasarkan provinsi

Menggunakan ip_to_province untuk memetakan alamat IP client ke provinsi. Untuk detail fungsi ini, lihat Fungsi IP.

matched_host: your_domain_name
and final_action: block |
SELECT
  ip_to_province(
    if(real_client_ip = '-', remote_addr, real_client_ip)
  ) as province,
  count(1) as "Number of attacks"
GROUP by
  province

Langkah selanjutnya