温馨提示×

怎样读取ubuntu apache日志

小樊
44
2026-10-06 12:55:41
栏目: 智能运维

在 Ubuntu 上,Apache 的日志通常位于 /var/log/apache2/ 目录下。下面是常见读取和分析方法。


一、Apache 日志位置

默认情况下:

  • 访问日志(访问记录)
    /var/log/apache2/access.log

  • 错误日志
    /var/log/apache2/error.log

如果你启用了虚拟主机(VirtualHost),可能会有:

/var/log/apache2/example.com-access.log
/var/log/apache2/example.com-error.log

二、基本查看命令

1. 实时查看日志

sudo tail -f /var/log/apache2/access.log
sudo tail -f /var/log/apache2/error.log

2. 查看最后 N 行

sudo tail -n 100 /var/log/apache2/access.log

3. 查看完整日志

sudo less /var/log/apache2/access.log

(按 q 退出)

4. 搜索关键字

sudo grep "404" /var/log/apache2/access.log
sudo grep "error" /var/log/apache2/error.log

三、日志格式说明(access.log)

常见格式(combined):

IP - - [时间] "请求方法 URL 协议" 状态码 字节 "Referer" "User-Agent"

示例:

127.0.0.1 - - [10/Oct/2024:12:00:01 +0000] "GET /index.html HTTP/1.1" 200 2326 "https://example.com" "Mozilla/5.0"

四、常用分析命令

1. 统计访问最多的 IP

sudo awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head

2. 统计状态码分布

sudo awk '{print $9}' /var/log/apache2/access.log | sort | uniq -c | sort -nr

3. 查看 404 请求

sudo grep ' 404 ' /var/log/apache2/access.log

4. 查看某时间段日志

sudo grep "10/Oct/2024:12:" /var/log/apache2/access.log

五、日志轮转(logrotate)

Ubuntu 默认会轮转日志:

access.log
access.log.1
access.log.2.gz

查看旧日志:

sudo zcat /var/log/apache2/access.log.2.gz | less

六、权限问题

如果提示权限不足:

sudo -i
cd /var/log/apache2

或直接:

sudo cat /var/log/apache2/error.log

如果你有 具体需求(比如查攻击、查爬虫、查某个接口慢),可以告诉我,我可以给你更精确的命令。

0 踩