Zabbix应用四:Zabbix监控Nginx

利用Zabbix监控Nginx

一、准备nginx监控模版:

1.1、下载nginx监控模版:

    点此下载

1.2、导入模版:

Zabbix管理页面,选择'配置'->'模版'->'导入':

然后将下载的模版文件上传。

现在,'配置'->'模版'中就会发现刚才上传的nginx模版:'Template App NGINX'

二、将模版应用与主机:

选择被监控主机->'模版',在'链接指示器'中选择'Template App NGINX','添加'->'更新',最后如下图:

三、客户端数据采集:

Zabbix监控端已配置完毕,现在需要将从被监控段采集的数据渲染到模版中。

3.1、定义采集nignx状态的脚本,如下:

#!/bin/bash

HOST='127.0.0.1'
PORT='80'

function ping {
    /sbin/pidof nginx | wc -l
}

function active {
     /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}

function reading {
    /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}

function writing {
     /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}

function waiting {
    /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}

function accepts {
    /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| awk NR==3 | awk '{print $1}'
}

function handled {
    /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| awk NR==3 | awk '{print $2}'
}

function requests {
    /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| awk NR==3 | awk '{print $3}'
}

$1

3.2、开启nginx状态配置:

vim nginx.conf,在server中添加如下:

......
       
location / {
           stub_status on;
           access_log off;
       }

......

注意:启用stub_status的前提是在编译安装nginx时,需要添加'--with-http_stub_status_module'参数。

3.3、配置zabbix客户端采集脚本:

vim zabbix_agent.conf,添加UserParameter,使zabbix客户端调用采集脚本去采集数据:

UserParameter=nginx.status[*],/data/shell/nginxStatus.sh $1

经过以上配置后,reload nginx、重启zabbix_agentd即可。

以上就是zabbix监控nginx的配置过程。

友情提示:

如果你和我一样,在已经安装好的nginx上添加如上模块,又不想影响线上业务,请参考如下:

在已经运行的nignx中添加需要的模块?
1、首先使用nginx -V  查看当前编译时的参数
2、进入解压包,重新执行./configure 在原来添加的模块基础上,添加自己需要的模块
3、执行make(完成后切不可执行make install)
4、将生成的objs目录下的nginx二进制文件替换当前nginx/sbin/nginx文件即可(替换之前,记得备份) 

OK,到这里,真的就结束了。。。!

原文地址:https://www.cnblogs.com/ahaii/p/6952940.html