文章内容

2025/11/13 9:31:44,作 者: 黄兵

OpenStack Swift 使用 logrotate 自动分割日志

系统中默认安装了 logrotate,你可以为 Swift 添加一个配置文件,自动每天轮转一次日志。

1️⃣ 新建配置文件

创建文件 /etc/logrotate.d/swift

sudo nano /etc/logrotate.d/swift

内容如下:

/var/log/swift/*.log {
    daily                   # 每天轮转一次
    rotate 14               # 保留最近 14 天的日志
    compress                # 使用 gzip 压缩旧日志
    delaycompress           # 延迟一天压缩,避免刚轮转的日志被压缩
    missingok               # 日志不存在时不报错
    notifempty              # 空文件不轮转
    create 640 syslog adm   # 轮转后新日志文件权限和属主
    sharedscripts           # 轮转后只执行一次 postrotate 脚本
    postrotate
        # 通知 rsyslog 重新打开日志文件句柄
        /usr/lib/rsyslog/rsyslog-rotate >/dev/null 2>&1 || true
    endscript
}

2️⃣ 验证配置是否正确

执行:

sudo logrotate -d /etc/logrotate.d/swift

这不会实际轮转,只会模拟执行,确认配置无误。

经过测试,会出现错误,logrotate 的配置语法不支持行内注释

删除注释之后,保存:

/var/log/swift/*.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    create 640 syslog adm
    sharedscripts
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate >/dev/null 2>&1 || true
    endscript
}

然后强制执行一次测试:

sudo logrotate -f /etc/logrotate.d/swift

执行完后,会看到:

/var/log/swift/all.log
/var/log/swift/all.log.1
/var/log/swift/all.log.2.gz
...

3️⃣ 确保权限和目录正确

Swift 日志目录通常需要:

sudo mkdir -p /var/log/swift
sudo chown -R syslog:adm /var/log/swift
sudo chmod -R 750 /var/log/swift


其它相关推荐:

1、OpenStack Swift 单节点部署

2、Ubuntu 22.04 安装 OpenStack Swift

3、Ubuntu 22.04 安装 OpenStack Swift 存储策略

4、OpenStack Swift 配置 Memcached

5、OpenStack Swift 自定义认证中间件

分享到:

发表评论

评论列表