8.日志切割

Linux系统日志

1.1 日志介绍

Linux系统内核和许多程序会产生各种错误信,告警,提示信息...

这些信息都会记录到日志文件中,完成这个过程的程序就是rsyslog。

rsyslog可以根据日志的类别和优先级将日志保存到不同的文件中。

rsyslogd处理绝大部分日志记录,和系统操作有关,安全,认证sshd,su,计划任务at,cron...

[root@linux-server ~]# ps aux |grep rsyslogd		#默认是启动的

日志配置主文件在 /etc/rsyslog.conf

1.2 常见日志文件

/var/log/messages #动态查看日志文件的尾部,系统主日志文件
/var/log/secure   #记录认证、安全的日志
/var/log/maillog  #跟邮件postfix相关
/var/log/cron     #crond、at进程产生的日志
/var/log/dmesg    #和系统启动相关
/var/log/yum.log       #yum的日志
/var/log/mysqld.log    #MySQL日志
/var/log/xferlog       #和访问FTP服务器相关
/var/log/boot.log      #系统启动过程日志记录存放
[root@linux-server ~]#w    #当前登录的用户 /var/log/wtmp
[root@linux-server ~]#last #最近登录的用户 /var/log/btmp
参数解释
第一列:用户名。
第二列:终端位置,/pts/0 (伪终端)意味着从诸如ssh或者telnet的远程链接的用户,
tty(teletypewriter)意味着直接连接到计算机或者本地链接的用户;
第三列:登录的ip或者内核
第四列:开始时间
第五列:结束时间(still login in 还未退出 down 直到正常关机 crash 直到强制关机);
[root@linux-server ~]#lastlog 	#所有用户的登录情况 /var/log/lastlog

1.3 日志优先级

日志级别分为:7种日志级别代号0-7

0 debug 	#有调试信息的,日志信息最多
1 info 		#一般信息的日志,最常用
2 notice 	#最具有重要性的普通条件的信息
3 warning 	#警告级别
4 err 	  	#错误级别,阻止某个功能或者模块不能正常工作的信息
5 crit      #严重级别,阻止整个系统或者整个软件不能工作的信息
6 alert 	#需要立刻修改的信息
7 emerg 	#内核崩溃等严重信息
  none  	#什么都不记录

1.4 日志轮转logrotate

1.什么是日志轮转?

自动切割日志,可以针对任何日志文件比如:rsyslog日志、Nginx访问或错误日志...

2.为什么要做日志轮转?

  • 如果没有日志轮转,日志文件会越来越大

  • 如果做了日志轮转将丢弃系统中最旧的日志文件,以节省空间

  • logrotate本身不是系统守护进程,它是通过计划任务crond每天执行

3.配置日志轮转

logrotate主配置文件:/etc/logrotate.conf #决定每个日志文件如何轮转

[root@linux-server ~]# 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 2 					#保留2份
}

/var/log/btmp {
missingok 		#丢失不提示
monthly
create 0600 root utmp
rotate 1
}

[root@linux-server ~]# /usr/sbin/logrotate /etc/logrotate.conf #手动轮转
自动日志轮转写进计划任务就好
原文地址:https://www.cnblogs.com/eba001/p/14287267.html