温馨提示×

怎样监控debian nginx日志

小樊
55
2026-09-01 09:19:24
栏目: 智能运维

在 Debian 上监控 Nginx 日志,常见做法分为 实时查看、日志分析、自动监控与告警 三类。下面按实用程度一步步说明。


一、Nginx 日志位置(Debian 默认)

Debian 下 Nginx 日志通常在:

/var/log/nginx/access.log   # 访问日志
/var/log/nginx/error.log    # 错误日志

如果你用了 sites-enabled 自定义配置,也可能在其他路径。

查看日志路径:

nginx -T | grep access_log
nginx -T | grep error_log

二、实时查看日志(最常用)

1. tail 实时查看

tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

只看错误:

tail -f /var/log/nginx/error.log | grep error

2. 多日志同时看

multitail /var/log/nginx/access.log /var/log/nginx/error.log

安装:

apt install multitail

三、按条件监控(非常实用)

1. 监控 404 / 500 错误

tail -f /var/log/nginx/access.log | awk '$9 ~ /404|500/'

2. 监控某个 IP

tail -f /var/log/nginx/access.log | grep 1.2.3.4

3. 统计实时访问频率

tail -f /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c

四、使用系统工具(推荐)

1. journalctl(如果用 systemd)

journalctl -u nginx -f

五、日志分析与可视化(生产环境推荐)

1. GoAccess(实时 Web 面板)

apt install goaccess
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 report.html --real-time-html

浏览器打开 report.html 即可。


2. ngxtop(类似 top 命令)

pip install ngxtop
ngxtop

查看请求数、状态码、URL:

ngxtop top remote_addr

六、自动监控 + 告警(运维级)

1. fail2ban(防暴力/扫描)

apt install fail2ban

示例(监控 404 扫描):

[nginx-404]
enabled = true
filter = nginx-404
logpath = /var/log/nginx/access.log
maxretry = 10
findtime = 60
bantime = 3600

2. Prometheus + Grafana(企业级)

  • nginx-prometheus-exporter 采集指标
  • Grafana 展示 QPS、5xx、延迟

3. 定时脚本告警(简单)

if tail -n 100 /var/log/nginx/error.log | grep -q "crit"; then
  echo "Nginx error!" | mail -s "Nginx Alert" admin@domain.com
fi

七、日志轮转(别忘了)

Debian 默认用 logrotate:

cat /etc/logrotate.d/nginx

手动执行:

logrotate -f /etc/logrotate.d/nginx

推荐组合(按场景)

场景 推荐
临时排错 tail -f
日常运维 ngxtop
可视化 GoAccess
安全防护 fail2ban
企业监控 Prometheus + Grafana

如果你愿意,我可以:

  • 给你 一套可直接用的监控脚本
  • 帮你 配置 fail2ban / GoAccess
  • 针对 高并发 / 被攻击 场景给方案

你现在是 个人服务器、生产环境还是学习用?

0 踩