温馨提示×

怎样监控nginx日志

小樊
48
2026-10-08 12:44:41
栏目: 编程语言

监控 Nginx 日志通常可以从实时查看、统计分析、报警监控、可视化几个层面来做。下面按常见场景给你一个较完整的方案。


一、基础:实时查看 Nginx 日志

1. 查看访问日志(默认位置)

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

2. 查看错误日志

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

3. 过滤关键信息

# 只看 500 错误
tail -f /var/log/nginx/access.log | grep ' 500 '

# 只看某个 IP
tail -f /var/log/nginx/access.log | grep '192.168.1.1'

二、常用分析命令(无工具也能用)

1. 统计访问最多的 IP

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

2. 统计请求最多的 URL

awk '{print $7}' access.log | sort | uniq -c | sort -nr | head

3. 统计状态码分布

awk '{print $9}' access.log | sort | uniq -c | sort -nr

4. 统计每分钟请求数

awk '{print $4}' access.log | cut -c 2-18 | uniq -c

三、使用 GoAccess(轻量级实时可视化)

安装

yum install goaccess   # CentOS
apt install goaccess   # Ubuntu

实时终端监控

goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED -p /etc/goaccess/goaccess.conf

或终端实时:

goaccess /var/log/nginx/access.log --log-format=COMBINED -c

✅ 适合:单台服务器、快速看流量和错误


四、ELK / EFK(生产级日志监控)

架构

Nginx → Filebeat → Logstash/ES → Kibana

组件作用

  • Filebeat:采集 Nginx 日志
  • Elasticsearch:存储 & 检索
  • Kibana:可视化 & 报警

示例 Filebeat 配置

filebeat.inputs:
- type: log
  paths:
    - /var/log/nginx/access.log
    - /var/log/nginx/error.log

output.elasticsearch:
  hosts: ["http://localhost:9200"]

✅ 适合:多服务器、长期存储、复杂分析


五、Prometheus + Grafana(指标型监控)

思路

  • 用 nginx-exporter 暴露指标
  • Prometheus 抓取
  • Grafana 展示

常用 exporter

  • nginx-prometheus-exporter
  • 或 vts 模块(nginx-module-vts)

✅ 适合:QPS、连接数、状态码比例等指标监控


六、异常报警(重要)

可报警的内容

  • 5xx 错误率突增
  • 请求量异常
  • 某个 IP 高频访问
  • 后端响应时间变长

实现方式

  • Kibana Watch
  • Prometheus Alertmanager
  • 脚本 + 钉钉 / 企业微信 / 邮件

七、日志切割(别忽略)

使用 logrotate

/etc/logrotate.d/nginx

示例:

/var/log/nginx/*.log {
    daily
    rotate 14
    compress
    missingok
    notifempty
    sharedscripts
    postrotate
        nginx -s reopen
    endscript
}

八、推荐组合(按规模)

场景 推荐方案
个人 / 小站 tail + GoAccess
中小型 GoAccess + 报警脚本
企业级 Filebeat + ES + Kibana
运维指标 Prometheus + Grafana

如果你愿意,可以告诉我:

  • ✅ 单台还是集群
  • ✅ 云服务器还是 K8s
  • ✅ 想监控“错误”还是“性能”
  • ✅ 是否要报警

我可以直接给你一套可复制的配置文件。

0 踩