Scala解析Nginx日誌為物件

2021-10-02 04:31:48 字數 940 閱讀 8567

/**

* nginx日誌資料轉換類

*/object nginxlogparser) (\d+) (\".*?\") (\".*?\")""".r

def parselog2line(log: string): accesslog =

if (log.isempty)

val m = logs.get

new accesslog(m.group(1), m.group(2), m.group(3), m.group(4),m.group(5), m.group(6).toint,

m.group(7).tolong, m.group(8), m.group(9))

}else

} def main(args: array[string])

}

/**

* 日誌檔案物件

*/case class accesslog(

ip: string, //裝置使用者的真實ip位址

clientident: string, //使用者標識

userid: string, //使用者

timestamp: string, //訪問日期時間

request: string, //請求資訊,get/post,mac值等

responsecode: int, //請求狀態 200成功,304靜態載入

contentsize: long, //返回檔案的大小

referrer: string, //跳轉**

ua: string //ua資訊

// forward:string //跳轉頁面

) extends serializable

Scala解析Nginx日誌為物件

nginx日誌資料轉換類 object nginxlogparser d r def parselog2line log string accesslog if log.isempty val m logs.get new accesslog m.group 1 m.group 2 m.group ...

Nginx 日誌解析提取

通常我們會收集 nginx 的 access log 然後對日誌進行解析,從而得到日誌中的每個字段資料,解析日誌需要使用到正規表示式,假設 nginx log format 如下 request time 則提取日誌內容的正規表示式為 s s s s s s s d s d s s s s s s ...

nginx日誌解析輸出elasticstack

需求 實時讀取nginx access日誌經過採集,快取,最終匯入到elasticsearch平台進行展示查詢。由於nginx日誌源主機與elasticsearch平台在不同的內網網段內,所以沒有採用通常直接的logstash讀取並解析然後直接輸出到elasticsearch。而是在日誌源執行log...