分析 Linux 下 Nginx 日志,通常从日志位置、日志格式、常用分析命令、可视化工具几个方面入手。下面给你一套实用指南。
/var/log/nginx/access.log # 访问日志
/var/log/nginx/error.log # 错误日志
nginx -t
输出示例:
configuration file /etc/nginx/nginx.conf test is successful
查看日志路径:
grep -R "access_log" /etc/nginx/
grep -R "error_log" /etc/nginx/
$remote_addr - $remote_user [$time_local] "$request"
$status $body_bytes_sent "$http_referer"
"$http_user_agent"
示例:
192.168.1.10 - - [12/Apr/2024:10:22:31 +0800]
"GET /index.html HTTP/1.1" 200 1024
"https://example.com/" "Mozilla/5.0"
remote_addr:客户端 IPtime_local:访问时间request:请求方法和路径status:HTTP 状态码body_bytes_sent:返回字节数user_agent:客户端类型tail -f /var/log/nginx/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 == 404' access.log
awk '$9 >= 500' access.log
awk '{print $7}' access.log | sort | uniq -c | sort -nr | head
awk '{print $4}' access.log | cut -d: -f1-2 | uniq -c
tail -n 100 /var/log/nginx/error.log
permission denied → 文件权限问题upstream timed out → 后端服务慢no live upstreams → 后端全部不可用goaccess access.log -o report.html --log-format=COMBINED
适合生产环境、多台服务器
如果你愿意,可以:
我可以直接帮你写针对性分析命令或脚本。