内容纲要
概要描述
集群运维中经常遇到 /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 <格式> :定义日志后缀格式
初始配置:
完整配置:
/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
}