首页 帮助中心 香港大带宽服务器 Ubuntu系统下Apache日志轮转如何设置
Ubuntu系统下Apache日志轮转如何设置
时间 : 2025-02-10 16:51:58 编辑 : 华纳云 阅读量 : 49

在 Ubuntu 系统下,Apache 默认使用 logrotate 进行日志轮转。你可以通过以下方法配置 logrotate,确保日志按照需求进行归档和清理。

1. Apache 日志轮转默认配置

Ubuntu 的 Apache (apache2) 日志轮转配置文件位于:

/etc/logrotate.d/apache2

执行以下命令查看默认配置:

cat /etc/logrotate.d/apache2

默认配置示例:

/var/log/apache2/*.log {
    weekly
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        if systemctl status apache2 > /dev/null; then
            systemctl reload apache2 > /dev/null
        fi
    endscript
}

2. 配置说明

可以根据需求修改以下参数:

weekly:日志每周轮转一次,可以改为 daily(每日)、monthly(每月)。

rotate 52:保留 52 份日志(大约一年),可根据需求调整。

compress:使用 gzip 压缩旧日志,节省存储空间。

delaycompress:延迟一轮再压缩,以便不影响 Apache 访问最新日志。

notifempty:如果日志为空,则不创建新日志。

create 640 root adm:新日志文件权限,确保只有 root 和 adm 组可以访问。

sharedscripts:确保 postrotate 只执行一次,而不是对每个日志文件执行。

postrotate:日志轮转后重载 Apache,防止日志文件句柄丢失。

3. 修改日志轮转规则

如果需要每天轮转,保留30天日志,且不压缩,可修改为:

/var/log/apache2/*.log {
    daily
    missingok
    rotate 30
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        systemctl reload apache2 > /dev/null
    endscript
}

然后运行:

sudo systemctl restart logrotate

4. 手动触发日志轮转

如果你想立即测试日志轮转:

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

执行后,可以检查日志目录:

ls -lh /var/log/apache2/

确认是否生成了 .gz 归档文件。

5. 额外优化

如果你在 Apache 虚拟主机中定义了自定义日志路径,例如:

ErrorLog /var/log/apache2/my_site_error.log

CustomLog /var/log/apache2/my_site_access.log combined

你需要手动将这些路径添加到 logrotate 配置:

/var/log/apache2/my_site_*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        systemctl reload apache2 > /dev/null
    endscript
}

如果日志增长过快,可以基于大小触发轮转,比如日志超过 100M 就轮转:

/var/log/apache2/*.log {
    size 100M
    missingok
    rotate 10
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        systemctl reload apache2 > /dev/null
    endscript
}


总结:

  1. Apache 默认使用 logrotate 进行日志管理,配置文件在 /etc/logrotate.d/apache2。
  2. 可以自定义轮转规则,比如 daily(每日)、rotate 30(保留 30 份)、compress(压缩)。
  3. 日志轮转后需要重启或重载 Apache,防止日志句柄丢失。
  4. 可以基于日志大小触发轮转,如 size 100M,避免磁盘占满。

你可以根据实际需求调整配置!

华纳云 推荐文章
香港服务器常见CPU型号有哪些 用NFS实现多服务器文件共享的方法和步骤 Linux系统怎么进行远程桌面连接? 新手小白该如何运用好Apache软件(以Linux系统为例) 基于Web的网络流量与安全监控工具ntopng的相关分享 Linux中5个实用的命令行HTTP客户端 Fedora 40上构建Web开发环境LAMP FaaS微服务架构中的高效开发 一些常见的IIS状态代码及其应对方法 Linux中无密码执行sudo命令的设置方法
客服咨询
7*24小时技术支持
技术支持
渠道支持