首页主机资讯Nginx在Ubuntu上如何监控性能

Nginx在Ubuntu上如何监控性能

时间2025-12-11 12:20:11发布访客分类主机资讯浏览485
导读:Nginx在Ubuntu上的性能监控实践 一 快速检查与内置状态页 启用并验证内置模块:使用 Nginx 自带的 ngx_http_stub_status_module 暴露实时指标。检查是否支持: 命令:sudo nginx -V 2...

Nginx在Ubuntu上的性能监控实践

一 快速检查与内置状态页

  • 启用并验证内置模块:使用 Nginx 自带的 ngx_http_stub_status_module 暴露实时指标。检查是否支持:
    • 命令:sudo nginx -V 2> & 1 | grep -- '--with-http_stub_status_module'
  • 配置状态页(示例):
    • /etc/nginx/sites-available/default/etc/nginx/conf.d/status.confserver 块中添加:
      location /nginx_status {
          
          stub_status on;
          
          access_log off;
          
          allow 127.0.0.1;
             # 建议仅内网或本机访问
          deny all;
      
      }
          
      
    • 检查并重载:sudo nginx -t & & sudo systemctl reload nginx
  • 访问与解读:
    • 本机测试:curl http://127.0.0.1/nginx_status
    • 关键字段含义:
      • Active connections:当前活跃连接数
      • accepts/handled/requests:累计接受/成功处理/总请求数
      • Reading/Writing/Waiting:读取/写入/等待中的连接数
  • 安全建议:状态页仅在内网开放,或通过 Nginx 反向代理 + IP 白名单 暴露,避免被滥用。

二 日志分析与可视化

  • 实时与离线分析:
    • 实时查看:tail -f /var/log/nginx/access.log
    • 错误码分布:awk '{ print $9} ' /var/log/nginx/access.log | sort | uniq -c | sort -nr
  • 使用 GoAccess 生成可视化报告:
    • 安装:sudo apt-get install goaccess
    • 生成 HTML 报告:goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED
  • 集中化方案(可选):
    • 使用 ELK Stack(Elasticsearch + Logstash + Kibana) 收集、存储与可视化 Nginx 日志,便于长期趋势分析与告警。

三 指标采集与可视化平台

  • 开源组合 Prometheus + Grafana
    • 指标采集:
      • 系统层:Node Exporter(默认端口 9100
      • Nginx 层:
        • 方式 A(推荐):nginx-prometheus-exporter 读取 stub_status 页面
          • 启动示例:nginx-prometheus-exporter -nginx.scrape-uri=http://127.0.0.1/nginx_status
          • 默认指标端口:8080
        • 方式 B:若 Nginx 作为反向代理暴露 /metrics,可直接抓取(端口依实际配置)
    • Prometheus 抓取示例(prometheus.yml):
      scrape_configs:
        - job_name: 'node'
          static_configs:
            - targets: ['localhost:9100']
        - job_name: 'nginx'
          static_configs:
            - targets: ['localhost:8080']
      
    • Grafana:
      • 访问 http://:3000,添加 Prometheus 数据源,导入 Nginx 官方或社区仪表盘(如 ID 12708),即可查看连接、请求、响应时延、错误率等面板。
  • 企业级 APM(可选):
    • New RelicDatadog 提供 Nginx 集成,支持请求分析、错误追踪与告警,适合快速落地与托管运维。

四 系统级资源与健康检查

  • 资源监控常用命令:
    • 进程与负载:top / htop
    • 内存:free -h
    • 磁盘与 I/O:iostat -x 1(需 sudo apt-get install sysstat
    • 网络与连接:netstat -tulpen | grep ':80\|:443'
    • 综合采样:vmstat 1
  • 建议做法:
    • 将关键命令输出纳入 定时任务日志轮转,配合 阈值告警(如连接数、5xx 比例、磁盘使用率)实现主动发现。

五 关键指标与告警建议

  • 建议重点关注的指标与阈值示例:
    • Active connections:接近 worker_connections 上限时触发扩容或优化
    • 5xx 错误率:> 1% 持续 5 分钟即告警,排查上游与健康检查
    • 平均响应时间:显著上升时结合日志与后端(如 PHP-FPM、数据库)定位瓶颈
    • 请求速率与带宽:突增可能意味着爬虫或攻击,结合 WAF/限流 策略
    • 上游响应时延/失败率:检查后端健康、连接池与超时配置
    • 磁盘 I/O 与空间:确保 access/error log 与缓存目录有余量
  • 告警落地:
    • Prometheus + Alertmanager:基于 rate()、histogram_quantile() 等函数配置规则
    • 企业平台:在 Datadog/New Relic 中配置基于指标的 阈值/异常 告警
    • 通知渠道:邮件、企业微信、Slack、PagerDuty

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Nginx在Ubuntu上如何监控性能
本文地址: https://pptw.com/jishu/769257.html
Laravel在Debian上的缓存配置技巧 如何在Ubuntu上启动Nginx服务

游客 回复需填写必要信息