一、开启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 requests
7197043 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/bash

function 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

Zabbix实战-简易教程--WEB类--Nginx的更多相关文章

  1. Zabbix实战-简易教程--日志类

    一.主动模式和被动模式介绍 要监控日志,必须使用主动模式,那么,什么是主动模式?什么是被动模式呢? 1.主动模式和被动模式 主动模式 主动模式通讯过程: ● Agent打开TCP连接(主动检测变成Ag ...

  2. Zabbix实战-简易教程--DB类--ClickHouse

    一.ClickHouse介绍 Clickhouse是一个用于联机分析处理(OLAP)的列式数据库管理系统(columnar DBMS). 传统数据库在数据大小比较小,索引大小适合内存,数据缓存命中率足 ...

  3. Zabbix实战-简易教程--业务类

    一.需求 项目要求对线上服务器进行监控,包括服务器本身状态.进程相关数据.业务相关数据. 服务器本身状态可以通过基础模板即可获取数据(CPU.内存.网络.磁盘): 进程相关数据,前面也有相关文章专门监 ...

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

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

  5. Zabbix实战-简易教程系列

    一.基础篇(安装和接入) Zabbix实战-简易教程--总流程  Zabbix实战-简易教程--整体架构图 Zabbix实战-简易教程--DB安装和表分区 Zabbix实战-简易教程--Server端 ...

  6. Zabbix实战-简易教程(6)--Server端高可用

    3.4 server前端高可用    至此,单台Zabbix server环境已经搭建完成,为了达到高可用效果,我们需要通过2台服务器之间通过HA软件进行探测,一旦检测到主的server挂掉后,从的s ...

  7. Zabbix实战-简易教程(4)--Server端安装

    在数据库安装完成后,接着开始安装server端了.我们这里采用yum安装. 3.2.0 安装需求 ● PHP 5.6.18 ● curl 7.47.1 ● zabbix_server (Zabbix) ...

  8. Zabbix实战-简易教程--技巧一(操作类技巧)

    一.常用操作技巧 1.克隆 监控项.模板.触发器都可以进行克隆.其中,模板克隆又分为克隆和完全克隆.完全克隆会将LLD也一起复制一份,就是和之前的模板一模一样,而模板的克隆只是克隆监控项,不复制低层次 ...

  9. Zabbix实战-简易教程--排错(持续收集中)

    一.安装错误 1.zabbix 安装故障之无法跳到下一步或点击下一步没反应 执行命令:chownnginx:nginx /var/lib/php/session/ -R   2.proxy上无法采集交 ...

随机推荐

  1. 远程计算机 进程/服务 启动停止(WMI)

    WMI的远程管理需要其计算机的本地管理员组权限,例:gwmi win32_computersystem -computer win08r2d #在远程计算机上启动 notepad.exe 进程invo ...

  2. Linux grep/egrep命令详解

    grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来 grep搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2. grep的规则表达式( ...

  3. 通过nginx 访问 centos 7 服务器上的.Net Core

    先安装依赖 # yum -y install pcre-devel openssl openssl-devel # yum -y install gcc gcc-c++ autoconf automa ...

  4. September 26th 2017 Week 39th Tuesday

    I have to protect the one thing I can't live without. 我必须为我一生挚爱遮风挡雨. A man is a success if he gets u ...

  5. ZT Android 4.2蓝牙介绍

    Android 4.2蓝牙介绍 分类: Android开发系列 2013-06-27 14:16 7110人阅读 评论(22) 收藏 举报 目录(?)[-] Android 42蓝牙介绍 一  蓝牙规 ...

  6. iOS应用内抓包、NSURLProtocol 拦截 APP 内的网络请求

    前言 开发中遇到需要获取SDK中的数据,由于无法看到代码,所以只能通过监听所有的网络请求数据,截取相应的返回数据,可以通过NSURLProtocol实现,还可用于与H5的交互 一.NSURLProto ...

  7. 【洛谷】【线段树+位运算】P2574 XOR的艺术

    [题目描述:] AKN觉得第一题太水了,不屑于写第一题,所以他又玩起了新的游戏.在游戏中,他发现,这个游戏的伤害计算有一个规律,规律如下 1. 拥有一个伤害串为长度为n的01串. 2. 给定一个范围[ ...

  8. php魔术变量

    __LINE__   文件中的当前行号 __FILE__ 文件的完整路径和文件名 __DIR__  文件所在的目录 __FUNCTION__  自 PHP 5 起本常量返回该函数被定义时的名字 __C ...

  9. 十五项指标衡量DevOps是否成功

    DevOps在你的组织内部运行的如何?如果你需要一些帮助来度量它的运行情况,我们已经准备了一个用于跟踪的关键DevOps指标的列表,这些度量可以帮助了解你的团队是如何随着时间的推移而运行的. 在团队内 ...

  10. [luogu2312] 解方程

    题面 ​ 秦九韶公式 ​ 看了上面这个之后大家应该都会了, 就是读入的时候边读入边取模, 从\(1\)到\(m\)间将每一个数带进去试一下就可以了, 复杂度是\(O(nm)\)的. ​ 古人的智慧是无 ...