nginx在centos上ssl性能监控方法
导读:Nginx 在 CentOS 上的 SSL 性能监控方法 一 监控目标与关键指标 连接与吞吐:Active Connections、Accepted/Handled/Requests、Reading/Writing/Waiting、RPS...
Nginx 在 CentOS 上的 SSL 性能监控方法
一 监控目标与关键指标
- 连接与吞吐:Active Connections、Accepted/Handled/Requests、Reading/Writing/Waiting、RPS/QPS、CPS、Throughput、P95/P99 Latency。这些指标反映连接负载与处理能力,是判断 SSL/TLS 开销是否成为瓶颈的基础。
- SSL/TLS 专项:SSL Handshakes(握手次数/秒)、SSL Session Reuses(会话复用率)、SSL Errors(握手/验证失败)。握手与证书问题是 HTTPS 性能与可用性的首要风险点。
- 系统资源与网络:CPU 使用率与软中断 si、网卡带宽、I/O,用于识别 SSL 计算(握手、加解密)与网络是否成为瓶颈。
- 上游健康:Upstream Response Time、5xx/超时,用于区分是 SSL 问题还是上游服务问题。
二 快速检查与即时诊断
- 证书与链路状态(有效期、链是否完整):
openssl s_client -connect your_domain.com:443 -servername your_domain.com 2> /dev/null | openssl x509 -noout -text
openssl s_client -connect your_domain.com:443 -servername your_domain.com 2> /dev/null | openssl x509 -noout -dates - 服务与配置语法:
sudo systemctl status nginx
sudo nginx -t - 基础连接状态(明文路径,便于快速排查):
curl -k https://127.0.0.1/status
解析示例:
curl -s https://127.0.0.1/status | awk ‘NR==3{ print “Requests:”,$3} ’
curl -s https://127.0.0.1/status | awk ‘NR==4{ print “Reading:”,$2,“Writing:”,$4} ’ - 建议:为状态页设置访问控制(如仅内网可访问),避免暴露。
三 持续监控方案
- 方案一 Nginx 状态页 + 脚本采集(轻量、易落地)
配置片段:
server {
listen 80;
location /status {
stub_status on;
allow 127.0.0.1; deny all;
access_log off;
}
}
采集与上报:通过定时任务 curl 获取指标并推送到 Prometheus Pushgateway 或写入 InfluxDB,Grafana 展示。适合无法部署复杂 Exporter 的场景。 - 方案二 nginx-vts-exporter + Prometheus/Grafana(推荐)
原理:为 Nginx 编译或加载 nginx-module-vts,开启 vhost_traffic_status_zone 与 /status JSON 接口,使用 nginx-vts-exporter 抓取并暴露指标。
关键收益:可获得按 server/vhost 维度的 RPS、连接数、响应时间分布、缓存命中 等,并可与 SSL 指标结合展示。
部署要点:- 编译或安装带 vts 模块的 Nginx;
- 配置 vhost_traffic_status_zone 与访问控制;
- 启动 exporter 指向 /status/format/json;
- Prometheus 抓取 exporter,Grafana 使用 Nginx-VTS 仪表盘。
- 方案三 商业/托管监控(开箱即用)
如 New Relic、Datadog、Dynatrace、SolarWinds 等,提供预置 Nginx/SSL 仪表盘、告警与日志关联,适合快速上线与统一观测。
四 压测与瓶颈定位
- 工具与场景:使用 wrk/wrk2 对 HTTP/HTTPS 进行对比压测,覆盖 0KB/1KB/10KB 等不同响应体大小,观察 RPS、CPS、Throughput、Latency 的变化。
- 系统观测:
- CPU 与软中断:top/vmstat 观察 si(软中断)是否接近 100%;
- 网络:sar -n DEV 观察 网卡带宽 是否打满;
- 负载均衡:检查 worker 进程 CPU 使用是否均衡,不均可能与 惊群/accept_mutex/reuseport 相关。
- 结论要点:当 SSL/TLS 成为瓶颈时,常见现象是 RPS 上不去、P95/P99 延迟升高、CPU 软中断偏高;此时应结合握手指标与系统指标联动分析。
五 关键告警与优化建议
- 建议告警规则
- 证书过期预警:距到期 ≤ 30 天 触发;
- 握手失败/错误率上升:如 5 分钟内 SSL handshake errors 突增;
- 会话复用率下降:如 SSL Session Reuse 明显低于历史基线(会话复用可显著降低握手开销);
- P95/P99 延迟异常、5xx 错误率升高、带宽/CPU si 打满。
- 优化方向(与监控联动)
- 协议与套件:优先 TLSv1.3,启用 ECDHE 与 AEAD 套件;
- 会话复用:配置 ssl_session_cache shared:MozSSL:10m; ssl_session_timeout 1d; ;
- OCSP Stapling:开启 ssl_stapling on; ssl_stapling_verify on; 并配置 resolver 与 ssl_trusted_certificate,减少客户端验证往返;
- 证书链:合并 full chain,减少验证链路;
- 硬件加速:在具备 AES-NI/SSL 加速 的平台上启用相应引擎(如 ssl_engine),降低 CPU 消耗。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: nginx在centos上ssl性能监控方法
本文地址: https://pptw.com/jishu/765403.html
