博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过zabbix 3.4 实现nginx web监控
阅读量:6474 次
发布时间:2019-06-23

本文共 1885 字,大约阅读时间需要 6 分钟。

这个文章是两年前发的,最近整理了一下系统使用。只针对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 导入模板,并需要将监控的主机链接到该模板
链接:
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=""
#监控参数匹配
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监控

转载于:https://blog.51cto.com/bosszhang/2056583

你可能感兴趣的文章
彻底学会使用epoll(一)——ET模式实现分析
查看>>
路由器的密码恢复
查看>>
【Android 基础】Android中全屏或者取消标题栏
查看>>
Xilinx 常用模块汇总(verilog)【03】
查看>>
脱离标准文档流(2)---定位
查看>>
IO流之字符流
查看>>
集合异常之List接口
查看>>
Softmax回归
查看>>
紫书 习题11-11 UVa 1644 (并查集)
查看>>
App工程结构搭建:几种常见Android代码架构分析
查看>>
使用openssl进行证书格式转换
查看>>
ZOJ 3777 Problem Arrangement
查看>>
虚拟机类加载机制
查看>>
Callable和Future
查看>>
installshield12如何改变默认安装目录
查看>>
少用数字来作为参数标识含义
查看>>
ScrollView中嵌套ListView
查看>>
JAVA虚拟机05--面试必问之JVM原理
查看>>
Algs4-2.3.1如何切分数组
查看>>
uva 10815 - Andy's First Dictionary(快排、字符串)
查看>>