如何监控 Nginx?(如何监控电脑)

网友投稿 630 2022-08-31

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

如何监控 Nginx?(如何监控电脑)

监控 Nginx 的参数

Nginx 提供哪些监控参数

下表是 Nginx 提供的监控参数及其简单释义。

参数名称参数描述
Active connections 当前活跃的用户连接(包含Waiting状态)
accepts 接收到的用户连接总数
handled Nginx处理的用户连接总数
requests 用户请求总数
Reading 当前连接中Nginx读取请求首部的个数
Writing 当前连接中Nginx写返回给用户的个数
Waiting 当前没有请求的活跃用户连接数

通过下面的图,可以清晰的看到参数的具体意义和作用。

当用户请求连接Nginx服务器时,accepts计数器会加一。且当服务器处理该连接请求时,handled计数器同样会加一。一般而言,两者的值是相等的,除非达到了某些资源极限(如worker_connection的限制)。

用户连接请求被处理,就会进入 active 状态。如果该连接没有其他 request,则进入 waiting 的子状态;如果有 request,nginx 会读取 request 的 header,计数器 request 加一,进入 reading 的子状态。 reading 状态持续时间非常短,header 被读取后就会进入 writing 状态。事实上,直到服务器将响应结果返回给用户之前,该连接会一直保持 writing 状态。所以说,writing 状态一般会被长时间占用。

Nginx提供哪些监控参数

下表是Nginx Plus提供的主要监控参数、说明以及和Nginx的差异。

参数名称参数描述与Nginx差异
Active 当前活跃的用户连接(不包含 Idel 状态) 等同 Active connections
Accepted 接收到的用户连接总数 等同 accepts
Dropped Nginx 丢弃的用户连接总数 accepts - handled
Idle 当前没有请求的活跃用户连接数 等同 Waiting
Total 用户请求总数 等同 requests
Current(Requests) 当前有请求的活跃用户连接数(等同 Active)Reading + Writing
Current(Connections) 当前在线用户数(Active + Idle) Reading + Writing + Waiting

主要参数和开源的Nginx相比较,区别不大。主要就是换了名字,以及通过加减法的参数整合。同样,通过下面的图也能看清这些参数的作用。

怎么利用这些参数

开源的 Nginx 提供的原始参数中,实时性的会比较有用,如 Active connections、Reading、Writing 以及 Waiting。这些数据能够反映当前 Nginx 的负载情况,方便在服务器出现问题时及时发现问题。而另一些数据由于不是状态量,Nginx 无法计算当前的量值而改做其统计数,如 accepts、handled 和 requests。

对于维护网站人员,accepts、handled 和 requests 的统计值用处是不大的,值得参考的是短时间内这三者数值的增量。这个短时间可以是一秒,如 acceptspersecond、handledpersecond 和 requestspersecond。一个简单的做法就是每秒都去读取这些参数,返回一个和上一秒的差值就行。当然,handledpersecond 替换成 droppedpersecond=acceptspersecond-handledpersecond 就更完美了。

以上步骤搞定后,还有需要一个配置 URL 来开启 Nginx 状态页。打开你的网站对应 Nginx 的配置文件,添加以下修改:

server{ listen your-website-port; location /basic_status { stub_status; }}

如果 Nginx 版本低于1.7.5,则需要语法指令添加参数(任意参数):

server{ listen your-website-port; location /basic_status { stub_status on; }}

修改完成后,需要重新载入 Nginx,键入命令 nginx -s reload,然后就能在状态页(127.0.0.1:your-website-port/basic_status)看见你的监控参数了。大概是这个样子:

Active connections: 1 server accepts handled requests 38 38 38Reading: 0 Writing: 1 Waiting: 0

Nginx Plus 和 Nginx 在前面的设置差不多。配置状态页时,需要在配置文件中加上 server 模块:

server { listen your-website-port; location /status { status; } location = /status.html { }}

重载一下Nginx,你会在状态页(127.0.0.1:your-website-port/status.html)看到大概这个样子:

上一篇:如何监控 Nginx?(如何监控他人手机一切内容)
下一篇:告警分析:如何帮助运维团队快速做出最佳决策?(告警分析:如何帮助运维团队快速做出最佳决策措施)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~