純手工玩轉 Nginx 日誌

2021-09-23 16:27:30 字數 1435 閱讀 3918

nginx 日誌對於大部分人來說是個未被發掘的寶藏,總結之前做某日誌分析系統的經驗,和大家分享一下 nginx 日誌的純手工分析方式。

nginx 日誌相關配置有 2 個地方:access_log 和 log_format 。

預設的格式:

;相信大部分用過 nginx 的人對預設 nginx 日誌格式配置都很熟悉,對日誌的內容也很熟悉。但是預設配置和格式雖然可讀,但是難以計算。

nginx 日誌刷盤相關策略可配置:

比如,設定 buffer,buffer 滿 32k 才刷盤;假如 buffer 不滿 5s 鐘強制刷盤的配置如下:

access_log 

/data

/logs

/nginx

-access

.log buffer

=32k

flush=5s

;這決定了是否實時看到日誌以及日誌對磁碟 io 的影響。

nginx 日誌能夠記錄的變數還有很多沒出現在預設配置中:

比如:nginx 的預設格式不可計算,需要想辦法轉換成可計算格式,比如用控制字元 ^a (mac 下 ctrl+v ctrl+a 打出)分割每個字段。

log_format 的格式可以變成這樣:

;這樣之後就通過常見的 linux 命令列工具進行分析了:

總結 照著這個思路可以做很多其他分析,比如 ua 最多的訪問;訪問頻率最高的 ip;請求耗時分析;請求返回包大小分析;等等。

這就是乙個大型 web 日誌分析系統的原型,這樣的格式也是非常方便進行後續大規模 batching 和 streaming 計算。

原文發布時間為:2015-07-08

純手工離線版安裝GCC

有時候問題環境linux中需要安裝除錯工具gdb,但是原始碼安裝的話需要安裝gcc,安裝gcc又需要安裝各種庫,而且環境也沒有聯網,非常麻煩,先親測自創乙個手工離線安裝gcc的方法,mark下,已供分享。當然應該還有手工離線安裝gdb的方法,有人會的話也可以分享出來啊 1 環境準備 乙個有gcc的l...

svn的管理與維護要點 純手工編寫

由於在公司要維護阿里雲的linux伺服器,我們的svn伺服器就安在阿里雲上面。所以經常會涉及到svn的維護操作。離職的時候編寫交接文件,剛好有充足的時間寫一篇說明介紹,此說明純原創,不是從網上覆制,手工根據個人理解寫出來的。這裡用作備忘,網路形式就是方便查閱。1 如何建立乙個新的版本庫 如果需要新開...

一次簡單的純手工顯錯注入

注 這裡還要利用到了乙個函式group concat 意思是將查詢的結果併排 拼接一起展示,不然輸出點只能顯示乙個表名或者字段 1.利用and1 1 顯示正常,and 1 2 顯示錯誤頁面。證明有注入點 2。order by 語句查詢有幾個字段,為了後面使用聯合查詢 例如,order by 4 出錯...