您现在的位置是:首页 > 文章详情

zabbix应用实战--Nginx监控详解

日期:2018-11-29点击:556

样例视频教程参考:

http://www.roncoo.com/course/view/fb3050a5b34b42f39ccad83ebebc89c1


龙果运维平台开源地址:https://github.com/roncoo/roncoo-cmdb


一、nginx监控说明:

 

 1、监控指标:

基本活动指标

错误指标

性能指标

 

2、nginx 处理请求流程(图形):

 

 images/pwGGErXRQikXDZNnrQ5bjkXMCm5xy3hM.png                                       

 

注释:Accepts(接受)、Handled(已处理)、Requests(请求数)是一直在增加的计数器。Active(活跃)、Waiting(等待)、Reading(读)、Writing(写)随着请求量而增减

 

名称

描述

指标类型

Accepts(接受)

NGINX 所接受的客户端连接数

资源: 功能

Handled(已处理)

成功的客户端连接数

资源: 功能

Active(活跃)

当前活跃的客户端连接数

资源: 功能

Dropped(已丢弃,计算得出)

丢弃的连接数(接受 – 已处理)

工作:错误*

Requests(请求数)

客户端请求数

工作:吞吐量

 

 

NGINX worker 进程接受 OS 的连接请求时 Accepts 计数器增加,而Handled 是当实际的请求得到连接时(通过建立一个新的连接或重新使用一个空闲的)。这两个计数器的值通常都是相同的,如果它们有差别则表明连接被Dropped, 往往这是由于资源限制,比如已经达到 NGINX 的worker_connections的限制。

 

二、监控配置:

 

1、主要是基于nginx的status模块.在编译安装时候加上--with-http_stub_status_module.模块编译

 

2、修改配置文件开启nginx_status:

  location /nginx_status {

stub_status on;

access_log off;

allow 192.168.1.100;  访问IP

deny all;

}

 

3、打开web 监控:

 

images/Ax6fzzMSj3eFc8RCycAeySYBsAn7h58j.png


注释:

Active:当前活跃的连接数。

Accepts:接受的请求数

Handled:处理的请求数(正常服务器响应,这两项应该是可以相等的)

Requests:客户端处理的请求数。(吞吐量)

Reading:当接收到请求时,连接离开 Waiting 状态,并且该请求本身使 Reading 状态计数增加。在这种状态下 NGINX 会读取客户端请求首部。请求首部是比较小的,因此这通常是一个快速的操作。


Writing:请求被读取之后,其使 Writing 状态计数增加,并保持在该状态,直到响应返回给客户端。这意味着,该请求在 Writing 状态时, 一方面 NGINX 等待来自上游系统的结果(系统放在 NGINX “后面”),另外一方面,NGINX 也在同时响应。请求往往会在 Writing 状态花费大量的时间。


Waiting:活跃的连接也可以处于 Waiting 子状态,如果有在此刻没有活跃请求的话。新连接可以绕过这个状态并直接变为到 Reading 状态,最常见的是在使用“accept filter(接受过滤器)” 和 “deferred accept(延迟接受)”时,在这种情况下,NGINX 不会接收 worker 进程的通知,直到它具有足够的数据才开始响应。如果连接设置为 keep-alive ,那么它在发送响应后将处于等待状态

 

三、添加监控:

 

1、添加脚本:

[root@BJ-monitor-h-01 scripts]# cat nginx_status.sh

#!/bin/bash 

# Script to fetch nginx statuses for tribily monitoring systems 

# Author: xiaoluo

function active { 

/usr/bin/curl "http://192.168.10.234/status" 2>/dev/null| grep 'Active' | awk '{print $NF}' 

}

function reading { 

/usr/bin/curl "http://192.168.10.234/status" 2>/dev/null| grep 'Reading' | awk '{print $2}' 

}

function writing { 

/usr/bin/curl "http://192.168.10.234/status" 2>/dev/null| grep 'Writing' | awk '{print $4}' 

}

function waiting { 

/usr/bin/curl "http://192.168.10.234/status" 2>/dev/null| grep 'Waiting' | awk '{print $6}' 

}

function accepts { 

/usr/bin/curl "http://192.168.10.234/status" 2>/dev/null| awk NR==3 | awk '{print $1}' 

function handled { 

/usr/bin/curl "http://192.168.10.234/status" 2>/dev/null| awk NR==3 | awk '{print $2}' 

}

function requests { 

/usr/bin/curl "http://192.168.10.234/status" 2>/dev/null| awk NR==3 | awk '{print $3}' 

}

# Run the requested function 

$1

 

2、zabbix配置文件添加自定义监控:

UserParameter=nginx[*],/usr/local/zabbix/scripts/nginx_status.sh $1

 



 

3、web界面添加item即可,以链接状态为例(类似的添加即可):

 

images/AcCeQx56c2aNNpcawB3jYCMPwJ2QkFmX.png

 

   总结,导出nginx监控添加已经完成。

 

 

更多课程信息,请关注 龙果学院 官方网站http://www.roncoo.com/

或关注 龙果 微信公众号 RonCoo_com

images/CwJy7ZzRF36khamZsHBPNQEQx8ZrtdJx.jpg


原文链接:https://blog.roncoo.com/article/126155
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章