在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 丢失不提示
}

这里只需要我们能够看懂,不需要做过多的记忆。注意我们在下面用{}包括的内容是独立设定的轮转规则,他的优先级高。