阿尔海南粉 发表于 2017-12-31 22:00:18

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'参数。
  然后重启nginx即可。
  以上就是zabbix监控nginx的配置过程。
  友情提示:
  如果你和我一样,在已经安装好的nginx上添加如上模块,又不想影响线上业务,请参考如下:

在已经运行的nignx中添加需要的模块?
1、首先使用nginx -V查看当前编译时的参数
2、进入解压包,重新执行./configure 在原来添加的模块基础上,添加自己需要的模块
3、执行make(完成后切不可执行make install)
4、将生成的objs目录下的nginx二进制文件替换当前nginx/sbin/nginx文件即可(替换之前,记得备份)  OK,到这里,真的就结束了。。。!
页: [1]
查看完整版本: Zabbix应用四:Zabbix监控Nginx