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

在 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,避免磁盘占满。

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

华纳云 推荐文章
Apache配置错误:请求内部重定向次数超过最大限制(10次)的排查与修复 Linux主机处理大量日志数据的方法 在CentOS系统中dmesg日志异常怎么办 怎么通过Tomcat日志中识别出恶意请求? CentOS系统 Node.js日志丢失怎么办? 新手小白该如何运用好Apache软件(以Linux系统为例) GoAccess日志分析工具的详细用法 Docker中设置Apache web服务器的方法 Docker容器中如何设置apache Web服务器 Linux中查找MySQL、PHP和Apache配置文件的方法
活动
客服咨询
7*24小时技术支持
技术支持
渠道支持