如何在CentOS/Red Hat Linux中为新日志文件配置logrotate

什么是 logrotate(日志轮换)?

logrotate 旨在简化生成大量日志文件的系统的管理。
它允许自动轮换、压缩、删除和邮寄日志文件。
每个日志文件可以每天、每周、每月或者当它变得太大时处理。

让我们看看 logrotate 的主要配置文件是 /etc/logrotate.conf

# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}
/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

现在注释部分解释了大部分使用的参数。
并且此文件中没有任何可更改的内容,因此使用默认值即可。

设置 logrotate

为了演示,我在 /var/log 中创建了一个新的日志文件 firewall.log,它将包含所有与 iptables 相关的日志。

接下来在 /etc/logrotate.d 中创建一个新文件,如下所示

# cd /etc/logrotate.d
# touch firewall.log

可用于配置logrotate的参数及其值如下所示

参数描述
compress默认情况下,GZIP压缩了日志文件的旧版本。
create mode owner group旋转后立即(在运行Postrotate脚本之前)创建日志文件(具有与日志文件相同的名称刚刚旋转)。 Mode指定八进制的日志文件的模式所有者指定将拥有日志文件的用户名, Group指定日志文件所属的组。
daily/weekly/monthly/yearly日志文件按照所用的值旋转
minsize size日志文件在增大较大的大小字节时旋转,但不是在另外指定的时间间隔之前(每日,每周,每月或者每年
missingok如果缺少日志文件,请在不发出错误消息的情况下继续到下一个。
size size当它们变大时大小字节时,日志文件会旋转。如果尺寸后跟m,则尺寸如果假定为兆字节。如果使用k,则大小为千字节。
notifempty如果它是空的,请勿旋转日志(这覆盖IFEMPTY选项)。

根据我们对日志文件轮换的要求添加条目。
下面是我的服务器上的一个示例

# less /etc/logrotate.d/firewall.log
/var/log/firewall.log {
missingok
compress
rotate 2
notifempty
size 30k
daily
create 0600 root root
}

完成后保存文件。

验证配置

我们可以手动添加一些内容到我们的 firewall.log 来验证配置

# seq 1000 > firewall.log
# ll firewall.log
-rw------- 1 root root 3893 Jun 26 11:02 firewall.log

所以让我们尝试强制轮换日志文件

# logrotate -f /etc/logrotate.conf

查看日志变更信息

# ls -l firewall.log*
-rw------- 1 root root    0 Jun 26 11:02 firewall.log
-rw------- 1 root root 1848 Jun 26 11:02 firewall.log-20140626.gz

所以我们最后的 firewall.log 文件被压缩,你可以看到大小从 3893 字节变为 1848 字节,并且创建了一个具有 0600 权限的新 firewall.log 文件。

日期:2020-06-02 22:18:27 来源:oir作者:oir