Nginx在生产环境中的应用越来越广泛,所以需要对nginx的性能状态做一些监控,从而发现故障隐患,Ngnx的监控指标可分为:基本活动指标,错误指标,性能指标

监控Nginx思路:

1)首先,要想监控Nginx,需要状态模块的支持,也就是-with-http_stub_status_module;随后在nginx.conf配置开启status状态

2)通过awk取status的各个状态数值

3)自定义模板将取值status的状态写成脚本,放在UserParmeter后面,最后通过zabbix_get测试·agent端是否得到状态值

Accepts:接受的客户端请求数

Active:当前活跃的连接数

Handled:处理的请求数(正常服务器响应)

Requests:客户端处理的请求出(吞吐量)

Reading:当接收到的请求时,连接离开waiting状态,并且该请求本身使Reading状态统计数增加,这种状态下,nginx会读取客户端请求首部,请求首部是比较小的,因此这通常是一种快捷的操作

Writing:请求被读取之后,使得Writing状态计数增加,并保持在该状态,直到响应返回给客户端,这便意味着,该请求在writing状态时,一方面NGINX

[root@nginx-web ~]# yum install -y pcre-devel openssl-devel popt-devel

[root@nginx-web ~]# tar zxvf nginx-1.11.2.tar.gz

[root@nginx-web ~]# cd nginx-1.11.2

[root@nginx-web nginx-1.11.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

[root@nginx-web nginx-1.11.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx-web nginx-1.11.2]# useradd -M -s /sbin/nologin nginx
[root@nginx-web nginx-1.11.2]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@nginx-web nginx-1.11.2]# cd /usr/local/nginx/conf/
[root@nginx-web conf]# ls
fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf
fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default
[root@nginx-web conf]# cp nginx.conf nginx.conf.bak
[root@nginx-web conf]# vim  nginx.conf

worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
location /status {
stub_status on;
access_log off;
allow 192.168.2.0/24;
allow 127.0.0.1;
deny all;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

【Zabbix-agent端配置】

[root@nginx-web zabbix_agentd.conf.d]# vim nginx_monitor.sh

NGINX_PORT=80
NGINX_COMMAND=$1
nginx_active(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk '/Active/ {print $NF}'
}
nginx_reading(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk '/Reading/ {print $2}'
}
nginx_writing(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk '/Writing/ {print $4}'}
nginx_waiting(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk '/Waiting/ {print $6}'}
nginx_accepts(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk 'NR==3 {print $1}'}
nginx_handled(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk 'NR==3 {print $2}'}
nginx_requests(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/status/" |awk 'NR==3 {print $3}'}case $NGINX_COMMAND in
active)
nginx_active;
;;
reading)
nginx_reading;
;;
writing)
nginx_writing;
;;
waiting)
nginx_waiting;
;;
accepts)
nginx_accepts;
;;
handled)
nginx_handled;
;;
requests)
nginx_requests;
;;*)
echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"esac[root@nginx-web zabbix_agentd.conf.d]# chmod +x nginx_monitor.sh 

root@nginx-web zabbix_agentd.conf.d]#vim  /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.2.148
ListenPort=10050
ServerActive=192.168.2.148
Hostname=192.168.2.146
UserParameter=status[*],/bin/bash /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx_monitor.sh "$1"

[测试]

在zabbix服务端测试一下能否获取agent端的nginx状态数值

