首页主机资讯ubuntu syslog清理策略

ubuntu syslog清理策略

时间2025-12-03 11:52:06发布访客分类主机资讯浏览1232
导读:Ubuntu syslog 清理策略 一 策略总览 采用“logrotate 轮转 + systemd-journald 限制”的双轨策略,分别管理传统文本日志(如 /var/log/syslog、/var/log/auth.log)与二...

Ubuntu syslog 清理策略

一 策略总览

  • 采用“logrotate 轮转 + systemd-journald 限制”的双轨策略,分别管理传统文本日志(如 /var/log/syslog、/var/log/auth.log)与二进制日志(journal)。
  • 推荐基线:文本日志按大小或时间触发轮转压缩归档保留 7–14 天;journal 按总大小或时间上限限制,避免无限增长。
  • 避免直接删除正在写入的主日志文件(如 /var/log/syslog),优先“清空内容”或交由 logrotate 处理,必要时再重启 rsyslog

二 推荐配置示例

  • logrotate 配置(/etc/logrotate.d/rsyslog,适用于 rsyslog)

    • 建议同时覆盖常见系统日志文件,设置“size 触发优先保留 7 份压缩延迟压缩按日检查”,并配合 postrotate 通知 rsyslog 重新打开日志文件。
    • 示例:
      /var/log/syslog
      /var/log/auth.log
      /var/log/kern.log
      /var/log/mail.log
      /var/log/cron.log
      /var/log/daemon.log
      /var/log/debug
      /var/log/lpr.log
      /var/log/user.log
      /var/log/uucp.log {
      
          daily
          size 100M
          rotate 7
          compress
          delaycompress
          missingok
          notifempty
          create 0640 root adm
          postrotate
              /usr/lib/rsyslog/rsyslog-rotate
          endscript
      }
          
      
    • 说明:
      • daily:按天检查是否需要轮转;size 100M:达到 100MB 即触发(与时间条件“任一满足先触发”)。
      • rotate 7:保留最近 7 个历史文件(含压缩包)。
      • compress / delaycompress:压缩旧日志,延迟一轮压缩便于排查最新归档。
      • postrotate … rsyslog-rotate:通知 rsyslog 重新打开日志描述符,确保继续写入新文件。
    • 验证与执行:
      • 语法/演练:sudo logrotate -d /etc/logrotate.d/rsyslog
      • 强制执行:sudo logrotate -f /etc/logrotate.d/rsyslog
      • 系统通常通过 /etc/cron.daily/logrotate 每日触发,无需额外 cron。
  • systemd-journald 配置(/etc/systemd/journald.conf)

    • 建议设置持久化存储并限制体积,防止 journal 无限增长:
      [Journal]
      Storage=persistent
      SystemMaxUse=500M
      SystemKeepFree=100M
      MaxRetentionSec=7day
      
    • 应用:sudo systemctl restart systemd-journald
    • 说明:
      • SystemMaxUse:journal 最大占用磁盘;SystemKeepFree:保留至少多少空闲空间。
      • MaxRetentionSec:日志最大保留时间;也可按需使用 journalctl --vacuum-size=500M--vacuum-time=7d 做临时收缩。

三 应急清理与风险控制

  • 快速释放空间(紧急情况)
    • 清空正在写入的日志内容(保留 inode,避免破坏文件句柄):
      • sudo truncate -s 0 /var/log/syslog
      • sudo truncate -s 0 /var/log/auth.log
    • 删除已轮转的旧归档(如 .gz 文件)通常安全:
      • sudo find /var/log -name "*.gz" -mtime +7 -delete
    • 收缩 journal(临时措施):
      • sudo journalctl --vacuum-size=500M
      • sudo journalctl --vacuum-time=7d
    • 风险提示:避免直接 rm /var/log/syslog;如确需删除主日志,应先停止写入并重建,或优先使用 truncate/logrotate。

四 监控与容量规划

  • 容量巡检与定位大文件
    • du -sh /var/log
    • sudo du -ah /var/log | sort -rh | head -n 20
  • 观察 journal 占用
    • sudo journalctl --disk-usage
  • 容量规划建议
    • 结合业务保留周期与磁盘容量,文本日志建议“size 100–500M + rotate 7–14”,journal 建议“SystemMaxUse 500M–1G”,并保留一定空闲空间(如 SystemKeepFree 100–500M)。

五 常见排错与优化

  • 轮转未生效
    • 检查 /etc/logrotate.d/rsyslog 语法与包含关系;执行 logrotate -d 演练;确认 /etc/cron.daily/logrotate 存在且未被禁用;必要时 systemctl restart rsyslog
  • 日志继续写入旧文件
    • 确认 postrotate /usr/lib/rsyslog/rsyslog-rotate 存在且可执行;若手动清空过日志,可重启 rsyslog 以重建文件句柄。
  • 日志量异常增长
    • 临时提升日志级别或调整 rsyslog 规则,定位“高频写入”来源(如调试日志、错误循环);必要时将日志转发到远程日志服务器以分担本地磁盘压力。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu syslog清理策略
本文地址: https://pptw.com/jishu/762207.html
Debian Minimal远程访问设置 lsnrctl如何配置监听器安全

游客 回复需填写必要信息