温馨提示×

Debian系统日志清理策略是什么

小樊
40
2025-12-18 06:13:09
栏目: 智能运维

Debian 系统日志清理策略

总体机制

  • 采用“双通道”治理:传统文本日志由 logrotate 按时间/大小轮转、压缩与删除;systemd-journald 的二进制日志通过尺寸/时间上限控制留存。
  • 日志主要位于 /var/log,常见文件包括:syslogauth.logkern.logdpkg.log 等,分别记录系统、认证、内核与软件包事件。

logrotate 策略与配置

  • 配置位置与触发
    • 全局配置:/etc/logrotate.conf;服务配置:/etc/logrotate.d/
    • cron 每日执行(检查 /etc/cron.daily/logrotate 是否存在),也可手动强制执行。
  • 常用策略参数
    • 周期:daily/weekly/monthly;触发:size 100M(达到阈值即轮转)。
    • 保留:rotate 7(保留 7 份历史);压缩:compress;延迟压缩:delaycompress
    • 容错:missingoknotifempty;新建文件:create 0640 root adm
    • Syslog 示例(/etc/logrotate.d/rsyslog):
      /var/log/syslog {
          daily
          rotate 7
          compress
          delaycompress
          missingok
          notifempty
          create 0640 root adm
          postrotate
              invoke-rc.d rsyslog reload > /dev/null
          endscript
      }
      
    • 测试与执行:sudo logrotate -f /etc/logrotate.d/rsyslog

journald 策略与配置

  • 查看与清理
    • 查看占用:journalctl --disk-usage
    • 按时间清理:sudo journalctl --vacuum-time=2d(保留最近 2 天)。
    • 按容量清理:sudo journalctl --vacuum-size=500M(最大保留 500MB)。
  • 持久化保留策略(/etc/systemd/journald.conf)
    • 空间上限:SystemMaxUse=500M(示例值,可按需调整)。
    • 修改后应用:sudo systemctl daemon-reload && sudo systemctl restart systemd-journald
  • 建议:为关键系统保留至少 7–14 天 的 journal 日志,便于审计与排障。

安全清理与运维建议

  • 优先使用 logrotate/journalctl 提供的清理方式,避免直接 rm 正在写入的日志文件;若必须手工处理,先停止写入或切换日志,再清理,避免句柄占用与日志丢失。
  • 对 syslog 类日志,在 logrotate 的 postrotate 中执行服务重载(如 rsyslog),确保日志句柄及时切换到新文件。
  • 定期核查:日志目录增长、轮转是否生效、保留天数/容量是否符合合规与故障排查需求。

0