Nginx在生产环境中的应用越来越广泛,所以需要对Nginx的性能状态做一些监控来发现出来出现的问题。zabbix监控Nginx,首先确认Nginx的监控指标,主要有:基本活动指标,错误指标,性能指标。
Nginx处理流程图具体如下:
注释:Accepts(接受)、Handled(已处理)、Requests(请求数)是一直在增加的计数器。Active(活跃)、Waiting(等待)、Reading(读)、Writing(写)随着请求量而增减
名称
描述
指标类型
Accepts(接受)
NGINX 所接受的客户端连接数
资源: 功能
Handled(已处理)
成功的客户端连接数
资源: 功能
Active(活跃)
当前活跃的客户端连接数
资源: 功能
Dropped(已丢弃,计算得出)
丢弃的连接数(接受 - 已处理)
工作:错误*
Requests(请求数)
客户端请求数
工作:吞吐量
NGINX worker 进程接受 OS 的连接请求时 Accepts 计数器增加,而Handled 是当实际的请求得到连接时(通过建立一个新的连接或重新使用一个空闲的)。这两个计数器的值通常都是相同的,如果它们有差别则表明连接被Dropped, 往往这是由于资源限制,比如已经达到 NGINX 的worker_connections的限制。
Zabbix监控Nginx性能状态相关文件可以到Linux公社资源站下载:
------------------------------------------分割线------------------------------------------
具体下载目录在 /2017年资料/2月/6日/Zabbix监控Nginx性能状态/
------------------------------------------分割线------------------------------------------
首先nginx需要配置nginx_status 具体步骤是:在 zabbix agentd客户端上,查看nginx是否加载了with-http_stub_status_module。因为 zabbix 监控nginx是根据nginx的Stub Status模块,抓取Status模块所提供的数据。假如以前没开启,现在想启用StubStatus 模块,在编译nginx 的时候要加上参数with-http_stub_status_module,执行./configure && make就可以了,不用make install,一般情况下都是安装的,具体的安装配置如下
(一)配置nginx
1,查看nginx_status是否开启,查看已开启。
[root@iZ237lzm354Z scripts]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.4.7
built by gcc 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC)
TLS SNI support enabled
configure arguments: --with-http_stub_status_module --with-http_ssl_module --with-pcre
--with-http_realip_module --with-http_image_filter_module
[root@iZ237lzm354Z scripts]#
2,nginx_status开启的步骤:
[root@iZ237lzm354Z scripts]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80 ;
server_name ;
rewrite ^/invitejoin/(.*)\.htm[l]?$ /register.shtml?$1 last;
index index.jsp index.html;
root /opt/home;
location = /nginx-status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow 10.253.12.34;
####zabbix服务器端的IP地址一般为内网IP
}
3,测试并启动nginx
[root@iZ237lzm354Z scripts]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@iZ237lzm354Z scripts]# /usr/local/nginx/sbin/nginx -s reload
4,用curl来进行测试:
[root@iZ237lzm354Z scripts]# curl
Active connections: 979
server accepts handled requests
756072922 756072922 1136799890
Reading: 0 Writing: 4 Waiting: 975
备注:
Active connections –当前活跃的连接数量
server accepts handled requests — 总共处理了756072922个连接 , 成功创建 756072922次握手, 总共处理了1136799890个请求
reading — 读取客户端的连接数.
writing — 响应数据到客户端的数量
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。
一些Zabbix相关教程集合: