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:
Mengaktifkan Log Service for WAF. Untuk petunjuk pengaturan, lihat Memulai fitur Log Service for WAF.
Lakukan kueri dan analisis log
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).
Di panel navigasi kiri, pilih Security Operations > Log Service.
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.

Di tab Log Search, buat dan jalankan kueri.
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.
(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.Tetapkan rentang waktu menggunakan pemilih waktu (berlabel 2 pada gambar).
Klik Search & Analyze (berlabel 3 pada gambar).

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.

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.

Analisis cepat
Klik ikon
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
| Action | Cara |
|---|---|
| Beralih antara tampilan tabel dan data mentah | Klik Table atau Raw Data |
| Salin entri log | Klik ikon |
| Lihat detail tag | Klik ikon |
| Aktifkan tampilan multi-baris | Klik New Line |
| Urutkan berdasarkan waktu | Klik Time |
| Unduh log | Klik ikon |
| Konfigurasi pengaturan tampilan | Klik ikon |
Graph
Tab Graph memvisualisasikan hasil analitik. Tab ini memerlukan pernyataan analitik (SQL-92) dalam kueri Anda.
| Action | Cara |
|---|---|
| Ubah jenis grafik | Pilih jenis grafik dari pemilih grafik. Untuk jenis yang tersedia, lihat Konfigurasi grafik. |
| Pratinjau grafik | Pratinjau grafik setelah Anda mengubah jenis grafik |
| Tambahkan ke dasbor | Klik Add to New Dashboard |
| Unduh log | Klik 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:
| Pengaturan | Deskripsi |
|---|---|
| General Configurations | Pengaturan global untuk grafik, seperti skema warna yang diterapkan pada semua hasil pernyataan kueri |
| Field Configuration | Pengaturan tampilan per-pernyataan-kueri atau per-kolom, seperti skema warna khusus untuk satu hasil kueri |
| Configure an interaction occurrence | Perilaku 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:
| Action | Cara |
|---|---|
| Buat notifikasi | Pilih 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 dasbor | Di tab Graph, klik Add to New Dashboard. |
| Unduh log untuk analisis offline | Klik 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.
| Field | Deskripsi | Nilai yang mungkin |
|---|---|---|
final_plugin | Fitur perlindungan yang bertindak terhadap permintaan | waf (Mesin aturan perlindungan), acl (blacklist alamat IP dan kebijakan perlindungan kustom), cc (serangan flood HTTP dan kebijakan perlindungan kustom) |
final_action | Aksi yang diambil terhadap permintaan | block, dan lainnya tergantung konfigurasi aturan |
real_client_ip | Alamat 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_addr | Alamat IP yang terhubung ke WAF | Alamat IP |
matched_host | Nama domain yang cocok dengan permintaan | String nama domain |
host | Nama domain yang diminta | String nama domain |
request_path | Path permintaan | Path string |
request_method | Metode permintaan HTTP | GET, POST, PUT, DELETE, dan sebagainya |
status | Kode status HTTP yang dikembalikan WAF ke client | Kode status HTTP |
upstream_status | Kode status HTTP yang dikembalikan server origin ke WAF | Kode status HTTP |
querystring | String kueri dari permintaan | String yang di-encode URL |
http_user_agent | User agent client | String 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
timeRincian 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 descKueri 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
timeDomain yang paling sering menjadi target serangan flood HTTP
and acl_action :block |
SELECT
count(*) as times,
host
GROUP by
host
ORDER by
times descDetail 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
1010 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
10Jumlah 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
10Tren 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
dtRincian 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
countryRincian 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
provinceLangkah selanjutnya
Field log yang didukung oleh WAF — referensi untuk semua field log yang dapat dikueri
Konfigurasi aturan notifikasi — siapkan notifikasi saat ambang batas serangan terlampaui
Unduh log — ekspor log untuk analisis offline