调低Syslog日志等级是降低磁盘I/O和空间占用最直接有效的方式,即仅记录warning及以上级别日志,禁用info/debug等冗余级别,并通过全局DefaultLoggingLevel、facility细化(如cron.err)、logrotate size限制及kernel.printk调控实现精准降级与存储优化。

调低 Syslog 日志等级是降低磁盘 I/O 和空间占用最直接有效的方式。关键不是“关日志”,而是让系统只记录真正需要的信息——错误、警告和必要事件,过滤掉大量无用的 info、debug 级别流水账。
明确日志级别含义,按需降级
rsyslog 支持从 debug 到 emerg 共 8 级,生产环境应避免使用 debug 和 info:
- warning:记录潜在问题(如配置异常、资源不足、服务响应慢),适合大多数业务服务器
- err:仅记录已发生的错误(如权限拒绝、连接失败、模块加载失败),I/O 最小化,适用于高负载或资源受限节点
- 避免 info 及更低级别:它们会记录每个服务启动细节、常规请求路径、定时任务执行等,高频写入显著增加磁盘压力
精准控制全局与局部日志等级
不能只改一处,要确保策略生效范围正确:
- 全局默认级别:在 /etc/rsyslog.conf 或 /etc/rsyslog.d/50-default.conf 中设置
$DefaultLoggingLevel warning - 按设施(facility)细化:例如对 cron、authpriv 等非核心服务单独设为
err,减少干扰项cron.err /var/log/cronauthpriv.err /var/log/auth.log - 禁用不必要设施输出:如
mail.none、daemon.none可直接屏蔽整个类别,比降级更彻底
配合轮转与存储策略放大效果
单靠调级别不够,必须同步收紧日志“怎么写”和“写到哪”:
- 轮转配置加 size 限制:在 /etc/logrotate.d/rsyslog 中启用
size 50M,避免单文件膨胀触发频繁 sync 写盘 - 压缩旧日志:添加
compress delaycompress,既节省空间又减少写入频率 - 分离关键日志路径:把
/var/log/messages和/var/log/secure放在独立挂载点(如 SSD 分区),避免和根分区争 I/O - 内核日志单独处理:通过
kernel.printk=4 4 1 7控制 dmesg 输出量,防止突发内核消息刷爆磁盘
验证是否真正生效
改完配置必须验证,否则可能白调:
- 重启服务:
sudo systemctl restart rsyslog - 检查实时输出:
tail -f /var/log/messages,确认不再出现 info 级日志行 - 观测磁盘写入:
iostat -dx 1对比前后 w/s(每秒写次数),下降 20% 以上才算有效 - 查看日志增长:
ls -lh /var/log/messages,正常情况下每小时增量应稳定在几十 KB 量级

















