Logrotation 并不是每天轮换日志

Logrotation 并不是每天轮换日志

我是日志轮换的新手,并且有一个系统日志服务器,已设置为接收超过 514 个的防火墙日志。现在,防火墙正在生成大量数据,约 600-800GB/天,服务器容量为 1TB。我试图在 24 小时后使用 logrotation 删除日志。

所有日志都进入 /var/log/syslog

我正在使用 rsyslog 并尝试使轮换工作在我的中/etc/logrotate.d/rsyslog我有以下几行

{
        rotate 1
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                /usr/lib/rsyslog/rsyslog-rotate
        endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
        rotate 1
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                /usr/lib/rsyslog/rsyslog-rotate
        endscript
}

在我的/etc/logrotate.conf配置中,如图所示

# see "man logrotate" for details
# rotate log files weekly
daily

# use the adm group by default, since this is the owning group
# of /var/log/syslog.
su root adm

# keep 4 weeks worth of backlogs
rotate 1

# 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

# packages drop log rotation information into this directory
include /etc/logrotate.d

# system-specific logs may be also be configured here.

现在大约 30-36 小时后,服务器上只剩下 100GB 空间,并且日志尚未删除。

我到底做错了什么?

答案1

您提供的配置完整吗?没有任何配置条目适用,/var/log/syslog并且第一个块/etc/logrotate.d/rsyslog是无用的。

您有一个每周轮换一次许多文件的配置/var/log和一个每天轮换一次的配置块,但没有任何用途。

您可能想/var/log/syslog/etc/logrotate.d/rsyslog.

您应该能够用来logrotate --debug --verbose /etc/logrotate.conf测试您的配置。

使用您的 logrotate 配置(将其/var/log/syslog添加到第一个块后)。它应该每天将现有日志文件复制/旋转一次到syslog.1.压缩选项在这里毫无用处。因为delaycompress第一次旋转是不压缩的,从无rotate 1syslog.2压缩以后就会出现。

您更可能想要的是rotate 0compress可以删除选项)。从手册页:

旋转计数

日志文件在被删除或邮寄到邮件指令中指定的地址之前会轮换 count 次。如果 count 为 0,则旧版本将被删除而不是轮换。

相关内容