前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx 监控指标及收集

nginx 监控指标及收集

作者头像
用户3147702
发布2022-06-27 12:33:50
3.6K0
发布2022-06-27 12:33:50
举报
文章被收录于专栏:小脑斧科技博客

1. 概述

web 服务器 nginx 以其高性能与抗并发能力越来越多的被用户使用。 作为一款服务器产品,其运行状态是我们密切关注的,因此,对 nginx 的实时监控就成为必须要关注的了。 nginx 提供了 ngx_http_stub_status_module 模块,这个模块提供了基本的监控功能。 作为官方企业版的 nginx plus 通过 ngx_http_status_module 提供了更加完善的监控功能: http://demo.nginx.com/status.html。

2. 监控的主要指标

一般来说,我们需要对三个主要的指标进行监控: 1. 基本活跃指标 2. 错误指标 3. 性能指标

2.1. 基本活跃指标

下图显示了 nginx 收集的基本指标。

nginx 监控基本活跃指标

名称

描述

是否累加历史数据

Accepts(接受)

NGINX 接受的客户端连接数(包括 Handled + Dropped + Waiting)

Handled(已处理)

成功处理的客户端连接数(包含 Waiting 状态连接)

Active(活跃)

当前活跃的客户端连接数

Dropped(已丢弃)

已丢弃连接数(出错)

Requests(请求数)

客户端请求数

Waiting(等待)

正在等待的连接数

Reading(读)

正在执行读操作的连接数

Writing(写)

正在执行写操作的连接数

2.2. 每秒请求数 — QPS

按照固定时间间隔采样请求数据,计算出单位时间的请求量可以看到你的 web 服务器的请求情况。 通过持续的 QPS 监控,可以立刻发现是否被恶意攻击或对服务的可用性进行评估。 虽然当问题发生时,通过 QPS 不能定位到确切问题的位置,但是他却可以在第一时间提醒你环境可能出问题了。

2.3. 服务器错误率

通过监控固定时间间隔内的错误代码(4XX代码表示客户端错误,5XX代码表示服务器端错误),可以了解到客户端收到的结果是否是正确的。 错误率突然的飙升很可能是你的网站漏洞发出的信号。

如果你希望通过 access log 分析错误率,那么你需要配置 nginx 的日志模块,让 nginx 将响应码写入访问日志。

2.4. 请求处理时间

请求处理时间也可以被记录在 access log 中,通过分析 access log,统计请求的平均响应时间,通过持续观察,可以发现上游服务器的问题。

3. 指标的收集

介绍了这么多的监控指标,事实上,上面介绍的仅仅是基本的监控指标,针对实际的情况,还有很多指标十分具有监控的必要。 那么,怎么去收集这些指标进行监控呢?

3.1. ngx_http_stub_status_module

通过在编译时加入 nginx 的 ngx_http_stub_status_module 我们可以实时监控以下基本的指标: 1. Active connections — 活动连接数 2. accepts — 接收请求数 3. handled — 成功处理请求数 4. requests — 总请求数 5. reding — 正在进行读操作的请求数 6. writing — 正在进行写操作的请求数 7. waiting — 正在等待的请求数

具体的使用方法是在执行 ./configure 时,指定 —with-http_stub_status_module,然后通过配置:

代码语言:javascript
复制
server {
    location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
    }
}

然后通过访问 http://localhost/nginx_status 就可以看到简单的统计页面。

3.2. nginx plus — ngx_http_status_module

商业版的 nginx plus 通过他的 ngx_http_status_module 提供了比 nginx 更多的监控指标,可以参看 http://demo.nginx.com/status.html。

3.3. nginx access log 分析

nginx 的 access log 中可以记录很多有价值的信息,通过分析 access log,可以收集到很多指标。 python 编写的 linux 工具 ngxtop 就实现了对 access log 的分析功能:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小脑斧科技博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 概述
  • 2. 监控的主要指标
    • 2.1. 基本活跃指标
      • 2.2. 每秒请求数 — QPS
        • 2.3. 服务器错误率
          • 2.4. 请求处理时间
          • 3. 指标的收集
            • 3.1. ngx_http_stub_status_module
              • 3.2. nginx plus — ngx_http_status_module
                • 3.3. nginx access log 分析
                相关产品与服务
                云服务器
                云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档