分析访问日志(如 Web 服务器访问日志、应用访问日志等)是排查问题、优化性能、安全审计和了解用户行为的关键步骤。以下是通用的分析方法和实践指南:
在分析前,先明确目的,常见目标包括:
access.logerror.logaccess.logerror.log示例(Nginx):
127.0.0.1 - - [10/Oct/2023:13:55:36 +0800] "GET /index.html HTTP/1.1" 200 1024 "-" "Mozilla/5.0"
常见字段及含义:
| 字段 | 含义 |
|---|---|
| IP | 访问来源 |
| 时间 | 请求发生时间 |
| 请求方法 | GET / POST 等 |
| URL | 请求路径 |
| 协议 | HTTP/1.1、HTTP/2 |
| 状态码 | 200、404、500 等 |
| 响应大小 | 返回数据大小 |
| Referer | 来源页面 |
| User-Agent | 浏览器 / 爬虫 |
wc -l access.log
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
awk '{print $9}' access.log | sort | uniq -c | sort -nr
awk '$9 == 500' access.log
awk '{print $7}' access.log | sort | uniq -c | sort -nr | head
$request_time):awk '{print $NF, $7}' access.log | sort -nr | head
/wp-admin、/phpMyAdmin)示例:
awk -F\" '{print $6}' access.log | sort | uniq -c | sort -nr
按小时统计访问量:
awk '{print $4}' access.log | cut -d: -f1-2 | sort | uniq -c
goaccess access.log -o report.html --log-format=COMBINED
如果你愿意,可以:
我可以帮你做针对性的日志分析方案或脚本。