一、开启Nginx status状态

1、在默认主机里面加上location添加ngx_status

如下操作:

server {listen       127.0.0.1:8080;server_name  127.0.0.1;access_log off;location /nginxstatus {stub_status on;access_log off;allow 127.0.0.1;deny all;}

2、重启nginx服务,service nginx restart,查看取值是否正常。

curl -s "http://127.0.0.1:8080/nginxstatus"

Active connections: 37
server accepts handled requests7197043 7197043 67343248
Reading: 0 Writing: 1 Waiting: 36

3、nginx status详解

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

  

二、编写获取Nginx status的脚本

在agent上编写监控脚本,其实就是获取刚才以上nginxstatus的值:

#!/bin/bashfunction active {curl -s "http://127.0.0.1:8080/nginxstatus" | grep 'Active' | awk '{print $3}'
}
function reading {curl -s "http://127.0.0.1:8080/nginxstatus" | grep 'Reading' | awk '{print $2}'
}
function writing {curl -s "http://127.0.0.1:8080/nginxstatus" | grep 'Writing' | awk '{print $4}'
}
function waiting {curl -s "http://127.0.0.1:8080/nginxstatus" | grep 'Waiting' | awk '{print $6}'
}
function accepts {curl -s "http://127.0.0.1:8080/nginxstatus" | awk NR==3 | awk '{print $1}'
}
function handled {curl -s "http://127.0.0.1:8080/nginxstatus" | awk NR==3 | awk '{print $2}'
}
function requests {curl -s "http://127.0.0.1:8080/nginxstatus" | awk NR==3 | awk '{print $3}'
}case "$1" in
active)
active
;;
reading)
reading
;;
writing)
writing
;;
waiting)
waiting
;;
accepts)
accepts
;;
handled)
handled
;;
requests)
requests
;;
*)echo "Usage: $0 {active|reading|writing|waiting|accepts|handled|requests}"
esac

Agent端写入自定义key:

UserParameter=nginx[*], /bin/bash /etc/zabbix/externalscripts/monitor-nginx.sh $1

  

三、制作Nginx模板

根据上面的监控项制作好模板,模板已经上传至Github:https://github.com/loveqx/zabbix-doc/tree/master/zabbix-scripts/zabbix-template-nginx

模板包括的监控项如下:

四、模板上套

主机(Agent)套上模板即可。

效果如下:

至此,Nginx监控完成。

五、总结

以上就是监控Nginx的整个过程,虽然只是一个开端,但是,后续监控其他服务或应用都是类似的流程。聪明的你,可以依葫芦画瓢。

1、通过方法或手段获取需要监控的监控项

通过脚本或LLD获取监控项或监控项类(通过lld发现的),解释一下这里为什么说是监控项类,因为他是一个监控项的抽象。比如,磁盘类、网卡类,而且他们具有同样是属性。

2、Agent端添加自定义key

3、制作模板

4、Agent套用模板

最后附上监控Nginx需要的模板和脚本:

Nginx监控github地址:

脚本:https://github.com/loveqx/zabbix-doc/blob/master/zabbix-scripts/zabbix-template-nginx/monitor-nginx.sh

模板:https://github.com/loveqx/zabbix-doc/blob/master/zabbix-scripts/zabbix-template-nginx/Template%20App%20For%20XSJ%20Web%20Nginx.xml

转载于:https://www.cnblogs.com/skyflask/p/7622101.html

