andy27367451 发表于 2018-11-14 08:51:55

通过zabbix 3.4 实现nginx web监控

  这个文章是两年前发的,最近整理了一下系统使用。只针对nginx前端web进行简单监控,具体再根据业务需求进行详细调用。后续的web场景、后端的服务器 这里不包含,需单独做,另外日志分析不建议这里添加,以免增加 系统负载尤其是io。日志分析处理单独拿ELK或自主开发的系统监控。
  1,nginx开启nginx-status支持。
  未安装该模块的,可以参考 《原已经安装好的nginx如何查看已经安装模块和添加一个未被编译安装的模块》安装。
  配置站点文件添加如下location模块:
  

    location = /nginx-status{  stub_status   on;
  access_log   off;
  }
  

  开启以后访问http://www.21yunwei.com/nginx-status是如下结果:
  Active connections: 11
  server accepts handled requests
  946 946 4249
  Reading: 1 Writing: 1 Waiting: 9
  2,配置zabbix
  2.1 导入模板,并需要将监控的主机链接到该模板
  链接: http://download.21yunwei.com/zabbix/nginx/`tem_zbx_nginx`.tar.gz
  2.2 根据模板中的参数key写shell
  shell脚本获取参数如下:
  #!/bin/bash
  #use zabbix to monitor nginx status
  #author:21yunwei
  #监控 httpd code,eg:500.多个站点可以考虑循环实现 。这里只针对自己博客21yunwei做状态码监控。
  accesslog="/logs/nginx/21yunwei/21yunwei.log"
  cat ${accesslog} | awk '{print $8}' |sort |uniq | grep 500 >/dev/null 2>&1 ;httpcode=$?
  #监控nginx存活状态,基于端口监听。另外需加web url监控防止假死。
  netstat -tnlp | grep 80 >/dev/null 2>&1 ;status=$?
  url="http://www.21yunwei.com/nginx-status"
  #监控参数匹配
  case $1 in
  "active" )
  /usr/bin/curl $url 2>/dev/null | grep -i $1 | awk '{print $NF}' ;;
  "accepts")
  /usr/bin/curl $url 2>/dev/null | awk 'NR==3{print $1}' ;;
  "handled")
  /usr/bin/curl $url 2>/dev/null | awk 'NR==3{print $2}' ;;
  "requests")
  /usr/bin/curl $url 2>/dev/null | awk 'NR==3{print $NF}' ;;
  "reading")
  /usr/bin/curl $url 2>/dev/null | awk 'NR==4{print $2}' ;;
  "writing")
  /usr/bin/curl $url 2>/dev/null | awk 'NR==4{print $4}' ;;
  "waiting")
  /usr/bin/curl $url 2>/dev/null | awk 'NR==4{print $NF}' ;;
  "ping")
  echo $status ;;
  "httpcode")
  echo $httpcode ;;


[*])  echo "argu error";;
  esac

  chmod a+x nginx_zbx.sh
  chmod+s /bin/netstat
  调整zabbix_agentd下的配置文件,添加如下参数:
  #nginx monitor
  UserParameter=nginx.status
[*],/home/yunwei/nginx_zbx.sh $1
  配置完成以后重启agent服务。
  1
  简单的整个系统负载监控:
  1
  好了,获取成功。
  这里只做了监控监控,知道 nginx的运行状态、连接数、、错误日志报警和防假死(web场景添加的)功能,自己想要监控nginx其他参数,请自行修改模板添加监控项并设置key,通过命令或shell获取 展现即可。
  转载请注明:21运维 » 通过zabbix 3.4 实现nginx web监控


页: [1]
查看完整版本: 通过zabbix 3.4 实现nginx web监控