1. 系统自带工具监控基础状态
Debian系统自带的服务管理与进程监控工具可直接查看Nginx的基础运行状态。使用systemctl status nginx可检查Nginx服务是否运行、最近日志片段及启动状态;nginx -t用于验证Nginx配置文件语法,避免因配置错误导致服务异常;netstat -tuln | grep nginx或ss -tuln | grep nginx可查看Nginx监听的端口(如80、443),确认服务是否正常监听;top或htop命令能实时监控Nginx进程的CPU、内存占用情况,快速识别资源瓶颈。
2. 启用Nginx内置Status模块查看实时指标
Nginx内置的ngx_http_stub_status_module模块可提供实时连接与请求统计。需先修改配置文件(如/etc/nginx/sites-available/default),在server块中添加以下内容:
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1; # 仅允许本地访问
deny all;
}
保存后重启Nginx(sudo systemctl restart nginx),通过浏览器访问http://your_server_ip/nginx_status即可查看关键指标:当前活跃连接数(Active connections)、接收请求数(Accepted)、处理完成的请求数(Handled)、当前正在处理的请求数(Reading/Writing/Waiting)。
3. 利用第三方监控工具实现全面可视化
nginx-prometheus-exporter工具将Nginx指标(如请求量、响应时间、错误率)转换为Prometheus可识别的格式。安装exporter后,在Prometheus中配置抓取目标(scrape_configs添加Nginx exporter的地址),再通过Grafana创建仪表盘,实现实时监控与历史趋势可视化。4. 日志分析与性能瓶颈定位
Nginx的访问日志(默认/var/log/nginx/access.log)与错误日志(默认/var/log/nginx/error.log)是定位性能问题的关键。
awk、grep等命令提取关键信息,如统计访问量最高的IP(awk '{print $1}' access.log | sort | uniq -c | sort -nr)、高频错误状态码(grep ' 500 ' error.log)、慢请求(需在配置中添加$request_time字段,如log_format slow '$remote_addr - $request_time $request';,再分析slow.log)。goaccess access.log --log-format=COMBINED -o report.html),或通过ELK Stack(Elasticsearch+Logstash+Kibana)进行大规模日志收集、存储与分析,快速识别异常模式(如频繁404请求、恶意爬虫)。5. 安全监控与异常检测
结合日志分析与工具,可检测常见安全威胁:
awk '$9 == 404 {print $7}' access.log | sort | uniq -c | sort -nr找出频繁访问不存在的路径的IP,可能是扫描行为。awk -F'"' '{print $6}' access.log | sort | uniq -c | sort -nr识别可疑的User-Agent(如包含“sqlmap”“nmap”的请求),及时拦截恶意访问。