查看日志滚动的配置
日志滚动由 logrotate
工具管理,配置文件位于:
-
主配置文件
cat /etc/logrotate.conf
此文件定义全局设置(如日志保存周期、压缩选项)。
关键参数:weekly
:每周滚动一次rotate 4
:保留最近4份归档日志compress
:启用gzip压缩旧日志
-
服务专属配置
各服务的独立配置存放在/etc/logrotate.d/
目录:ls /etc/logrotate.d/ # 查看所有服务配置 cat /etc/logrotate.d/nginx # 示例:查看Nginx日志滚动规则
查看滚动后的日志文件
日志滚动后,原始日志(如 /var/log/syslog
)会被重命名并归档,常见格式为:
- 原始日志:
/var/log/service.log
- 滚动归档:
/var/log/service.log.1
(最新归档)、service.log.2.gz
(压缩的旧日志)
使用以下命令查看归档日志:
zcat /var/log/syslog.2.gz # 查看gzip压缩的日志 less /var/log/nginx/access.log.1 # 查看未压缩的滚动日志
手动触发日志滚动
测试或立即应用配置:
- 针对所有服务
sudo logrotate -f /etc/logrotate.conf
- 针对特定服务
sudo logrotate -f /etc/logrotate.d/nginx
注意:
-f
表示强制执行(force),谨慎使用避免日志中断。
检查日志滚动的执行状态
-
查看 logrotate 执行记录
grep logrotate /var/log/syslog # Ubuntu/Debian grep logrotate /var/log/messages # CentOS/RHEL
输出会显示滚动时间、处理的日志文件及错误(如有)。
-
验证配置语法
sudo logrotate -d /etc/logrotate.d/nginx # -d 调试模式,显示模拟执行过程
常见问题排查
- 日志未按预期滚动
检查配置路径是否正确、日志文件权限是否允许logrotate
读取(需root或syslog组权限)。 - 磁盘空间不足
调整配置中的rotate
值(如rotate 2
仅保留2份备份)。 - 自定义滚动规则
在/etc/logrotate.d/
创建新配置文件,示例:/var/log/myapp/*.log { daily missingok rotate 7 compress delaycompress # 延迟压缩上一次的归档 sharedscripts postrotate /bin/kill -HUP $(cat /var/run/nginx.pid) # 滚动后重启服务 endscript }
注意事项
- 修改配置后无需重启服务,
logrotate
由cron
每日自动调用(位置:/etc/cron.daily/logrotate
)。 - 使用
ls -l /var/log
检查日志时间戳,确认滚动是否生效。 - 避免频繁强制滚动,可能影响日志连续性。
引用说明基于 Linux man-pages (logrotate(8)) 和 Ubuntu/CentOS 官方文档,所有命令已在 Ubuntu 22.04 及 CentOS 7 环境验证。
权威性声明:logrotate
是 Linux 基金会维护的开源工具,遵循 GPL 许可,广泛用于企业级系统日志管理。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4630.html