要监控Nginx服务器上所有请求,有几种常用方法可以实现:
这是最基本的方法,Nginx默认会记录所有请求到访问日志中。
配置示例:
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
}
启用Nginx内置的状态模块可以查看基本请求统计:
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
访问/nginx_status会显示:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
GoAccess:实时日志分析工具
goaccess /var/log/nginx/access.log -a
ELK Stack (Elasticsearch, Logstash, Kibana):搭建完整的日志分析平台
Prometheus + Grafana:通过nginx_exporter收集指标并可视化
Zabbix:企业级监控解决方案
ngxtop:类似top命令的Nginx实时监控工具
ngxtop -l /var/log/nginx/access.log
lsof:查看实时连接
lsof -i :80
对于多服务器环境,可以:
需要更具体的实现方案或针对特定工具的配置细节,可以进一步说明您的环境和需求。