ubuntu

Ubuntu Syslog日志备份策略

小樊
34
2025-11-15 08:20:35
栏目: 智能运维

Ubuntu Syslog 日志备份策略

一 策略总览

二 本地轮转与保留

/var/log/syslog {
    weekly
    missingok
    rotate 4
    compress
    delaycompress
    notifempty
    create 640 root adm
    postrotate
        /usr/lib/rsyslog/rsyslog-daemon reload >/dev/null 2>&1 || true
    endscript
}
/var/log/syslog {
    size 100M
    maxsize 100M
    weekly
    rotate 4
    compress
    missingok
    notifempty
    create 640 root adm
    postrotate
        /usr/lib/rsyslog/rsyslog-daemon reload >/dev/null 2>&1 || true
    endscript
}
sudo logrotate -d /etc/logrotate.d/rsyslog   # 调试模式,不真正执行
sudo logrotate -f /etc/logrotate.d/rsyslog   # 强制执行一次
cat /var/lib/logrotate/status              # 查看最近轮转状态

上述做法覆盖按时间与按大小的常见轮转需求,并给出调试与状态查看方法。

三 异地与远程备份

# 每日 02:00 增量同步,--backup 保留被覆盖的旧版本,--delete 保持目标与源一致
0 2 * * * root rsync -a --backup --delete /var/log/ /mnt/backup/logs/

# 可选:对关键文件做校验(示例对 syslog 做 sha256 并记录)
0 3 * * * root sha256sum /var/log/syslog > /var/log/syslog.sha256 && \
              rsync -a /var/log/syslog.sha256 /mnt/backup/logs/
#!/usr/bin/env bash
LOG=/var/log/syslog
DST=/mnt/backup/logs
DATE=$(date +%F)
mkdir -p "$DST"
cp "$LOG" "$DST/syslog-${DATE}.log"
gzip "$DST/syslog-${DATE}.log"
# /etc/rsyslog.d/50-remote.conf
*.* @192.0.2.10:514    # UDP
*.* @@192.0.2.10:514   # TCP
# 防火墙放行
sudo ufw allow 514/tcp
sudo ufw allow 514/udp
sudo systemctl restart rsyslog

以上方案覆盖本地到远程的多种备份路径,并给出可落地的命令与最小配置示例。

四 保留周期与存储规划

五 验证与恢复

sha256sum -c /mnt/backup/logs/syslog-2025-09-01.log.sha256
zcat /mnt/backup/logs/syslog-2025-09-01.log.gz | head
# 示例:恢复单文件
sudo cp /mnt/backup/logs/syslog-2025-09-01.log.gz /var/log/
sudo gunzip /var/log/syslog-2025-09-01.log.gz
sudo systemctl restart rsyslog

# 若需重建当前日志,可先备份再清空
sudo cp /var/log/syslog /var/log/syslog.bak
sudo truncate -s 0 /var/log/syslog
sudo systemctl restart rsyslog

0
看了该问题的人还看了