為網站網域名稱開啟WAF日誌採集後,您可以使用日誌查詢功能對採集到的日誌資料進行即時查詢與分析,並基於查詢與分析結果產生統計圖表、建立警示等。
前提條件
已開通WAFLog Service。具體操作,請參見快速使用WAFLog Service。查詢和分析日誌
登入Web Application Firewall控制台,在頂部功能表列,選擇WAF執行個體的資源群組和地區(中國內地、非中國內地)。
在左側導覽列,選擇 。
- 從網域名稱下拉式清單中選擇要開啟日誌採集的網站網域名稱,開啟右側的狀態開關,開啟該網站網域名稱的日誌採集功能。網域名稱下拉式清單(圖示①)僅包含已接入WAF防護的網站網域名稱。如果您還未將網站網域名稱接入WAF防護,請先完成網站接入。具體操作,請參見使用教程。
- 在日誌查詢頁簽,通過查詢與分析語句,對WAF日誌資料進行查詢與分析。
- 在語句輸入框(圖示①),輸入查詢語句。查詢語句採用阿里雲Log Service專用文法,關於該文法的詳細介紹,請參見查詢文法。查詢語句中使用WAF日誌包含的欄位作為查詢欄位,關於支援使用的查詢欄位,請參見WAF日誌欄位。如果您不瞭解日誌查詢文法,推薦您使用進階搜尋。您只需在語句輸入框上方展開進階搜尋,設定搜尋條件並單擊搜尋,語句輸入框即可自動產生與搜尋條件匹配的日誌查詢語句。下表描述了進階搜尋支援設定的搜尋條件。
搜尋條件 說明 IP 發起請求的用戶端的IP地址。 Trace ID WAF為用戶端請求產生的唯一標識。WAF向用戶端返回攔截頁面或者滑塊驗證響應時會提供該ID,用於問題分析與故障排查。 Rule ID 請求命中的WAF防護規則ID。您可以在安全報表或者 頁面,擷取規則ID資訊。伺服器響應狀態代碼 來源站點伺服器響應WAF回源請求的HTTP狀態代碼。 WAF返回用戶端響應碼 WAF響應用戶端請求的HTTP狀態代碼。 攔截規則 請求命中的WAF防護規則的類型。關於WAF防護模組的介紹及不同模組防護規則的配置方法,請參見概述。 - 如果您需要對查詢結果進行計算和統計分析,可以在語句輸入框(圖示①)已輸入的查詢語句後,輸入分析語句。如果您只需要查詢滿足條件的日誌資料,可跳過該步驟。分析語句和查詢語句間使用豎線(|)分隔。分析語句採用標準的SQL92文法,關於分析語句的更多介紹,請參見分析概述。
- 通過時間選取器(圖示②),修改日誌查詢時間範圍。
- 單擊查詢/分析(圖示③)。
更多關於日誌查詢與分析的案例,請參見查詢與分析案例。 - 在語句輸入框(圖示①),輸入查詢語句。
操作查詢和分析結果
WAFLog Service為您提供日誌分布長條圖、原始日誌和統計圖表形式的展示查詢分析結果,並支援設定警示、快速查詢等操作。
- 日誌分布長條圖 日誌分布長條圖主要展示查詢到的日誌在時間上的分布。
- 滑鼠指向綠色資料區塊時,可以查看該資料區塊代表的時間範圍和日誌叫用次數。
- 單擊綠色資料區塊,可以查看更細時間粒紋的日誌分布,同時在原始日誌頁簽中同步展示指定時間範圍內的查詢結果。
- 原始日誌 您可以在原始日誌頁簽中,查看日誌查詢結果。
- 快速分析單擊表徵圖,選擇顯示Key或Key的別名,該別名可在建立索引時配置。例如host_name的別名為host,如果你選擇顯示別名,則在快速分析列表中顯示host。說明 當某欄位沒有別名時,您選擇顯示別名,在快速分析列表中仍顯示欄位名(Key)。
更多資訊,請參見欄位設定。
- 查看日誌詳情
- 單擊表格,查看錶格形式的日誌。
- 單擊原始,查看原始形式的日誌。
- 單擊表徵圖,複製日誌。
- 單擊表徵圖,查看tag詳情。
- 單擊換行,關閉或開啟換行顯示日誌。
- 單擊時間,開啟按時間順序顯示日誌。
- 單擊表徵圖,可以將日誌下載到本機電腦,支援直接下載、通過Cloud Shell下載、通過命令列工具下載等方式。更多資訊,請參見下載日誌。
- 單擊表徵圖,配置Tag設定、列設定、JSON設定、事件配置。
- 快速分析
- 統計圖表 您可以在統計圖表頁簽,查看可視化的查詢分析結果。您必須在語句輸入框中輸入SQL92分析語句,才可以在統計圖表頁簽查看對應的統計圖表。
- 切換圖表類型:選擇不同的圖表類型來查看分析結果。關於不同圖表類型的介紹,請參見圖表設定。
- 預覽圖表:切換圖表類型後,查看圖表預覽效果。
單擊添加到儀錶盤,可以將當前圖表添加到儀錶盤。單擊下載日誌,可以將日誌下載到本機電腦,支援直接下載、通過Cloud Shell下載、通過命令列工具下載等方式。具體操作,請參見下載日誌。
- 修改統計圖表配置
操作 說明 通用配置 對統計圖表進行全域配置。例如選擇顏色方案後,整個統計圖表的顏色都基於該顏色方案進行展示。 欄位配置 對單個查詢分析的結果或單個查詢分析結果中的單列資料進行個人化的可視化設定。例如選擇某個查詢分析後,再選擇顏色方案,則該查詢分析結果相關的圖形顏色基於該顏色方案進行展示。 設定互動事件 對單個查詢分析的結果或單個查詢分析結果中的單列資料進行互動設定,加深資料分析的維度。
- 日誌聚類
在日誌聚類頁簽,單擊開啟日誌聚類,可實現在採集日誌時將相似性高的日誌彙總。更多資訊,請參見日誌聚類。
建立警示
您可以基於當前查詢與分析語句建立警示。建立警示後,Log Service將定期檢查查詢與分析結果,並在檢查結果滿足預設條件時,向您發送警示通知,實現即時的服務狀態監控。
在查詢分析頁面上,選擇設定警示。
,可為查詢分析結果設定警示。更多資訊,請參見查詢與分析案例
- 以15分鐘為步長,分析在整點時刻由不同WAF防護模組攔截的攻擊請求的數量,展示時間(time)、WAF規則防護引擎攔截請求數(wafmodule)、IP黑名單及自訂防護策略(ACL存取控制)攔截請求數(aclmodule)、CC安全防護及自訂防護策略(CC攻擊防護)攔截請求數(httpfloodmodule)。
* | 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
- 分析觸發了WAF最終防護動作的防護模組類型(final_plugin)的分布情況,展示叫用次數(times)、被請求網域名稱(host)和最終防護模組(final_plugin)。
* | SELECT count(*) as times, host, final_plugin GROUP by host, final_plugin ORDER by times desc
- 以15分鐘為步長,分析整點時刻的QPS,展示時間(time)和QPS(QPS)。
* | SELECT time_series(__time__, '15m', '%H:%i', '0') as time, count(*) / 900 as QPS GROUP by time ORDER by time
- 分析受CC攻擊次數最多的網域名稱,展示CC攻擊攔截次數(times)和被訪問網域名稱(host)。
* and acl_action :block | SELECT count(*) as times, host GROUP by host ORDER by times desc
- 以秒為步長,分析網站請求日誌的詳情,展示時間(time)、被訪問網域名稱(host)、被訪問路徑(request_path)、要求方法(request_method)、WAF響應用戶端請求的HTTP狀態代碼(status)、來源站點響應WAF回源請求的HTTP狀態代碼(upstream_status)、查詢字串(querystring)。
* | SELECT date_format(date_trunc('second', __time__), '%H:%i:%s') as time, host, request_path, request_method, status, upstream_status, querystring LIMIT 10
- 查詢網站(your_domain_name)遭受的最近10條攻擊請求記錄,展示請求發起時間(time)、真實用戶端IP(real_client_ip)和用戶端類型(http_user_agent)。
matched_host: your_domain_name and final_action: block | SELECT time, real_client_ip, http_user_agent ORDER by time desc LIMIT 10
- 分析網站(your_domain_name)遭受的攻擊請求被WAF攔截後經過的天數(days_passed,保留1位小數)。
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
- 分析網站(your_domain_name)遭受的攻擊請求次數按天的變化趨勢。
date_trunc函數用於對目前時間進行按天對齊分組。關於該函數的更多資訊,請參見日期和時間函數。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
- 分析網站(your_domain_name)遭受的攻擊請求的來源國家(country)分布。
WAF日誌中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 "攻擊次數" GROUP by country
real_client_ip
欄位表示真實用戶端IP。如果由於使用者通過Proxy 伺服器訪問或要求標頭中IP欄位有誤等原因無法擷取真實用戶端IP(real_client_ip
取值為-
),也可以直接使用remote_addr
欄位(表示直連用戶端IP)作為真實用戶端IP。 - 分析網站(your_domain_name)遭受的攻擊請求的來源省份(province)分布。
ip_to_province函數用於擷取真實用戶端IP對應的省份資訊。關於該函數的更多資訊,請參見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 "攻擊次數" GROUP by province