Nginx日志健康监控需用饼图看状态码分布、折线图分析QPS与响应时间趋势、柱状图定位上游异常、条形图识别高频访问源;所有数据须结构化清洗,字段类型正确(如status为keyword),并归一化URL和Referer。

用可视化图表展示 Nginx 日志中的系统健康状况,核心是把关键指标映射到合适的图表类型,并确保数据已结构化、字段类型正确、常见干扰项(如空 Referer、代理 IP)已清洗归一化。
状态码分布:用饼图快速判断服务健康度
HTTP 状态码是最直接的健康信号。4xx 表示客户端问题(如链接失效、爬虫误配),5xx 则反映后端异常(如超时、崩溃)。饼图能一眼看出错误占比是否异常升高。
- 在 Kibana 中选 Pie chart,数据源设为已索引的 Nginx 日志,Split Slices → Aggregation 选 Count,Bucket 选 status 字段(必须是 keyword 类型,否则无法聚合)
- 若想聚焦风险,可加过滤条件:status: [400 TO 499] OR status: [500 TO 599]
- 命令行快速验证:用
awk '{print $9}' access.log | sort | uniq -c | sort -nr查原始分布,辅助比对图表是否可信
请求趋势与 QPS 波动:用折线图抓异常时段
QPS(每秒请求数)和响应时间的时序变化,能暴露突发流量、慢响应或服务抖动。折线图适合呈现这种连续性指标随时间的变化规律。
- 在 Grafana 或 Kibana 中,X 轴设为 @timestamp,Y 轴用 Date Histogram 聚合,指标选 count()(QPS)或 avg(request_time)(平均响应时间)
- 注意设置合理的时间粒度——太粗会掩盖尖峰,太细则查询压力大;生产环境建议按分钟或 5 分钟聚合
- 可叠加 5xx 率曲线(
sum(status_5xx) / count())在同一图表中,便于定位错误是否伴随流量突增或延迟上升
上游服务异常:用柱状图定位故障源头
当 Nginx 作为反向代理时,后端服务的健康状况直接影响整体可用性。仅看全局状态码不够,需下钻到具体 upstream 和 URI。
- 在可视化工具中建 Vertical bar chart,X 轴设为 upstream_addr 或 upstream_http_host + request_uri,Aggregation 选 Top values,Size 设为 10
- 筛选条件限定为 status >= 400,避免正常流量干扰
- 若使用 nginx-module-vts + Prometheus,可直接用
nginx_vhost_response_codes_total{code=~"5.."}按 upstream 标签聚合,更精准
高频访问来源与资源:用条形图+表格识别风险点
异常高访问的 IP、Referer 或 URL,可能是攻击、爬虫或热点内容。这类排行类分析适合用条形图展示 TopN,再辅以表格查看明细。
- URL 排行需做路径归一化(如
/user/123→/user/:id),否则统计失效;Referer 为空统一标为 “Direct” - Kibana 中用 Terms aggregation 做 remote_addr 或 uri 的 Top values;GoAccess 可一键生成含 IP/Referer 条形图的 HTML 报告
- 结合 C 段 IP(如
192.168.1.*)排行,能快速识别机房扫描或恶意集群行为


















