反爬蟲監控系統-實現思路

反爬蟲監控系統

思路:

數據源

  1. nginx 獲取客戶端的請求 lua腳本收集nginx獲取的請求的數據推送到kafka(ps:lua腳本在收集數據時採用’$CS#'進行拼接)
    數據處理模塊:

數據處理

  1. 數據切分:獲取kafka的數據,按照’#CS#'進行切分,並封裝到AccessLog對象中(其中的jessionId和userId需要從http_cookie中單獨提取出來)
  2. 鏈路統計:1.計算每臺nginx的數據量->根據server_addr直接進行統計 2.統計活躍連接數->由於活躍連接數時遞增的,只需要取出最後一個值即可。reduceByKey((x,y)=>y),
    最後需要將結果存入到redis中,並設置過期時間=24h
  3. 數據清洗:獲取mysql的過濾規則(過濾掉請求中不需要的文件,例如jpg,gif,png),進行廣播。通過在redis中設置flag,對數據庫的規則實時監控,
    當規則變化時,標誌發生變化,去更新規則,重新廣播。將從kafka獲取的數據進行規則匹配,過濾掉規則內的文件
  4. 數據脫敏:本項目中涉及的敏感數據爲:身份證,手機號。從過濾後的數據中對http_cookie進行
    正則匹配,格式爲 ‘=phone;’ 和 ‘=IdCard;’ 進行md5加密,進行替換
  5. 數據分類:根據需求,數據分爲 國內查詢(0,0),國際查詢(1,0),國內預定(0,1),國際預定(1,1)
    獲取數據庫中的分類規則,分別獲取到了四種規則,封裝到一個Map進行廣播
    通過在redis設置flag,實時監控數據庫規則變化
    通過request對規則進行匹配,打上對應的標籤 封裝到 RequestType(代表查詢預定標籤)
    通過對http_referer中的時間個數的判斷,打標籤(單程-> 0,往返-> 1)
  6. 數據解析:獲取數據庫中的解析規則(查詢規則和預定規則),封裝到一個Map廣播並實時監控,根據上述打的對應的標籤對規則進行匹配,執行相應的解析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章