Nginx日志本身主要用于記錄請求和錯誤信息,直接監控系統資源(如CPU、內存、磁盤I/O等)需結合系統工具或第三方模塊。以下是具體方法:
啟用stub_status
模塊,可獲取活躍連接數、請求處理速度等基礎信息,間接反映資源使用情況。
nginx.conf
中添加:location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
http://服務器IP/nginx_status
查看,示例輸出:Active connections: 100
server accepts handled requests: 1000 1000 5000
Reading: 5 Writing: 20 Waiting: 75
Reading/Writing
表示正在處理請求的連接數,Waiting
表示空閑連接數,可輔助判斷CPU/內存負載。需通過Linux系統工具獲取CPU、內存、磁盤等詳細數據,與Nginx日志結合分析:
top
、htop
命令查看Nginx進程的CPU和內存占用。ps -eo pid,cmd,%cpu,%mem | grep nginx
篩選Nginx相關進程的資源占用。iostat -x 1
查看磁盤讀寫速度,重點關注%util
(磁盤利用率)和await
(平均響應時間)。iotop
定位高I/O進程,確認是否為Nginx日志寫入或靜態資源服務導致。iftop -i eth0
查看網絡接口的實時流量,判斷Nginx的網絡負載。nload
監控網絡吞吐量,識別帶寬瓶頸。通過分析Nginx日志中的請求特征,定位可能引發資源瓶頸的請求模式:
access.log
中篩選響應時間($request_time
)超過閾值的請求,查看對應URI和客戶端IP。awk -F ' ' '$10 > 1 {print $7, $10}' /var/log/nginx/access.log | sort -k2 -nr
error.log
中的upstream timeout
或connection refused
等錯誤,可能指向后端服務響應慢或資源不足。nginx-prometheus-exporter
采集Nginx指標(如請求率、連接數),結合Grafana可視化系統資源與Nginx性能的關聯。Nginx日志側重于請求層面的監控,系統資源監控需依賴Linux工具或第三方平臺。建議通過stub_status
獲取基礎狀態,結合top
、iostat
等工具分析資源占用,再利用日志分析工具定位異常請求與資源瓶頸的關聯。