在 Linux 下实时监控 Nginx 日志,常见且实用的方法如下,按使用场景从简单到进阶说明:
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log /var/log/nginx/error.log
-f表示 follow,实时刷新
tail -f /var/log/nginx/access.log | grep -E ' 404 | 500 '
tail -f /var/log/nginx/access.log | grep '192.168.1.100'
tail -f /var/log/nginx/access.log | grep 'POST'
tail -f /var/log/nginx/access.log | ccze -A
安装:
# Debian / Ubuntu
apt install ccze
# CentOS
yum install ccze
watch -n 1 "wc -l /var/log/nginx/access.log"
tail -f /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr
goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED
实时终端模式:
goaccess /var/log/nginx/access.log --log-format=COMBINED -o /dev/stdout
lnav /var/log/nginx/
docker logs -f nginx
或:
docker exec -it nginx tail -f /var/log/nginx/access.log
Nginx 日志可能被 logrotate 切割:
tail -F /var/log/nginx/access.log
-F可自动跟踪被重命名的日志
| 场景 | 推荐方式 |
|---|---|
| 快速排查 | tail -f |
| 错误定位 | `tail -f |
| 可视化 | GoAccess |
| 多日志 | lnav |
如果你有 具体需求(如:统计接口耗时、监控异常、告警),我可以直接给你定制命令或脚本。