nginx日誌模組及日誌定時切割

2021-08-20 20:04:57 字數 2696 閱讀 2097

ngx_http_log_module:定義日誌格式,並且以指定的格式儲存。

句法: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];

access_log off;

預設: access_log logs / access.log合併;

語境: http,server,location,if in location,limit_except

1:[buffer=size]

設定緩衝日誌寫入的路徑,格式和配置。

2:gzip[=level]

如果使用該gzip引數,則在寫入檔案之前,緩衝的資料將被壓縮。壓縮級別可以設定在1(最快,較少壓縮)和9(最慢,最佳壓縮)之間。預設情況下,緩衝區大小等於64k位元組,壓縮級別設定為1.由於資料是以原子塊壓縮的,因此日誌檔案可以隨時解壓或由「zcat」 讀取。

3:[flush=time]

儲存在快取區中的最長時間。

指定日誌格式

';2:remote_user 記錄客戶端使用者名稱

3:request 記錄請求的url和http協議

4:status 記錄請求狀態

5:body_bytes_sent 傳送給客戶端的位元組數,不包括響應頭的大小; 該變數與apache模組mod_log_config裡的「%b」引數相容。

6:bytes_sent 傳送給客戶端的總位元組數。

7:connection 連線的序列號。

8:connection_requests 當前通過乙個連線獲得的請求數量。

9:msec 日誌寫入時間。單位為秒,精度是毫秒。

10:pipe 如果請求是通過http流水線(pipelined)傳送,pipe值為「p」,否則為「.」。

11:http_referer 記錄從哪個頁面鏈結訪問過來的

12:http_user_agent 記錄客戶端瀏覽器相關資訊

13:request_length 請求的長度(包括請求行,請求頭和請求正文)。

14:request_time 請求處理時間,單位為秒,精度毫秒; 從讀入客戶端的第乙個位元組開始,直到把最後乙個字元傳送給客戶端後進行日誌寫入為止。

15:time_iso8601 iso8601標準格式下的本地時間。

16:time_local 通用日誌格式下的本地時間。

句法: open_log_file_cache max=n [inactive=time] [min_uses=n] [valid=time];

open_log_file_cache off;

預設:

open_log_file_cache off;

語境: http,server,location

作用:定義乙個快取,用於儲存名稱中包含變數的常用日誌的檔案描述符。該指令具有以下引數:

max:設定快取中描述符的最大數量; 如果快取變滿,則最近最少使用(lru)描述符關閉inactive:設定在此時間之後如果沒有訪問時快取的描述符被關閉的時間; 預設情況下為10秒min_uses:inactive引數定義的時間內設定檔案使用的最小數量,以使描述符在快取中保持開啟狀態; 預設情況下,1valid:設定應檢查檔案是否仍然存在同名的時間; 預設情況下為60秒off:禁用快取

用法示例:

open_log_file_cache max = 1000 inactive = 20s valid = 1m min_uses = 2
1. 定義日誌輪滾策略# vim nginx-log-rotate

/data/weblogs/*.log
[warning]/data/weblogs/*.log使用萬用字元時,/data/weblogs/目錄下的所有匹配到的日誌檔案都將切割。如果要切割特定日誌檔案,就指定到該檔案。[/warning]

2. 設定計畫任務

59 23 * * * root ( /usr/sbin/logrotate -f /path/to/nginx-log-rotate)
這樣每天23點59分鐘執行日誌切割。

nginx定時備份日誌

思路 用shell指令碼加linux定時任務來備份日誌 首先在進入nginx目錄 cd usr local nginx 建立乙個logdata目錄以後的指令碼和備份的日誌都放在這裡 mkdir logdata進入logdata目錄編輯建立建立乙個runlog.shshell指令碼 cd logdat...

Nginx日誌定時清理

有一天忽然發現公司公網應用登入頁無法載入了,趕緊登入伺服器上排查,df h之後發現磁碟占用達100 經排查發現nginx日誌檔案為28g。直接rm rf 28g access.log,然而應用依然沒有反應,後想到應該是只刪除了日誌檔案,但是並沒有釋放空間,nginx s reload了一下,果然磁碟...

nginx 日誌切割定時

1.安裝定時任務 yum install crontabs 1 usr local nginx sbin cut my log.sh 3.重啟定時任務 service crond restart 附 常用定時任務命令 service crond start 啟動服務 service crond st...