Centos 日誌文件以及日誌輪轉

日誌管理基礎

rsyslog 日誌管理 logrotate日誌輪轉 採集 -----> 分析

/var/log/

messages 系統日誌 	
maillog  郵件日誌 	
cron	     計劃任務日誌 	
xferlog  vsftpd日誌 	
httpd	 apache日誌 
secure	 安全日誌  ssh ftp telnet pop3 pam等有關 
lastlog   記錄每一個賬戶最後一次登錄的時間,使用lastlog 	
wtmp	 查看的是一個月之內所有賬戶的的登錄情況,使用last 	
btmp	 查看現在正在登錄的賬戶,使用lastb查看 
samba	 samba共享日誌 	
yum.log 	yum程序相關的日誌 	
dmesg  開機時核心檢測過程中所產生的信息 	
boot.log 系統啓動過程日誌記錄存放 

三、logrotate日誌輪轉

/etc/logrotate.conf 主配置文件
每個服務輪轉配置文件 /etc/logrotate.d/

注:針對任何日誌文件(rsyslog 日誌、Nginx訪問或錯誤日誌…)
一、logrotate (輪轉,日誌切割)

  1. 如果沒有日誌輪轉,日誌文件會越來越大
  2. 將丟棄系統中最舊的日誌文件,以節省空間
  3. logrotate本身不是系統守護進程,它是通過計劃任務crond每天執行
主配置文件

[root@youngfit ~]# vim /etc/logrotate.conf	
weekly     			//輪轉的週期,一週輪轉 
rotate 4			//保留4份 
create				//輪轉後創建新文件 
dateext             //使用日期作爲後綴 
#compress			//日誌輪替時,舊的日誌進行壓縮 
include /etc/logrotate.d  			 //包含該目錄下的配置文件

/var/log/wtmp {			          	//對該日誌文件設置輪轉的方法    
 monthly			                //一月輪轉一次  
 minsize 1M			            	//最小達到1M才輪轉,否則就算時間到了也不輪轉
 create 0664 root utmp		        //輪轉後創建新文件,並設置權限  所有者 所屬組 
 rotate 1			                //保留一份 
}

/var/log/btmp {    
 missingok			              	//丟失不提示    
 monthly			                //每月輪轉一次     
 create 0600 root utmp		        //輪轉後創建新文件,並設置權限 
 rotate 1			                //保留一份 
} 

missingok                                //丟失不提醒
 #notifempty                              // 空文件不輪轉 
 #size 30k									//只要到了30k就輪轉
 #yearly
 daily                                     //每天輪轉一次   
 rotate 3      
 create 0777 root root 
}
[root@localhost]#  /usr/sbin/logrotate -f /etc/logrotate.conf	//強制手動輪轉

[root@localhost apache]# logrotate -f /etc/logrotate.d/yum  輪轉某個服務的日誌
[root@localhost ]# grep yum /var/lib/logrotate/logrotate.status		  //記錄所有日誌文件最近輪轉的時間 "/var/log/yum.log" 2017-3-31-10:0:23


#/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf	//根據狀態文件,規則文件進行輪轉
[root@192 ~]# vim /etc/logrotate.d/nginx
/var/log/nginx/*.log {           #指定需要輪轉處理的日誌文件
        daily     #日誌文件輪轉週期,可用值爲: daily/weekly/yearly
        missingok               # 忽略錯誤信息
        rotate 7               # 輪轉次數,即最多存儲7個歸檔日誌,會刪除最久的歸檔日誌
        minsize 5M	       #限制條件,大於5M的日誌文件才進行分割,否則不操作
        dateext             # 以當前日期作爲命名格式
        compress         # 輪循結束後,已歸檔日誌使用gzip進行壓縮
        delaycompress    # 與compress共用,最近的一次歸檔不要壓縮
        notifempty         # 日誌文件爲空,輪循不會繼續執行
        create 640 nginx nginx     #新日誌文件的權限 所有者所屬組 
        sharedscripts     #有多個日誌需要輪詢時,只執行一次腳本
        postrotate    # 將日誌文件轉儲後執行的命令。以endscript結尾,命令需要單獨成行
                if [ -f /var/run/nginx.pid ]; then    #判斷nginx的PID。# 默認logrotate會以root身份運行  nginx 只有啓動的時候纔會生成一個nginx.pid 的文件,也就是如果後面存在一個文件也就是nginx啓動了
                        kill -USR1 cat /var/run/nginx.pid
                fi
        endscript
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章