首先要检查Nginx是否安装了 http_stub_status_module 模块,通过下面的命令可以看到编译参数。yum安装的默认会带有这个模块。

[root@kafka60 ~]# /data/nginx/sbin/nginx -V
nginx version: nginx/1.10.
built by gcc 4.4. (Red Hat 4.4.-) (GCC)
built with OpenSSL 1.0.1e-fips Feb
TLS SNI support enabled
configure arguments: --prefix=/data/nginx-1.10. --user=www --group=www --with-http_stub_status_module --with-http_ssl_module

zabbix客户端

1、启用nginx status配置

Nginx 的server配置增加如下的片段

 ......
server {
listen ;
server_name www.blog.com;
location /nginx_status {
stub_status on;
access_log off;
allow 10.0.0.60;
deny all;
}
.....

[root@kafka60 share]# /data/nginx/sbin/nginx -t
nginx: the configuration file /data/nginx-1.10.2/conf/nginx.conf syntax is ok
nginx: configuration file /data/nginx-1.10.2/conf/nginx.conf test is successful
[root@kafka60 share]# /data/nginx/sbin/nginx -s reload

## 在虚拟主机 server {} 中加入上面配置,也可以单独定义一个专门用于监控的虚拟主机。
## deny all , 拒绝除 allow 中的主机之外所有主机访问此 URL ,实现过程中如果遇到 403 ,有可能是你把自己测试的机器拒绝了!

2、查看nginx状态信息

[root@kafka60 share]# curl 10.0.0.60/nginx_status
Active connections:
server accepts handled requests Reading: Writing: Waiting:

  ## Active connections: 对后端发起的活动连接数
## Server accepts handled requests: Nginx 总共处理了 1 个连接,成功创建了 1 次握手(没有失败次数),总共处理了 1 个请求
## Reading: Nginx 读取到客户端的 Header 信息数
## Writing: Nginx 返回给客户端的 Header 信息数
## Waiting: 开启 keep-alive 的情况下,这个值等于 active - ( reading + writing ), 意思是 Nginx 已经处理完成,正在等待下一次请求指令的驻留连接
## 在访问效率很高,请求很快被处理完毕的情况下,Waiting 数比较多是正常的。如果 reading + writing 数较多,则说明并发访问量很大,正在处理过程中

3、开启自定义KEY功能

vim  /etc/zabbix/zabbix_agentd.conf
......
UnsafeUserParameters=
UserParameter=nginx.accepts,/usr/local/zabbix/scripts/nginx_status.sh accepts
UserParameter=nginx.handled,/usr/local/zabbix/scripts/nginx_status.sh handled
UserParameter=nginx.requests,/usr/local/zabbix/scripts/nginx_status.sh requests
UserParameter=nginx.connections.active,/usr/local/zabbix/scripts/nginx_status.sh active
UserParameter=nginx.connections.reading,/usr/local/zabbix/scripts/nginx_status.sh reading
UserParameter=nginx.connections.writing,/usr/local/zabbix/scripts/nginx_status.sh writing
UserParameter=nginx.connections.waiting,/usr/local/zabbix/scripts/nginx_status.sh waiting
....... [root@iZms9dbzZ ~]# /etc/init.d/zabbix-agent restart ##重启zabbix客户端
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent: [ OK ]

4、创建检测脚本

[root@kafka60 share]# cat /data/shell/nginx_status.sh
#!/bin/bash
#Author:dadong
#Blog:http://www.cnblogs.com/dadonggg/
#Time:-- ::
#Name:nginx_status.sh
#Version:V1.
#Description:This is a test script.
HOST=`/sbin/ifconfig eth0 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'`
PORT=""
# Functions to return nginx stats
function active {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" >/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" >/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" >/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" >/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" >/dev/null| awk NR== | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" >/dev/null| awk NR== | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" >/dev/null| awk NR== | awk '{print $3}'
}
# Run the requested function
$

 ##给脚本赋予执行权限

  [root@kafka60 share]# chmod +x /data/shell/nginx_status.sh
[root@kafka60 share]# /data/shell/nginx_status.sh writing

zabbix服务器端

1、测试服务器能否获取到key值

2、配置zabbix web页面监控项

Zabbix监控Nginx状态信息的更多相关文章

  1. Zabbix 监控 Nginx 状态

    简介: 如何使用 Zabbix 监控 Nginx 状态 ? 1.获取 Nginx 状态( HTTP Stub Status ) shell > /usr/local/nginx/sbin/ngi ...

  2. zabbix 监控nginx状态

    1. 安装nginx,参考其它 [root@iZ2zeapnvuohe8p14289u6Z /]# vim /etc/nginx/nginx.conf # 加上下面 location /nginx_s ...

  3. Zabbix 监控 Nginx(四)

    简介: 如何使用 Zabbix 监控 Nginx 状态 ? 1.获取 Nginx 状态( HTTP Stub Status ) [root@localhost ~]# /apps/product/ng ...

  4. 使用Zabbix监控Nginx服务实战案例

    使用Zabbix监控Nginx服务实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.编译安装nginx步骤详解并开启状态页 博主推荐阅读: https://www.cn ...

  5. zabbix监控nginx连接状态(转)

    zabbix监控nginx zabbix可以监控nginx的状态,关于一个服务的状态可以查看服务本身的状态(版本号.是否开启),还应该关注服务能力(例如以nginx的负载效果:连接数.请求数和句柄数) ...

  6. zabbix监控nginx+php-fpm,mysql+主从复制+高可用,tomcat,redis web状态

    zabbix监控对象区分 使用SNMP监控交换 使用IPMI监控服务器硬件 使用Agent监控服务器 使用JMX监控JAVA SNMP监控流程 交换机上开启snmp 在zabbix上添加监控(设置SN ...

  7. 使用zabbix监控nginx的活动连接数

    使用zabbix监控nginx的活动连接数 1.方法简述 zabbix可以自定义很多监控,只要是能通过命令获取到相关的值,就可以在zabbix的监控中增加该对象进行监控,在zabbix中,该对象称之为 ...

  8. nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解

    nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...

  9. (七)zabbix监控nginx

    1.agent端配置 1)nginx编译安装需要加上该选项--with-http_stub_status_module 2)修改nginx配置文件 #vim /usr/local/nginx/conf ...

