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
}

你可能感兴趣的:(shell)