為網站域名開啟WAF日志采集后,您可以使用日志查詢功能對采集到的日志數據進行實時查詢與分析,并基于查詢與分析結果生成統計圖表、創建告警等。
前提條件
查詢和分析日志
操作查詢和分析結果
WAF日志服務為您提供日志分布直方圖、原始日志和統計圖表形式的展示查詢分析結果,并支持設置告警、快速查詢等操作。
- 日志分布直方圖
日志分布直方圖主要展示查詢到的日志在時間上的分布。
- 鼠標指向綠色數據塊時,可以查看該數據塊代表的時間范圍和日志命中次數。
- 單擊綠色數據塊,可以查看更細時間粒度的日志分布,同時在原始日志頁簽中同步展示指定時間范圍內的查詢結果。
- 原始日志
您可以在原始日志頁簽中,查看日志查詢結果。
- 快速分析
單擊圖標,選擇顯示Key或Key的別名,該別名可在創建索引時配置。例如host_name的別名為host,如果你選擇顯示別名,則在快速分析列表中顯示host。說明 當某字段沒有別名時,您選擇顯示別名,在快速分析列表中仍顯示字段名(Key)。
更多信息,請參見快速分析。
- 查看日志詳情
- 單擊表格,查看表格形式的日志。
- 單擊原始,查看原始形式的日志。
- 單擊圖標,復制日志。
- 單擊圖標,查看tag詳情。
- 單擊換行,關閉或開啟換行顯示日志。
- 單擊時間,開啟按時間順序顯示日志。
- 單擊圖標,可以將日志下載到本地計算機,支持直接下載、通過Cloud Shell下載、通過命令行工具下載等方式。更多信息,請參見下載日志。
- 單擊圖標,配置Tag設置、列設置、JSON設置、事件配置。
- 快速分析
- 統計圖表
您可以在統計圖表頁簽,查看可視化的查詢分析結果。您必須在語句輸入框中輸入SQL92分析語句,才可以在統計圖表頁簽查看對應的統計圖表。
- 切換圖表類型:選擇不同的圖表類型來查看分析結果。關于不同圖表類型的介紹,請參見圖表設置。
- 預覽圖表:切換圖表類型后,查看圖表預覽效果。
單擊添加到儀表盤,可以將當前圖表添加到儀表盤。單擊下載日志,可以將日志下載到本地計算機,支持直接下載、通過Cloud Shell下載、通過命令行工具下載等方式。具體操作,請參見下載日志。
- 修改統計圖表配置
操作 說明 通用配置 對統計圖表進行全局配置。例如選擇顏色方案后,整個統計圖表的顏色都基于該顏色方案進行展示。 字段配置 對單個查詢分析的結果或單個查詢分析結果中的單列數據進行個性化的可視化設置。例如選擇某個查詢分析后,再選擇顏色方案,則該查詢分析結果相關的圖形顏色基于該顏色方案進行展示。 設置交互事件 對單個查詢分析的結果或單個查詢分析結果中的單列數據進行交互設置,加深數據分析的維度。
- 日志聚類
在日志聚類頁簽,單擊開啟日志聚類,可實現在采集日志時將相似度高的日志聚合。更多信息,請參見日志聚類。
創建告警
您可以基于當前查詢與分析語句創建告警。創建告警后,日志服務將定期檢查查詢與分析結果,并在檢查結果滿足預設條件時,向您發送告警通知,實現實時的服務狀態監控。
在查詢分析頁面上,選擇設置告警。
,可為查詢分析結果設置告警。更多信息,請參見查詢與分析案例
- 以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。如果由于用戶通過代理服務器訪問或請求頭中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