随机推荐

  1. 【MySQL】[Err] [Imp] 2006 - MySQL server has gone away .

    wait_timeout= interactive_timeout = max_allowed_packet=10M my.ini 后面增加 就可以解决

  2. MySQL索引优化入门

    索引简介 官方定义:索引(Index) 是帮助MySQL高效获取数据的数据结构.大家一定很好奇,索引为什么是一种数据结构,它又是怎么提高查询的速度?我们拿最常用的二叉树来分析索引的工作原理.看下面的图 ...

  3. [原]单片机/Stm32教程

    1 http://www.amobbs.com/forum.php?mod=viewthread&tid=4462962 2.http://bbs.21ic.com/forum.php?mod ...

  4. 使用d3.v3插件绘制出svg图

    众所周知,这个插件使用的svg技术,而IE8(包括IE8)之前的浏览器是不支持svg的 接下来看代码吧 从后台获取到带id和父id的目录数据[json格式] var module = requestU ...

  5. js循环异常

    1.当在循环数组时,数组发生变化,循环item 为定义undifined $.each(blogMng.commonKit.upLoadMng.medias, function (index, ite ...

  6. struts2防止反复提交的办法

    <? xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC " ...

  7. PHP+Oracle Instant Client

    <?php <b>●Oracleとの接続テスト</b> <hr> <?php // Oracleとの接続 $conn = OCILogon(" ...

  8. UTF8 & GBK之间的转换

    使用lua的时候,在lua中给字符串赋值的中文,但是在C中读出来的就是乱码,是因为在lua中使用的是UTF8编码,而在C(windows下面)中使用的是GBK编码,将UTF8转成GBK就可以了,下面的 ...

  9. SpringBoot(九)-- SpringBoot JDBC

    1.属性配置文件(application.properties) # type 可以修改连接池类型,默认采用Tomcat的连接池 # spring.datasource.type=com.alibab ...

  10. Android应用程序的结构

    1.src目录 存放该项目的源代码 2.gen目录 该目录文件是ADT自动生成的,并不需要认为地去修改 3.Android2.1 该目录存放的是该项目支持的JAR包,同时还包含项目打包时需要的META ...