1、开启nginx监控

2、编写脚本来进行数据采集

3、设置用户自定义参数

4、重启zabbix-agent

5、添加item、创建图形、创建触发器

6、创建模板

注:第一次使用可以按需求制定好模板,以后再添加主机时可以省略第5步。

一、zabbix3.4 实现nginx web监控

1、nginx开启nginx-status支持(nginx被监控端)

参考博文:http://www.21yunwei.com/archives/3896

http://www.21yunwei.com/archives/4091

通过zabbix实现一个nginx监控,需要安装模块:–with-http_stub_status_module,如果没有安装需要进行编译,这里记录下模块单独安装步骤,就以–with-http_stub_status_module为例

1.1、查看是否一安装该模块(本次为监控测试,已yum安装,下边复制其他博主的,仅供参考)

[root@21yunwei nginx-1.9.12]# /usr/local/nginx/sbin/nginx   -V
nginx version: nginx/1.9.12
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.36

查看没有我们需要的模块–with-http_stub_status_module,需要单独安装一下。  

  1.2、添加未编译安装模块

使用参数重新配置

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.36 --with-http_stub_status_module

 make 编译
注意:千万不要make install,否则就是覆盖安装 

  1.3、替换nginx二进制文件 ,当前nginx文件最好备份下,避免出问题。

停止nginx服务
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/

  重启下nginx服务,重新查看模块加载情况:

  1.4、配置站点文件添加如下location模块

location = /nginx-status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;

[root@server ~]# curl http://127.0.0.1/nginx-status
Active connections: 1
server accepts handled requests
4 4 4
Reading: 0 Writing: 1 Waiting: 0

active connections – 活跃的连接数量
server accepts handled requests — 总共处理了11989个连接 , 成功创建11989次握手, 总共处理了11991个请求
reading — 读取客户端的连接数.
writing — 响应数据到客户端的数量
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接. 

2、配置zabbix

  2.1、导入模板,并需要将监控的主机链接到该模板

链接:https://pan.baidu.com/s/14EUPmWhAYYe6tgxJIlHh0w 密码:x5zc

   2.2、根据模板中的参数key写shell(被监控端)shell脚本获取参数如下:

#!/bin/bash
#use zabbix to monitor nginx status
#author:21yunwei
#监控 httpd code,eg:500.多个站点可以考虑循环实现 。这里只针对自己博客21yunwei做状态码监控。
#accesslog="/var/log/nginx/access.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://10.0.0.199/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下的配置文件,添加如下参数:(zabbix-server端)

[root@server ~]# vim /etc/zabbix/zabbix_agentd.conf
#nginx moitor
UserParameter=nginx.status[*],/etc/zabbix/nginx_zbx.sh $1

添加完成后重启zabbix-gent服务  

好了,获取成功。

这里只做了监控监控,知道 nginx的运行状态、连接数、、错误日志报警和防假死(web场景添加的)功能,自己想要监控nginx其他参数,请自行修改模板添加监控项并设置key,通过命令或shell获取 展现即可。

zabbix日常监控项nginx(五)的更多相关文章

  1. zabbix日常监控项java(四)

    yum install net-tools netstat命令 yum -y install bash-completion 命令自动补全包 https://github.com/qiueer/zab ...

  2. zabbix日常监控项mysql(七)

    参考文档: percona官方文档:https://www.percona.com/doc/percona-monitoring-plugins/LATEST/zabbix/index.html za ...

  3. zabbix日常监控项web(八)

    存在一种情况:nginx或者httpd服务本身运行正常,但是网页挂了,类似于网页被黑,或者40X之类的...:可以用zabbix把web页面访问也监控起来,第一时间得知web崩溃信息并做相应处理. 被 ...

  4. zabbix日常监控项java(四又分之一)

    因zabbix自带监控JMX的模板通用性差的问题,需要我们自己新建一个属于自己的模板,于是本文就出现了.... 大部分都是参考网上其他博主的文档,在此作为梳理.总结:以方便自己日后使用查询.

  5. zabbix日常监控项TCP连接状态(六)

    TCP的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击,或是time_wait值比较高的话,我们要考虑看 ...

  6. zabbix添加自定义监控项

    zabbix添加自定义监控项 author:headsen  chen   2017-10-16  17:23:17 个人原创,转载请注明作者,出处,否则依法追究法律责任 主机端配置: 首先安装好za ...

  7. zabbix自定义监控项一

    1.在agent端配置 1.1 添加自定义监控项 zabbix中监控项叫做item,监控项的取值方法叫做key item: Items是从agnet主机里面获取的所有数据.通常情况下我叫itme为监控 ...

  8. zabbix自定义监控项数据类型错误

    问题描述 监控cpu使用率,脚本获取的值是浮点型  zabbix创建监控项时没有选数据类型,导致监控数据有问题. 查看 zabbix-server 日志: ::203016.768 error rea ...

  9. zabbix自定义监控项、添加图形、设置触发器、远程执行命令

    监控项是在zabbix中手机数据的基础,没有监控项就没有数据,系统自带模板带有大量默认item,自定义item可以定义在模板中,在应用模板即可使用对应item:也可直接在host中定义 目标:自定义监 ...

随机推荐

  1. elasticsearch(一):JAVA api操作

    1.创建一个mavan项目,项目的以来配置如下. <?xml version="1.0" encoding="UTF-8"?> <projec ...

  2. windows端口查看及进程查找

    1. 使用netstat查看端口 netstat -ano 2. 查找特定端口号: netstat -aon|findstr "port" 3. 查找该端口的进程 tasklist ...

  3. 谈谈CSS的浮动问题

    浮动的工作原理 浮动元素脱离文档流,不占据空间.浮动元素碰到包含它的边框或者浮动元素的边框则停留. 浮动元素可能引起的问题 1.父元素的高度无法被撑开,影响与父级元素同级的元素 2.与浮动元素同级的非 ...

  4. autofac使用Common Serivce Locator跟随wcf,mvc,web api的实例控制

    autofac本身只提供了基本的ioc容器的功能 要想在mvc,wcf,web api中使用,除了autofac本身,还需要引入对应的包(点击对应连接可查看文档) 除此之外,使用Common Serv ...

  5. 面试1 SQL SERVER 查询第20行到30之间的数据

    SQL SERVER 查询第20行到30之间的数据 1.先查询前20行的ID,后查询除去20条记录的前10条记录 SELECT TOP 10 * FROM tbBank WHERE BankID NO ...

  6. Spring boot应用踩坑集锦

    Spring boot应用踩坑集锦 spring boot是spring的一种开发套件,是spring cloud的基础框架,要学习spring cloud微服务是绕不开的,遇到一些踩坑问题在这里记录 ...

  7. 【原】通过Dubbo注解实现RPC调用

    启动Dubbo服务有2个方式,1是通过xml配置,2是通过注解来实现,这点和Spring相似. 采用XML配置如下: <?xml version="1.0" encoding ...

  8. java并发编程的艺术(三)---lock源码

    本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片.视频等原文的内容) 若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cn ...

  9. Eclipse发布的Dynamical web项目在Tomacat文件夹下显示

    Eclipse设置了Tomacat后,项目信息会在你的workspace上,在Tomacat文件夹上是没有的.但是通过设置是可以在Tomacat文件夹上存在的. 配置好服务器后,先关闭服务器,然后在E ...

  10. 基于 vue+element ui 的cdn网站(多页面,都是各种demo)

    前言:这个网站持续更新中...,有网上预览,github上也有源码,喜欢记得star哦,欢迎留言讨论. 网站地址:我的个人vue+element ui demo网站 github地址:yuleGH g ...