zabbix监控nginx的大概流程为:
 
1:被监控端的nginx开启stub_status模块
2:通过脚本的方式获取nginx的状态值
3:修改被监控端的配置文件,Userparameter=item.key[*],command
4:创建模版  添加应用集、监控项、触发器、图像等
5:添加主机,添加nginx模版,创建动作
6:测试
 
一、nginx的stub_stauts模块
 
stub_status模块主要用于查看nginx的一些状态信息
 
1)若在机器上,还未安装nginx,那么在编译安装的时候,要加上stub_status模块参数     
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/lnmp/pcre-7.9
 
2)若机器上已经安装了nginx,查看是否安装的时候,是否安装了--with-http_stub_status_module
 
    [root@lile Downloads]#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.8.
built by gcc 4.4.(RedHat4.4.7-)(GCC)
built with OpenSSL1..1e-fips 11Feb2013
TLS SNI support enabled
configure arguments:--prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_ssl_module --with-pcre=/usr/local/lnmp/pcre-7.9
若没有,那么进到安装目录执行(这里需要加的参数都要加上,而不是只加stub_status的)
 
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/lnmp/pcre-7.9
 
 然后make,不要make install
 
    make
 
然后把新编译的nginx替换到旧的(这里可以先把原来的nginx执行脚本备份一下)
 
    cp /home/lile/nginx-1.8./objs/nginx /usr/local/nginx/sbin/nginx
 
这个时候再使用/usr/local/nginx/sbin/nginx -V 查看的时候,configure arguments这里就有stub_status的模块参数了
 
3)修改nginx的配置文件,在server里加上:
 
    location /ngx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow 10.0.0.146;
}
4)启动nginx
 
5)浏览器访问:http://10.0.0.13/ngx_status ,返回这样一个数据
 

 
我的理解的意思:(通过做实验,理解出来的)
Active connections:当前活跃的客户端连接数,比如打开了3个浏览器窗口
accepts:接受客户端访问的总次数
handled:处理的连接总次数
requests:客户端请求的总次数
reading:nginx正在读取请求头的连接数
writing:nginx正将请求返回给客户端的连接数
waiting:当前等待客户端请求的空闲连接数
 
官网的解释:

 
二、写脚本,分别获取上面的值
 
nginx.sh  把这个脚本放在被监控端的服务器,然后在配置文件里指定位置
 
    #!/bin/bash
Host=10.0.0.13
Port=80 ping(){
/bin/pidof nginx |wc -l
}
active(){
curl $Host:$Port/ngx_status >/dev/null |grep 'Active'|awk -F":"'{print $NF}'
}
Reading(){
curl $Host:$Port/ngx_status >/dev/null |grep 'Reading'|awk '{print $2}'
}
Writing(){
curl $Host:$Port/ngx_status >/dev/null |grep 'Writing'|awk '{print $4}'
}
Waiting(){
curl $Host:$Port/ngx_status >/dev/null |grep 'Waiting'|awk '{print $6}'
}
accepts(){
curl $Host:$Port/ngx_status >/dev/null |awk NR==|awk -F" "'{print $1}'
}
handled(){
curl $Host:$Port/ngx_status >/dev/null |awk NR==|awk -F" "'{print $2}'
}
requests(){
curl $Host:$Port/ngx_status >/dev/null |awk NR==|awk -F" "'{print $3}'
}
$
vim 除了:wq!保存退出  ZZ 也可以保存退出
 
三、修改被监控端的zabbix-agent的配置文件
 
添加UserParameter值 vim  zabbix-agent/etc/zabbix_agentd.conf
 
    LogFile=/tmp/zabbix_agentd.log
Server=10.0.0.146
ServerActive=10.0.0.146
Hostname=Zabbix agent1
UserParameter=nginx.status[*],/home/lile/zabbix-agent/nginx.sh $
UserParameter:用户自定义key
格式:UserParameter=key[],command
            key:[*]    key里可以传递多个参数,item-key
            command:key里传递的参数分别对应$1,$2......
 
四、测试
在zabbix服务端,使用zabbix-get命令进行检测:
 
使用方法:
 
    [root@lile alertscripts]#/usr/local/zabbix-3.2./bin/zabbix_get
usage:
zabbix_get -s host-name-or-IP [-p port-number][-I IP-address]-k item-key
zabbix_get -h
zabbix_get -V
在服务端先使用zabbix-get检测看是否能得到值:只有这样能到到返回值,才能在zabbix界面显示出来
 
    [root@lile alertscripts]#/usr/local/zabbix-3.2./bin/zabbix_get -s 10.0.0.13-k 'nginx.status[accepts]'
    
