zoukankan      html  css  js  c++  java
  • zabbix 与 nginx (五)

    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.0
        built by gcc 4.4.720120313(RedHat4.4.7-16)(GCC)
        built with OpenSSL1.0.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.0/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 2>/dev/null |grep 'Active'|awk -F":"'{print $NF}' } Reading(){ curl $Host:$Port/ngx_status 2>/dev/null |grep 'Reading'|awk '{print $2}' } Writing(){ curl $Host:$Port/ngx_status 2>/dev/null |grep 'Writing'|awk '{print $4}' } Waiting(){ curl $Host:$Port/ngx_status 2>/dev/null |grep 'Waiting'|awk '{print $6}' } accepts(){ curl $Host:$Port/ngx_status 2>/dev/null |awk NR==3|awk -F" "'{print $1}' } handled(){ curl $Host:$Port/ngx_status 2>/dev/null |awk NR==3|awk -F" "'{print $2}' } requests(){ curl $Host:$Port/ngx_status 2>/dev/null |awk NR==3|awk -F" "'{print $3}' } $1
    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 $1
    UserParameter:用户自定义key
    格式:UserParameter=key[],command
                key:[*]    key里可以传递多个参数,item-key
                command:key里传递的参数分别对应$1,$2......
     
    四、测试
    在zabbix服务端,使用zabbix-get命令进行检测:
     
    使用方法:
     
        [root@lile alertscripts]#/usr/local/zabbix-3.2.6/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.6/bin/zabbix_get -s 10.0.0.13-k 'nginx.status[accepts]'
        43
    五:创建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,进行测试,看是否会报警
     
    这是恢复的报警
     
     
  • 相关阅读:
    问题-[DelphiXE2]提示第三控件不存在
    问题-[DelphiXE2]编译程序体积大的问题
    问题-[delphi2007、2010]无法二次启动,报EditorLineEnds.ttr被占用,进程一直有bds.exe?
    问题-[VMware Workstation]断电后,重启电脑,之后就提示“内部错误”
    问题-[Delphi]通过Map文件查找内存地址出错代码所在行
    问题-[WIN8.132位系统]安装Win8.1 遇到无法升级.NET Framework 3.5.1
    问题-[DelphiXE7]新建的安桌模拟器运行程序闪退
    问题-[Delphi]用LoadLibrary加载DLL时返回0的错误
    问题-[Access]“无法打开工作组信息文件中的表 'MSysAccounts'”的问题的解决方法
    教程-Delphi 调用控制面板设置功能
  • 原文地址:https://www.cnblogs.com/lemon-le/p/7210307.html
Copyright © 2011-2022 走看看