nginx日誌詳解和日誌切割

2021-07-22 17:36:34 字數 1533 閱讀 6335

我們觀察nginx的server段,可以看到如下類似資訊

#access_log  logs/host.access.

log main;

這說明 該server, 它的訪問日誌的檔案是 logs/host.access.log ,使用的 格式」main」格式.除了main格式,你可以自定義其他格式.

main格式是什麼?

main格式是我們定義好一種日誌的格式,並起個名字,便於引用。以上面的例子, main型別的日誌,記錄的 remote_addr…. http_x_forwarded_for等選 項.

日誌格式 是指記錄哪些選項

預設的日誌格式: main

如預設的main日誌格式,記錄這麼幾項

遠端ip- 遠端使用者/使用者時間 請求方法(如get/post) 請求體body度referer**資訊

http-user-agent使用者**/蜘蛛 ,被**的請求的原始ip

http_x_forwarded_for:在經過**時,**把你的本來ip加在此頭資訊中,傳輸你的原始ip

宣告乙個獨特的log_format並命名

nginx允許針對不同的server做不同的log ,(有的web伺服器不支援,如lighttp)

實際應用:shell+定時任務+nginx訊號管理,完成日誌按日期儲存

分析思路: 凌晨00:00:01,把昨天的日誌重新命名,放在相應的目錄下 再usr1資訊號控制nginx重新生成新的日誌檔案

shell指令碼:

#!/bin/bash

base_path='/usr/local/nginx/logs'

log_path=$(date -d yesterday +"%y%m")

day=$(date -d yesterday +"%d")

mkdir -p $base_path/$log_path

mv $base_path/access.log $base_path/$log_path/access_$day.log

#echo $base_path/$log_path/access_$day.log

kill -usr1 `cat /usr/local/nginx/logs/nginx.pid`

contrab任務

01

00 * * * /***/path

/b.sh 每天0時1分(建議在02-04點之間,系統負載小)

nginx日誌切割詳解

日誌的關鍵性就不用多說了,對於 的日誌來說,如果 訪問量較大,每天產生的日誌也是非常龐大的,nginx預設都是將日誌寫入到指定的日誌檔案中,如果日誌檔案變得非常大,那麼自然的寫入日誌就較慢,如果我們需要分析日誌,對於幾百兆或者幾g的檔案,分析起來也很不方便,這裡我採用的是系統自帶日誌輪詢logrot...

NGINX訪問日誌和日誌切割

當我們訪問nginx服務時,nginx會記錄日誌,nginx日誌分兩種,一種是訪問日誌,一種是錯誤日誌,訪問日誌記錄在 access.log 檔案中,錯誤日誌記錄在 error.log 檔案中 編譯安裝了nginx,預設情況下,access.log日誌會放在nginx安裝路徑的logs目錄中 roo...

nginx日誌切割

web 訪問日誌 access log 記錄了所有外部客戶端對web伺服器的訪問行為,包含了客戶端ip,訪問日期,訪問的url資源,伺服器返回的http狀態碼等重要資訊。一條典型的web訪問日誌如下 規劃 1 要解決問題 2 nignx沒有自動分開檔案儲存日誌的機制。由於nginx它不會幫你自動分檔...