在 Ubuntu 上,Apache 的日志通常位于 /var/log/apache2/ 目录下。下面是常见读取和分析方法。
默认情况下:
访问日志(访问记录)
/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
sudo tail -f /var/log/apache2/access.log
sudo tail -f /var/log/apache2/error.log
sudo tail -n 100 /var/log/apache2/access.log
sudo less /var/log/apache2/access.log
(按 q 退出)
sudo grep "404" /var/log/apache2/access.log
sudo grep "error" /var/log/apache2/error.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"
sudo awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head
sudo awk '{print $9}' /var/log/apache2/access.log | sort | uniq -c | sort -nr
sudo grep ' 404 ' /var/log/apache2/access.log
sudo grep "10/Oct/2024:12:" /var/log/apache2/access.log
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
如果你有 具体需求(比如查攻击、查爬虫、查某个接口慢),可以告诉我,我可以给你更精确的命令。