如何設定nginx日誌滾動?

2021-10-09 00:08:41 字數 1907 閱讀 2266

如何設定nginx日誌滾動?

nginx日誌檔案如果不做處理,則會一直追加,變得非常大,不利於處理和分析,因此,必須進行日誌滾動。

方案使用logrotate實現

logrotate介紹

通過 man logrotate,可以檢視logrotate的幫助文件,這是學習的最佳方式

logrotate是linux內建的工具,其作用在於簡化日誌的管理,能夠實現日誌的自動滾動,可以支援定時滾動和按大小滾動

logrotate的命令格式如下

logrotate [-dv]

[-f|--force]

[-s|--state file] config_file

在/etc/cron.daily目錄下配置了logrotate執行的指令碼,也就是說,logrotate預設每天自動執行一次

#!/bin/sh

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

exitvalue=

$?if

[$exitvalue

!= 0 ]

;then

/usr/bin/logger -t logrotate "alert exited abnormally with [$exitvalue]"

fiexit 0

# 上面的logger是linux的系統呼叫,用於列印系統日誌systemlog

在/etc/logrotate.conf檔案中,寫了logrotate的配置

預設情況下,系統已經配置好一天執行一次,除非手動強制觸發,觸發的命令如下

/usr/sbin/logrotate /etc/logrotate.conf --force

logrotate管理日誌的機制

在logrotate的配置檔案/etc/logrotate.conf中配置了logrotate需要處理的日誌檔案的配置檔案。將應用的日誌滾動資訊配置到指定的目錄下,logrotate會讀取該目錄下所有的配置檔案,按照配置處理日誌。

# rpm packages drop log rotation information into this directory

include /etc/logrotate.d

# rpm安裝包將日誌滾動資訊配置到上述目錄,logrotate讀取其中的配置資訊,按照配置處理日誌檔案

如何用logrotate管理nginx的日誌

在/etc/logrotate.d建立乙個名為nginx的檔案,用於配置nginx日誌滾動資訊,樣例如下。如果是用yum安裝的nginx,會自動生成該檔案。

# 管理的日誌檔案匹配,*log代表所有以log結尾的日誌

/var/log/nginx/*log

配置完成後,一般不需要管,就會每天自動rotate日誌,如果要校驗是否正確,執行以下命令即可。如果生成了新的日誌檔案,有了歷史壓縮包,並且新日誌檔案有內容寫入,則說明成功。

/usr/sbin/logrotate /etc/logrotate.conf --force
易錯點:

手動觸發rotate後,新檔案沒有日誌寫入,此時,很可能是pid檔案的位置配錯了,nginx還在往老檔案中寫。

注意事項

在create配置行中指定的使用者需要建立或者已存在

在滾動配置檔案中第一行,是日誌檔案的路徑,必須和實際路徑一致

在滾動配置檔案的postrotate配置項的指令碼中,nginx.pid檔案的位置必須和實際一致

Nginx日誌滾動指令碼

nginx日誌滾動可分為3步 將access.log重新命名成形如access 202006161113.log 通過kill命令向nginx的程序傳送 usr1訊號,通知nginx重新建立access.log檔案 刪除修改時間比指定時間更早的歷史日誌 示例指令碼 bin bash rename a...

nginx產生滾動日誌檔案

描述 linux日誌檔案如果不定期清理,會填滿整個磁碟。可以使用 logrotate 來管理linux日誌檔案,它可以實現日誌的自動滾動,日誌歸檔等功能。下面是nginx日誌的lograte處理方式,本例中的截圖的nginx日誌指向到 mnt nginx logs 目錄下。lograte服務配置如下...

nginx的日誌 log format設定

nginx的日誌包含了兩類,一類是error.log,一類是access.log。1.error.log的設定 error log的預設值 error log logs error.log error error log的語法格式及引數語法說明如下 error log 關鍵字 日誌檔案 錯誤日誌級別...