在Linux操作系统中,许多程序都会产生日志文件,了解日志文件放在什么地方,如何对日志文件进行管理,能够让我们迅速排错。
一、常见的日志文件
日志文件一般存放在/var/log 文件夹下,我们以/var/log/messages为例,他是系统的主日志文件。
Jan 13 01:10:01 localhost systemd: Started Session 7 of user root.
该日志文件可以分为三个部分:时间 主机名 消息。即谁什么时间干了什么内容。
在/var/log下还有许多日志文件,这里我们也不再一一查看。
二、rsyslog 系统日志管理
rsyslog是系统自带的日志管理程序,在开机时就自动启动。通过对其配置文件的分析,我们可以理解系统是如何对日志进行管理的。
首先我们通过 rpm -qc rsyslog 查看配置文件位置
/etc/logrotate.d/syslog //与日志轮转相关
/etc/rsyslog.conf // 主配置文件
/etc/sysconfig/rsyslog //rsyslogd的相关文件
我们主要对主配置文件进行分析
vim /etc/rsyslog.conf
我们主要对其中的RULES部分进行分析,例如:
authpriv.* /var/log/secure
RUlES主要分为三个部分:设备.级别 路径
所谓设备就是将一类程序归为一个设备,统一对他们的日志进行管理;而级别则决定日志中存储的内容,级别越低,其中的信息越详细,级别越高,信息越少越重要。
一般来说,大多数程序的配置文件都有相同的特点。他们的存储位置都在/etc下以conf结尾。在实际情况中一般不推荐对系统日志管理的配置文件进行修改
三、logrotate 日志轮转
磁盘的空间是有限的,日志轮转就像行车记录仪,只记录一段时间发生的事情。日志文件常常按照时间或者大小进行划分,不符合配置文件的内容的划分部分删除。删除时间久远的日志文件。而这里就用到了logrotate。
logrotate分为主配置文件和子配置文件。显然他们也在/etc下。
主配置文件:/etc/logrotate.conf(决定每个日志文件如何轮转)
子配置文件:/etc/logrotate.d/*(自定义配置,便于管理)
观察主配置文件:
weekly 按周轮转
rotate4 保留四份
create 轮转后创建新文件
datetxt 以时间日期作为后缀
compress 压缩
include /etc/logrotate.d 包含该目录下的子配置目录
/var/log/wtmp {通过这样的语法,可以独立的设定该日志中的轮转规则
monthly 按月轮转
create 0664 root utmp 建立的新日志文件,权限是0664,所有者是root,所属组是utmp组
minsize 1M 最小达到1M才轮转
rotate 1 保留1份
}
/var/log/btmp{
missingok 丢失不提示
}
这里只需要我们能够看懂,不需要做过多的记忆。注意我们在下面用{}包括的内容是独立设定的轮转规则,他的优先级高。