五:创建nginx模版
 
1:创建模版
 

 

 
 
2:在刚刚的nginx模版上创建应用集
 

 
 
3:创建监控项,把所有的需要监控的创建监控项,键值就是我们在配置文件里写的item-key,我的是nginx.status[*],把所有的全部创建起来  active Reading Writing Waiting accepts handled requests
 

 
 

 
 
4:创建触发器,我这里只是对nginx进程不存在的进行触发,这里的表达式根据脚本里写的ping函数,他的返回值来进行修改
 

 
 
5:创建图形
 
对刚刚nginx进程存不存在创建图像
 

 
 
其他状态信息创建一个图形
 

 
 
六、使用这个nginx模版
 
和原来的一样,进行测试
1:添加主机
2:在这个主机上添加nginx模版
3:添加动作
4:分别在被监控的主机上停止和启动nginx,进行测试,看是否会报警
 
这是恢复的报警
 

 

zabbix 与 nginx (五)的更多相关文章

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

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

  2. Zabbix 监控 Nginx(四)

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

  3. Zabbix 监控 Nginx 状态

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

  4. zabbix监控nginx

     nginx status详解 active connections – 活跃的连接数量server accepts handled requests — 总共处理了11989个连接 , 成功创建11 ...

  5. 使用zabbix监控nginx

    在zabbix agentd客户端上,查看nginx是否加载了--with-http_stub_status_module.因为zabbix监控nginx是根据 nginx的Stub Status模块 ...

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

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

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

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

  8. zabbix添加nginx监控

    nginx内置了一个status状态的功能,通过配置可以看到nginx的运行情况,status显示的内容包括当前连接数,处于活动状态的连接数,已经处理的请求数等等,可以利用这个功能编写zabbix监控 ...

  9. zabbix 自定义 nginx 监控模板

    打开zabbix首页→配置→模板→创建模板模板名称:Template App NGINXagent 需添加自定义监控项:UserParameter=nginx.status[*],/bin/bash ...

随机推荐

  1. 【虚拟机】解决网络适配器没有 VirtualBox Host-Only Ethernet Adapter 问题

    下面以windows系统来演示重新安装 VirtualBox Host-Only Ethernet Adapter的方法 1.“win+r”输入“devmgmt.msc”,出现如下界面: 2.点击菜单 ...

  2. Android 虹软2.0人脸识别,注册失败问题 分析synchronized的作用

    人脸识别需要init初始化(FaceServer中),离开时需要unInit销毁:当一个含有人脸识别的界面A跳向另一个含有人脸识别的界面B时,由于初始化和销毁都是对FaceServer类加锁(sync ...

  3. 几种优化方法的整理(SGD,Adagrad,Adadelta,Adam)

    参考自: https://zhuanlan.zhihu.com/p/22252270 常见的优化方法有如下几种:SGD,Adagrad,Adadelta,Adam,Adamax,Nadam 1. SG ...

  4. 7.5 GRASP原则五:高内聚 High Cohesion

    GRASP原则五:高内聚 High Cohesion  How to keep objects focused, understandable and manageable, and as a si ...

  5. Android app图标总是显示默认的机器人图标,且在manifest文件的application中修改无效...

    问题描述:我使用的开发工具是eclipse,Android app默认的图标是一个机器人,如下图所示 现在我要将app的图标修改成另外一个图标: 探索过程: 首先想到修改Manifest文件中的app ...

  6. 基于Python——实现两个文件夹中的文件拷贝

    [背景]当复制一个文件夹中的某文件到另一个文件夹中时是一件很容易的事情,可是如果存在很多文件夹中的文件需要一一拷贝,就会变的很繁琐,稍有不慎就会遗漏,今天就用Python来解决这个问题—— [代码实现 ...

  7. mysql,Jdbc工具类,只需一条sql实现简单查询

    import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import ...

  8. pandas实现excel中的数据透视表和Vlookup函数功能

    在孩子王实习中做的一个小工作,方便整理数据. 目前这几行代码是实现了一个数据透视表和匹配的功能,但是将做好的结果写入了不同的excel中, 如何实现将结果连续保存到同一个Excel的同一个工作表中?还 ...

  9. JS碰撞检测

    视图理解://div1的上边大于div2的下边,,div1的右边小于div2的左边,,div1的上边大于div2的下边,,div1的左边大于div2的右边,这四种情况,问题是没有碰撞/重叠,如下: & ...

  10. VSTO学习问题(一)

    入门按照网上的写了第一个VSTO外接程序,点击运行按钮进行调试,发生错误: 名称: 从: file:///D:/Program Files (x86)/Microsoft Visual Studio ...