[root@zabbix-server ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.2.146 -k status
USAGE:/usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx_monitor.sh {active|reading|writing|waiting|accepts|handled|requests}
[root@zabbix-server ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.2.146 -k status[writing]
1

【创建监控项】

根据zabbix-agent中的nginx_status.sh的参数,总共要创建active、reading、writing、waiting、accepts、handled、requests这7项

目前为止,七个监控项已添加完成了

[图形创建]

转载于:https://www.cnblogs.com/bixiaoyu/p/9169319.html

Zabbix监控Nginx性能状态相关推荐

  1. Zabbix监控Nginx连接状态

    检测Nginx模块 Nginx性能监控需要通过ngx_http_stub_status_module模块来收集指标: 1)检测是否编译ngx_http_stub_status_module模块 /us ...

  2. zabbix监控php-fpm性能状态

    不多说,首先你需要开启php-fpm的状态页,请参考凉白开前面写的文章<启用php-fpm状态详解>,然后更我一步一步来完成zabbix对php-fpm的监控. zabbix客户端配置 增 ...

  3. 使用zabbix监控mariadb性能状态

    0x01 前言 zabbix内置Mysql的监控模版,因为mariadb和Mysql两者的相关性,所以这个模版也能用在mariadb services上. 0x02 Mysql 首先要在mariadb ...

  4. zabbix监控nginx

    1.nginx添加ngx_http_stub_status_module模块 vim /etc/nginx/conf.d/default.conf location = /basic_status { ...

  5. zabbix监控nginx连接数

    一.nginx配置 nginx 1.6,zabbix 4.0.5 利用nginx自己的监控模块对nginx连接数进行监控 nginx配置: server {listen 80;server_name ...

  6. zabbix监控nginx状态,显示状态active,accepts,handled,requests

    zabbix监控nginx状态,显示状态active,accepts,handled,requests 一. 首先,zabbix server部署完成,可用. 接上篇zabbix部署文章,我这里zab ...

  7. 配置zabbix监控nginx状态,监控华为路由器

    配置zabbix监控nginx状态,监控华为路由器 1.安装并开启nginx [root@localhost ~]# yum install nginx -y [root@localhost ~]# ...

  8. 配置 Zabbix 监控 Nginx(Apache、php-fpm)

    2019独角兽企业重金招聘Python工程师标准>>> Zabbix 监控 Nginx 使用 zabbix 监控 nginx,实际上是通过 nginx 自带 status 模块来获取 ...

  9. 手把手教你使用zabbix监控nginx

    zabbix监控nginx,多亏了容哥(杨容)的帮忙,为了感谢容哥的帮助,写了这篇文章. 环境介绍: 服务器系统版本:CentOSrelease 6.6 (Final) 内核版本:Linux hk_n ...

最新文章

  1. JaveWeb 公司项目(4)----- Easyui的表单验证
  2. Linux的iptables在指定的防火墙规则序号前添加防火墙规则
  3. ES权威指南[官方文档学习笔记]-14 phrase search
  4. OSPF协议工作原理
  5. 初等数论--原根--原根间的关系,原根个数
  6. 2020年推荐系统工程师炼丹手册RecSys-Long Paper版
  7. oracle status
  8. 混沌工程将成标配?落地腾讯游戏后带来了哪些惊喜?丨Gdevops峰会
  9. ReactiveCocoa入门教程——第一部分
  10. 设置Windows 10时如何创建本地帐户
  11. Android中文API(99)—— RelativeLayout
  12. 微软雅黑在IE中显示为宋体
  13. matlab 象限图,【数据可视化】Tableau教程(十)象限图
  14. 记录片《货币》- 有价星球笔记
  15. 小型电话薄管理系统(Mysql数据库)
  16. happens-before的法则
  17. 最新wifi大师独立版4.0.5分销小程序搭建教程
  18. win11磁盘分区_win11系统磁盘如何分区
  19. 字符类型与整形之间的转换
  20. Windows程序设计最新书籍教程

热门文章

  1. 谷歌X实验室开源了一款像血糖仪一样的EEG识别系统
  2. 2020年女人体重表,看看你是不是标准的模特体重
  3. json数据映射到html,在GoLang中将Json数据映射到Html模板
  4. 原理 msc_解析应用在气象站中的GPRS通信原理及优势
  5. 监控ui_做了10年监控系统,有些经验想和你分享
  6. java ssl证书生成_java – 使用jdk中提供的keytool生成SSL证书
  7. 网站提示java已被阻止_Win7系统下打开网页提示应用程序已被JAVA安全阻止
  8. java 获取包名类名_获取指定包名下的所有类的类名(全名)
  9. Andriod anim scale中的属性介绍以及Animation类的属性
  10. 注解@Slf4j的使用