自動生成web服務器日誌解析規則

當前web服務器的多樣化使得訪問日誌的數據清洗變得愈來愈複雜,企業須要投入專業的數據清洗人員編寫數據清洗規則(解析規則或者解析正則),或者須要關心web服務器訪問日誌的生成規則。手寫web服務數據解析規則存在如下3個問題:(1)須要投入專業技術人才完成編寫,成本高;(2)人工書寫解析規則容易犯錯;(3)解析規則生成不可複用,新的web服務須要從新編寫。若是能自動生成web服務器的日誌,將大大提升web服務器日誌接入和數據可視化過程。基於此,袋鼠雲技術小組自研了日誌解析規則自動生成組件,適用於nginx、apcahe、iis服務器,同時兼容相似這三種服務器日誌規範的其餘web服務器。如下內容將詳細說明web日誌解析規則自動生成的過程,關鍵步驟有圖片演示。html

 

web服務器的日誌每每有着必定的規範,好比nginx的日誌規範如圖所示,參見這裏nginx

WEBRESOURCE7485e808caae471fcd9d6f23e9ba8

如上設置,日誌內容將嚴格按照設定的字段順序打印,缺失的字段會適用佔位符,如符號‘-‘,各字段被分隔符依次分開。web

如下內容的基本原理是:瀏覽器

(1)日誌取樣,獲取行日誌分割符,把日誌按照分隔符拆分;服務器

(2)依次解析分割後的字段,生成字段類型序列;3d

(3)按照字段類型和順序,依次給字段命名,生成解析規則;日誌

以上過程的流程圖如圖所示:htm

WEBRESOURCE6e9bece187f81edcc943452f293de

樣例演示圖片

使用如上的方法生成下圖所示的nginx樣例日誌的解析規則:rem

WEBRESOURCEae910dd33e4c01aefa93957c3faab

 

 

首先進行字段拆分,按照字段順序生成正則序列,以下圖所示,樣例日誌中依次包含IP、時間、URL,數字和用戶瀏覽器標識useragent字段;

WEBRESOURCE4392963022c11faf4cc6a29b82089

 

而後按照正則序列對字段進行映射,樣例日誌是nginx日誌,nginx日誌的默認類型和字段映射關係以下:

IP->remoteAddr,

TIMESTAMP->timeLocal,

URL->request,

NUM1->status,

NUM2->bodybytesSend,

USERAGENT->useragent;

映射以後生成默認解析規則,結果以下圖所示,生成結束。

而後對生成的解析規則進行多輪檢驗並重復以上過程,最終生成匹配度最高的解析規則。

相關文章
相關標籤/搜索