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. tomcat与jboss等容器的区别

    1.JBoss 是 J2EE 应用服务器,而 Tomcat 只是一个 Servlet 容器,或者说是一个简单的 J2EE 应用服务器. JBoss 中的 Servlet 容器还是 Tomcat. 与  ...

  2. Automapper问题记录

    在Automapper使用中会碰到一些未能映射或者错误的问题,这些问题可能会经常忘记如何处理,想到一些就记录一些: 映射值有时为空又不报错的情况 这很可能是由于目标类中的部分属性有问题导致的,最简单的 ...

  3. (技术分享) 解决 Firefox 显示“已阻止载入混合活动内容”的问题

    (摘自http://blog.aizhet.com/Windows/18415.html) 从 Firefox 18 开始,如果 HTTPS 页面中包含非加密的 HTTP 内容,浏览器会在控制台输出警 ...

  4. JAVA项目将 Oracle 转 MySQL 数据库转换(Hibernate 持久层)

    项目开发时用的是Oracle数据库,但为了更好的做分布式,做集群,我们要将数据库转成 MySQL! 在数据库迁移中首先要做的事是将 Oracle 的表结构以及数据 克隆到 MySQL 数据库. 这点不 ...

  5. 每天一道剑指offer-二叉树的下一个结点1

    题目 每天一道剑指offer-二叉树的下一个结点https://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a?tpId=13&a ...

  6. javascript实例——文本特效篇(包含3个小例子)

    1.标题跑马灯 常常能够在一些新闻网站,或者其他地方,看到文字在一个特定的区域内,来回滚动.一旦超出边界就消失了,那么这些效果是如何做到的呢,今天我们就来讲讲. 图示效果: 源代码: <!doc ...

  7. SQL运算符

    SQL运算符实例代码教程 - 运算符是一个保留字或字符,主要用于在SQL语句的WHERE子句来执行,比较和算术运算等操作.  http://www.yiibai.com/sql/sql_operato ...

  8. MyBatis --- 配置步骤

    本文并非具体的细节,而是主要的配置步骤 概述 MyBatis 是半自动的ORM 框架,在MyBatis 整合 Spring Boot 的时候步骤比较繁琐,所以写下此篇纪录一下步骤. 使用 MyBati ...

  9. log4j2使用教程

    Log4j2简介 log4j2是log4j 1.x 的升级版,2015年5月,Apache宣布log4j1.x 停止更新.最新版为1.2.17.   log4j2参考了logback的一些优秀的设计, ...

  10. 高并发第十二弹:并发容器J.U.C -- Executor组件FutureTask、ForkJoin

    从本章开始就要说 Executor 的东西了.本次讲的是一个很常用的FutureTask,和一个不是那么常用的ForkJoin,我们现在就来介绍吧 引言 大部分时候创建线程的2种方式,一种是直接继承T ...