Linux環(huán)境下使用logrotate工具實(shí)現(xiàn)nginx日志切割
一. 前提背景及需求
Nginx運(yùn)行日志默認(rèn)保存在Nginx安裝目錄下的 /usr/local/nginx/logs目錄(或/var/log/nginx目錄下), 包含access.log和error.log兩個(gè)文件。
(1) access.log 記錄了哪些用戶、哪些頁(yè)面以及用戶瀏覽器、ip和其他的訪問(wèn)信息;
(2) error.log 則是記錄服務(wù)器錯(cuò)誤日志。
在所有時(shí)間內(nèi)nginx產(chǎn)生的日志均保存在同一個(gè)文件下,隨著訪問(wèn)量的增加,尤其是access.log增長(zhǎng)極快,服務(wù)器會(huì)很快消耗磁盤(pán)空間,影響服務(wù)器效率。
另外,當(dāng)需要對(duì)日志文件里面記錄的數(shù)據(jù)進(jìn)行分析時(shí),每次都要耗時(shí)很久才能下載這個(gè)龐大的日志文件,浪費(fèi)不必要的時(shí)間。
因此急需一個(gè)處理方案能夠自動(dòng)化的實(shí)現(xiàn)按天或者按文件大小來(lái)切割nginx日志記錄。
二. 解決方案: 使用logrotate工具實(shí)現(xiàn)日志切割
1. logrotate工具的介紹
logrotate是一個(gè)linux系統(tǒng)日志的管理工具。可以對(duì)單個(gè)日志文件或者某個(gè)目錄下的文件按時(shí)間/大小進(jìn)行切割,壓縮操作;指定日志保存數(shù)量;還可以在切割之后運(yùn)行自定義命令。
logrotate是基于crontab運(yùn)行的,所以這個(gè)時(shí)間點(diǎn)是由crontab控制的,具體可以查詢crontab的配置文件/etc/anacrontab。系統(tǒng)會(huì)按照計(jì)劃的頻率運(yùn)行l(wèi)ogrotate,通常是每天。在大多數(shù)的Linux發(fā)行版本上,計(jì)劃每天運(yùn)行的腳本位于 /etc/cron.daily/logrotate。
主流Linux發(fā)行版上都默認(rèn)安裝有l(wèi)ogrotate包,如果你的linux系統(tǒng)中找不到logrotate, 可以使用apt-get或yum命令來(lái)安裝。
接下來(lái),我們查看logrotate的配置文件
rpm -ql logrotate





浙公網(wǎng)安備 33010602011771號(hào)