Zabbix实战-简易教程--WEB类--Nginx相关推荐

  1. Zabbix实战-简易教程--订阅类

    一.需求提出 最近数据中心有一个新的需求,有一批后台任务需要在每天固定时间点运行(凌晨8:00),现在希望能够把这个任务执行的结果定时上报给他. 说明:执行的任务为一个sql查询,查询出来的是每个任务 ...

  2. Zabbix实战-简易教程--DB类--Pgsql(pg_monz介绍)

    一.pg_monz介绍 1.介绍 pg_monz是一套用于专门监控pgsql的监控脚本,通过zabbix-sender将数据发送给server端.github上看软件介绍,是一个日本人写的. gith ...

  3. Zabbix实战-简易教程--拓扑图(Maps)

    一.拓扑图(Maps) 二话不说,有图有真相,先看看效果,再详细讲解配置过程: 图1:全国网络质量图 图2 核心机房网络质量图 二.详细配置 1.添加  map 选择 系统管理-->基础配置-- ...

  4. Android实战简易教程-第三十九枪(第三方短信验证平台Mob和验证码自动填入功能结合实例)

    用户注册或者找回密码时一般会用到短信验证功能,这里我们使用第三方的短信平台进行验证实例. 我们用到第三方短信验证平台是Mob,地址为:http://mob.com/ 一.注册用户.获取SDK 大家可以 ...

  5. Android实战简易教程-第五十一枪(ListView实现子控件的动态显示和隐藏、checkbox全选和反选)

    前段时间写过一篇文章:Android实战简易教程-第四十七枪(ListView多选-实现点餐系统)有的同学留言建议,可不可以动态控制checkbox的显示和全选反选功能,我研究了一下,发现实现也比较容 ...

  6. Android实战简易教程-第五十枪(工具类的测试)

    在开发中,为了提高开发效率,我们一般会自定义自己的工具类.为了保证项目的可靠性,在将工具类引入项目之前,我们一般都会对工具类进行单元测试,下面我们通过一个实例看一下如何搭建测试环境. 1.首先自定义一 ...

  7. Android实战简易教程-第七十五枪(WIFI直连工具类)

    设置指定的WIFI用户名密码和加密方式,可以进行WIFI直连. 1.工具类-WifiUtil.java: package demo.androidwar.com.myapplication;impor ...

  8. Android实战简易教程-第六十六枪(服务器端搭建和服务器端Json数据交互)

    学习Android有一段时间了,对服务器端有很深的好奇,决定对服务器端的实现进行一些研究,这里实现了一个简单的小例子,用于获取服务器端的json数据,例子很简单,适合初学者学习使用. 服务器端 首先我 ...

  9. Android实战简易教程-第六十五枪(自定义控件实现数字液晶时钟Demo)

    下面我们研究一下如何实现一个数字液晶时钟,本质属于特效一种哈. 首先创建一个布局文件: <?xml version="1.0" encoding="utf-8&qu ...

  10. Android实战简易教程-第三十四枪(基于ViewPager和FragmentPagerAdapter实现滑动通用Tab)...

    上一段时间写过一篇文章<基于ViewPager实现微信页面切换效果> 里面实现了相似微信Tab的页面.可是这样的实现方法有个问题.就是以后全部的代码逻辑都必须在MainActivity中实 ...

最新文章

  1. CVPR 2020 | 基于多智能体RL实现多轮连续交互,IteR-MRL使图像分割算法达到医用标准...
  2. python编程语言继承_python应用:学习笔记(Python继承)
  3. LeetCode 279 完全平方数
  4. linux联想电脑wifi密码,联想笔记本Y7000—ubuntu16.4无法开启wifi的解决办法
  5. spring cloud(九):各组件常用配置参数
  6. c#的FileSystemWatcher对象监视文件的变化的事件,无休止的触发事件的解决办法
  7. CorelDRAW_X6使用汇总
  8. java如何改变图片大小_如何在Java中调整图片大小?
  9. java-net-php-python-4jspm游艇俱乐部管理系统计算机毕业设计程序
  10. 畅邮(DM Pro)-一款强悍、纯净而稳定的重量级电子邮箱客户端(支持分发、追踪)
  11. matlab怎样编程形成软件_Matlab编程笔记之GUI程序转exe
  12. AI语音机器人来袭,改变传统电销模式
  13. ERP BOM 展开方式
  14. MEAN.js和MEAN.io之间的区别
  15. 苏轼《水调歌头·丙辰中秋》
  16. vue+element-ui 自定义行事历,周日历.支持滑动.
  17. 数学分析教程(科大)——3.1笔记+习题
  18. magento Shopping Cart Price Rule 购物车促销规则
  19. 图片无损放大怎么做?学会这一招就够了
  20. 如何使用#define_CRT_SECURE_NO_WARNINGS

热门文章

  1. mysql数据签名功能_分析型数据库 MySQL的签名机制有哪些? -问答-阿里云开发者社区-阿里云...
  2. css工程师技巧,web前端工程师必须掌握的技巧–CSS Sprites技术(附基础操作教程)...
  3. opencv4 图像特征匹配_【从零学习OpenCV 4】图像模板匹配
  4. 字长为16位的计算机_字长为16位表示这台计算机最大能计算
  5. Nginx源码分析 - 主流程篇 - 平滑重启和信号控制(10)
  6. ribbon基于接口配置超时_Spring Cloud第二篇:服务消费者RestTemplate+Ribbon
  7. python 使用 ipx协议_肝了三天,万字长文教你玩转 tcpdump,从此抓包不用愁
  8. kafka依赖_Kafka集群搭建及必知必会
  9. kali激活phpstorm_kali+phpstorm+xdebug+firefox配置本地/远程调试
  10. 三菱mode bus tcp通讯_微服务中的异步消息通讯和事件驱动,你了解多少?