Grafana 事件檢視器監控面板(搭配 WAF ModSecurity 異常監控事件進行設定)
這篇文章我要記錄一下自己再用的幾個監控面板,但在開始前必須要先完成【Windows ModSecurity WAF】、【Grafana + Loki + Promtail 安裝紀錄】這兩篇的設定才可以繼續進行後續的面板設定。
事件明細(1)
- 新增 Visualizations 類型選擇 Logs,並選取底下的查詢條件,目的僅顯示異常的紀錄。
- logsource = WindowsEventlog
- Source = ModSecurity
- Level = 2,僅顯示嚴重的項目,若要全部出現也可不設定此項目。
- 資料維度轉換,目的是要排除不想看到的資料內容,僅留下想看到的資訊。
- Extract fields,將欄位 Line 的 Log 明細使用 key+values 欄位攤開。
- Organize fields,根據需求顯示需要的欄位,我的範例是僅保留 level、eventRecordID、Time、event_data。
- 設定面板設定,根據自己的需求調整即可。
- Title : 事件明細。
- 完成設定如下圖所示。
事件明細(2)
- 新增 Visualizations 類型選擇 Logs,查詢條件同事件明細(1)。
- 資料維度轉換,目的是要排除不想看到的資料內容,僅留下想看到的資訊。
- Extract fields,將欄位 Line 的 Log 明細欄位使用 JSON 攤開,並且指定欄位
- eventRecordID
- event_data
- level,給定別名 Level,不這們做會導致 Logs 的事件顏色消失。
- Organize fields,根據需求顯示需要的欄位,我的範例是僅保留 Level、Time、event_data、eventRecordID、Line。
- 設定面板設定,根據自己的需求調整即可。
- Title : 事件明細
- Logs → Time : 啟用
- Logs → Wrap lines : 啟用
- Logs → Enable log details : 啟用
- 完成設定如下圖所示。
事件明細(3)
- 新增 Visualizations 類型選擇 Time series,查詢條件同上即可,目的為了視覺化原始請求。
- 直接在查詢頁面進行彙總設定。
- 設定面板設定,根據自己的需求調整即可。
- Title : 事件明細
- Axis → Label : 總次數
- Standard options -> Max : 20
- Thresholds : 10 紅色
- Thresholds -> Show thresholds : As lines
- 完成的設定如下圖所示。
每分鐘違規統計
- 新增 Visualizations 類型選擇 Time series,查詢條件如下,目的是為了彙總每分鐘的異常數據。
- logsource = WindowsEventlog
- Source = ModSecurity
- Level = 2
- 資料維度轉換。
- Formate time,設定 yyyy-MM-DD HH:mm,目的是為了去除日期的秒數。
- Convert field type,Time series 支援的欄位必須是日期格式,所以要把上面那個轉換還原。
- Group by,將每分鐘的請求進行彙總。
- 設定面板設定,根據自己的需求調整即可。
- Title : 每分鐘違規統計
- Axis → Label : 總次數
- Standard options → Max : 20
- Standard options → Display name : 攻擊次數
- Thresholds : 10 紅色
- Thresholds → Show thresholds : As lines
- 完成的設定如下圖所示。
各事件儀錶板
- 新增 Visualizations 類型選擇 Gauge,並選取底下的查詢條件,目的僅顯示異常的紀錄
- logsource = WindowsEventlog
- Source = ModSecurity
- Level = 2
- 資料維度轉換,目的是要排除不想看到的資料內容,僅留下想看到的資訊。
- Extract fields,將欄位 labels 轉成 JSON 格式,並取代所有欄位 & 保留時間格式。
- Group by,將請求進行彙總。
- 設定面板設定,根據自己的需求調整即可。
- Title : 攻擊事件(Max 200)
- Standard options → Max : 200
- Standard options → Display name : 攻擊(2)
- Value mappings : 2 → 攻擊(2) & 3 → 警告(3) & 一般(4)
- Thresholds
- 完成的設定如下圖所示。
疑難雜症排除
設定太多 Panel 後,會顯示 too many outstanding requests 的錯誤。
- 此原因是因為 Loki 支援 Multi Tenant 所做的限制,確保每個租戶能公平地使用運算資源,詳細說明可參閱這個部落格的說明。
- 解決辦法,調整 loki-local-config.yaml,拉大各租戶最大請求數量,併重新啟動 Loki,但要小心伺服器是否能承受。
[querier: # 允許的最大並發查詢數 (Default:10) max_concurrent: 2048 query_scheduler: # 每個租戶的最大未完成請求數 (Default:100) max_outstanding_requests_per_tenant: 2048
留言
張貼留言
您好,我是 Lawrence,這裡是我的開發筆記的網誌,如果你對我的文章有任何疑問或者有錯誤的話,歡迎留言讓我知道。