温馨提示×

apache慢日志ubuntu如何开

小樊
36
2026-10-12 09:24:24
栏目: 智能运维

在 Ubuntu 上开启 Apache 慢日志(slow log),通常有两种常见方式,取决于你用的是 Apache 2.4 + mod_log_config 还是 使用第三方模块(如 mod_log_slow)。最常用、官方支持的方式是通过 LogLevel + 自定义日志 或 mod_log_debug,但“真正的慢请求日志”一般推荐下面两种方式之一。


方式一:使用 Apache 自带 mod_log_config(推荐,简单)

Apache 本身没有原生“慢日志”,但可以通过记录请求处理时间来间接实现。

1. 启用必要模块

sudo a2enmod log_config
sudo a2enmod rewrite

2. 修改虚拟主机或全局配置

编辑配置文件(例如 /etc/apache2/sites-available/000-default.conf 或 apache2.conf):

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined_time

CustomLog ${APACHE_LOG_DIR}/access.log combined_time

说明:

  • %D:请求处理时间(微秒)
  • 你可以通过分析 access.log 找出处理时间长的请求

3. 重启 Apache

sudo systemctl restart apache2

4. 查看慢请求(示例)

awk '$NF > 1000000 {print}' /var/log/apache2/access.log

表示超过 1 秒(1,000,000 微秒)的请求


方式二:使用 mod_log_slow(真正的“慢日志”)

mod_log_slow 是第三方模块,可以只记录超过指定时间的请求。

1. 安装依赖

sudo apt update
sudo apt install apache2-dev build-essential

2. 下载并编译 mod_log_slow

cd /tmp
git clone https://github.com/yokawasa/mod_log_slow.git
cd mod_log_slow
make
sudo make install

3. 启用模块

sudo a2enmod log_slow

4. 配置慢日志

在 /etc/apache2/apache2.conf 或虚拟主机中:

LogSlowEnabled On
LogSlowLongRequestTime 1.0
LogSlowFileName /var/log/apache2/slow.log
LogSlowTimeFormat "%Y-%m-%d %H:%M:%S"

5. 重启 Apache

sudo systemctl restart apache2

6. 查看慢日志

tail -f /var/log/apache2/slow.log

方式三:PHP 慢日志(如果是 PHP 应用)

如果你是 PHP + Apache,也可以开 PHP 慢日志:

php.ini

slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 1s

注意:PHP-FPM 才支持,Apache + mod_php 不支持


总结建议

  • ✅ 不想装模块:用 %D + access.log(最常用)
  • ✅ 想要专门慢日志:用 mod_log_slow
  • ✅ PHP 应用慢:配合 PHP-FPM slowlog

如果你愿意,可以告诉我:

  • Apache 版本(apache2 -v)
  • 是否用 PHP / PHP-FPM
  • Ubuntu 版本

我可以给你一份完全贴合你环境的配置。

0 踩