Logrotate限制messages日志文件大小

  其他常见问题
内容纲要

概要描述


集群运维中经常遇到 /var/log/messages 日志占用 /var/log 盘过多导致告警,
本文主要描述如何通过 Logrotate 对系统日志 messages 的分割配置限制保存大小。

详细说明


1.查看操作系统自带的crond服务和logrotate

# 查看crond服务
systemctl status crond
[root@jiujiu-tdh-10 ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2023-05-04 11:49:56 CST; 2 months 16 days ago
 Main PID: 1031 (crond)
   CGroup: /system.slice/crond.service
           └─1031 /usr/sbin/crond -n

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
# 查看logrotate
which logrotate
[root@jiujiu-tdh-10 ~]# which logrotate
/usr/sbin/logrotate

2. 修改/etc/logrotate.d/syslog中message部分内容, 保存后自动生效

完整内容如下:

/var/log/messages
{
    daily                #每天执行一次logrotate 分割判断
    size=200M            #日志超过200M就进行分割
    rotate 3             #历史日志+当前日志始终保持3+1份
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null 2> /dev/null || true
    endscript
}
  • hourly:每小时执行一次日志分割判断
  • daily:每天执行一次日志分割判断
  • rotate <数字> :最多保留<数字>份历史日志
  • size=<容量> :当日志超过<容量>时,才进行分割
  • dateformat <格式> :定义日志后缀格式

初始配置

file

完整配置

/var/log/cron
/var/log/maillog
/var/log/messages
{
    daily
    size=200M
    rotate 3
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null 2> /dev/null || true
    endscript
}
/var/log/secure
/var/log/spooler
{
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null 2> /dev/null || true
    endscript
}

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。