Nginx日誌配置處理

2021-09-01 15:46:46 字數 2627 閱讀 1168

一、介紹日誌檔案格式

日誌檔案的記錄是有格式的,我們可以按系統預設的格式去記錄,也可以按我們自定義的格式去記錄。可以用log_format指令來設定nginx伺服器的日誌檔案的記錄格式。

二、日誌格式說明

'"$http_user_agent" "$http_x_forwarded_for"';main:日誌格式

$remote_addr:客戶端ip位址

$remote_user:客戶端使用者名稱

$request:請求的url

$status:請求狀態(比如:正在請求中,請求完成等狀態)

$body_bytes_sent:傳送給客戶端的位元組數(服務端返回給客戶端資料的大小)

$http_referer:原網頁的url(從哪個url開啟的所訪問的頁面)

$http_user_agent:客戶端的瀏覽器記錄的資訊(比如是google瀏覽器,那麼就記錄google瀏覽器的型別等基本資訊)

$http_x_forwarded_for:客戶端ip位址(類似於$remote_addr)

通常情況下用以上配置即可,可以將main換成combined(預設的日誌格式),其他不變即可。

三、nginx日誌檔案儲存路徑配置

1、說明

日誌檔案在記錄的時候,需要儲存到磁碟上,儲存的路徑是可配置的,通過access_log指令來配置nginx的日誌檔案的儲存路徑。

2、修改配置

access_log logs/access.log main;

logs/access.log:這個為日誌檔案的存放路徑,從安裝目錄開始,意思絕對路徑為:/usr/local/nginx/logs/access.log

main:為日誌格式,通常為combined

若不想記錄nginx的日誌,則將access_log路徑配成off即可,如下:

access_log off;

四、nginx日誌檔案的切割

1、說明:

為了使nginx的日誌檔案儲存更合理、有序,我們需要將日誌檔案進行分開儲存,比如我們可以按時間來分開,今天的日誌檔案儲存到乙個檔案中,明天的日誌檔案則儲存到另乙個新的檔案中等等。這時候就需要用到了nginx的日誌檔案的切割。

有兩種方式:

1、手動進行切割

步驟:分兩步驟。

(1)進入logs目錄。執行命令

mv access.log ***(隨便起個名).log

意思是說將以前的日誌檔案重新命名為乙個新的名字的日誌檔案。

(2)執行命令

kill -usr1 主程序號(需要先用ps -ef|grep nginx命令找到master的程序號)

kill -usr1 主程序號 這個命令在訊號控制那章節有提到。進行日誌切割的命令。

操作完(1)(2)兩步驟後,在logs目錄下ls一下,會發現又自動多出了乙個日誌檔案(這個日誌檔案的命名**於nginx.conf檔案裡的access_log的路徑),並且裡面無內容。這個檔案就是切割出來的新檔案,再有日誌會往這裡面寫,而不會操作老日誌檔案。

2、自動進行切割

步驟:(1)首先建立個sh檔案(稱為批處理日誌檔案),進入nginx的logs目錄執行命令

touch cutlog.sh(檔名自定義,字尾.sh即可)

d=$(date +%y%m%d)

logs_path=/usr/local/nginx/logs

mv /usr/local/nginx/logs/access.log /$/$.log

kill -usr1 $(cat /usr/local/nginx/nginx.pid)

說明:

d=$(date +%y%m%d),宣告個變數,名為d(自定義),值為date(linux自帶的,類似於函式,用於獲取當前時間,並且格式為年月日)

$:引用上面變數名為d的變數

$(cat /usr/local/nginx/nginx.pid):cat命令意思是檢視。nginx.pid:儲存的是nginx的主程序號。連起來的意思就是檢視nginx主程序號,帶上$(xx)就是說拿到xx

(3)定時執行某個檔案,輸入如下命令:(注意:執行crontab命令需要先用yum進行安裝crontab,否則會出現command not found)

crontab -e

含義:在每天23點59分定時執行cutlog.sh檔案,這樣就實現了每天定時切割日誌檔案了。

原理:只是將手動切割寫成個指令碼。

如有需要每隔1個月就備份日誌到其他地方並刪除原位置的日誌等類似需求都可以寫個shell指令碼,然後用linux的crontab來定時執行。

文章出處:

Nginx日誌處理

nginx日誌切割一般的做法是 系統設定每天00 00執行指令碼,mv後重新開啟日誌檔案。但在切割後的日誌中,除了昨天的日誌外,還有少量的當天的日誌,例如,0點之前是10號,那麼切割後會有少量11號的日誌,因為執行mv是需要時間的,即使是很短,期間會有少量日誌寫進去。下面是兩個nginx日誌處理指令...

nginx日誌處理

今日運維同事發現nginx伺服器磁碟使用率很高,經過排查主要有2個大檔案 nginx logs 目錄下的access.log檔案 nginx 目錄下的on 檔案 client max body size 60m 上傳檔案大小設定 access log on 訪問日誌 access.log檔案,我記得...

Nginx日誌配置

一,日誌格式 http referer http user agent 此日誌格式為,ip不僅記錄 的ip還記錄遠端客戶端真實ip。remote addr與 http x forwarded for 用以記錄客戶端ip位址,乙個記錄 ip,乙個記錄真實ip remote user 用以記錄客戶端使用...