码迷,mamicode.com
首页 > 其他好文 > 详细

Zabbix之监控Nginx状态信息

时间:2014-08-22 18:15:19      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:zabbix nginx

Zabbix 之监控Nginx状态信息

 

nginx需要支持 http_stub_status_module 编译的时候需要使用--with-http_stub_status_module

yum默认支持此选项

bubuko.com,布布扣


1. 配置nginx stuats 
源码: vim nginx.conf 
yum: vim /etc/nginx/conf.d/default.conf 
#and add the following to your server block 

location /nginx_status { 
stub_status on; 
access_log off; 
allow 127.0.0.1; 
allow 172.16.7.70; #Put your servers IPaddress instead of 172.16.7.70
deny all; 

bubuko.com,布布扣

 

 

  # 检测配置文件
  nginx -t  

  # 重新加载配置文件                 

  nginx -s reload        

 

2.查看Nginx状态信息

curl localhost/nginx_status

bubuko.com,布布扣


注解:
Active connections: 1 当前活动的连接数

server accepts handled requests

 3721 3721 3714

 3721  从启动到现在一共处理的连接数

 3721  从启动到现在成功创建的握手的次数

 3714   总共处理的请求数(requests)

 请求的丢失数=(握手-连接)

 

connection 连接数,tcp连接

request http请求,GET/POST/DELETE

 

Reading: 0 Writing: 1 Waiting: 0

Reading: 0 读取客户端Header的信息数 请求头

Writing: 1 返回给客户端的header的信息数 响应头

Waiting: 0 等待的请求数





3. zabbix客户端配置 


#创建检测脚本
mkdir /usr/local/zabbix/scripts 
vi /usr/local/zabbix/scripts/nginx_status.sh 

#!/bin/bash 
# Script to fetch nginx statuses for tribily monitoring systems 
# Author: krish@toonheart.com
 
# License: GPLv2 
# Set Variables 
#BKUP_DATE=`/bin/date +%Y%m%d` 
#LOG="/etc/zabbix/nginx_status.log" 
HOST=`/sbin/ifconfig eth0 | sed -n ‘/inet /{s/.*addr://;s/ .*//;p}‘` 
PORT="80" 
# Functions to return nginx stats 
function active { 
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep ‘Active‘ | awk ‘{print $NF}‘ 
} 
function reading { 
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep ‘Reading‘ | awk ‘{print $2}‘ 
} 
function writing { 
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep ‘Writing‘ | awk ‘{print $4}‘ 
} 
function waiting { 
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep ‘Waiting‘ | awk ‘{print $6}‘ 
} 
function accepts { 
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk ‘{print $1}‘ 
} 
function handled { 
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk ‘{print $2}‘ 
} 
function requests { 
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk ‘{print $3}‘ 
} 
# Run the requested function 
$1



# 对脚本赋予执行权限

chmod +x /usr/local/zabbix/scripts/nginx_status.sh 

 

# 修改agent 配置文件

vim /usr/local/zabbix/etc/zabbix_agentd.conf 

#开启自定义KEY功能
UnsafeUserParameters=1      
UserParameter=nginx.accepts,/usr/local/zabbix/scripts/nginx_status.sh accepts 
UserParameter=nginx.handled,/usr/local/zabbix/scripts/nginx_status.sh handled 
UserParameter=nginx.requests,/usr/local/zabbix/scripts/nginx_status.sh requests 
UserParameter=nginx.connections.active,/usr/local/zabbix/scripts/nginx_status.sh active 
UserParameter=nginx.connections.reading,/usr/local/zabbix/scripts/nginx_status.sh reading 
UserParameter=nginx.connections.writing,/usr/local/zabbix/scripts/nginx_status.sh writing 
UserParameter=nginx.connections.waiting,/usr/local/zabbix/scripts/nginx_status.sh waiting 

 

#重启zabbix_agentd

/etc/init.d/zabbix_agentd  restart



4.服务端测试

# /usr/local/zabbix/bin/zabbix_get  -s 172.16.99.25 -knginx.accepts
12877

# 有信息返回说明配置正常

 

 

# 有图有真相

bubuko.com,布布扣

 

bubuko.com,布布扣

 

 

#模板

 http://pan.baidu.com/s/1c00Aqcg

 


FAQ : 若果是无返回信息则说明agent端配置错误这是查看zabbix_agentd.log 的输出日志,排查错误


bubuko.com,布布扣


 


本文出自 “Jeffery Blog” 博客,请务必保留此出处http://oceanszf.blog.51cto.com/6268931/1543458

Zabbix之监控Nginx状态信息

标签:zabbix nginx

原文地址:http://oceanszf.blog.51cto.com/6268931/1543458

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!