1、获取 Nginx 状态( HTTP Stub Status )

/usr/local/nginx/sbin/nginx -V

2、配置 nginx.conf

vim /usr/local/nginx/conf/nginx.conf
location ~ /nginx_status {
      stub_status on;
      access_log off;
      allow 127.0.0.1;
      allow 192.168.1.14;
      deny all;
}

3、编写脚本获取上面的 key 值

vim /script/nginx_status.sh
#!/bin/bash
case $1 in
  active)
    curl -s http://127.0.0.1/nginx_status | awk '/Active/ {print $3}' ;;
  accepts)
    curl -s http://127.0.0.1/nginx_status | awk 'NR==3 {print $1}' ;;
  handled)
    curl -s http://127.0.0.1/nginx_status | awk 'NR==3 {print $2}' ;;
  requests)
    curl -s http://127.0.0.1/nginx_status | awk 'NR==3 {print $3}' ;;
  reading)
    curl -s http://127.0.0.1/nginx_status | awk '/Reading/ {print $2}' ;;
  writing)
    curl -s http://127.0.0.1/nginx_status | awk '/Writing/ {print $4}' ;;
  waiting)
    curl -s http://127.0.0.1/nginx_status | awk '/Waiting/ {print $6}' ;;
  *)
    echo "Usage: $0 { active | accepts | handled | requests | reading | writing | waiting }" ;;
esac
chmod a+x /script/nginx_status.sh

4、添加自定义 key 配置文件

vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx_status.conf
# Nginx_status
UserParameter=nginx.active,/script/nginx_status.sh active
UserParameter=nginx.accepts,/script/nginx_status.sh accepts
UserParameter=nginx.handled,/script/nginx_status.sh handled
UserParameter=nginx.requests,/script/nginx_status.sh requests
UserParameter=nginx.reading,/script/nginx_status.sh reading
UserParameter=nginx.writing,/script/nginx_status.sh writing
UserParameter=nginx.waiting,/script/nginx_status.sh waiting
5、修改zabbix_agentd.conf
vim /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.1.14
ServerActive=192.168.1.14
Hostname=Zabbix server
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
EnableRemoteCommands=1
UnsafeUserParameters=1

6、Zabbix 服务端测试能否拿到 Key

/usr/local/zabbix/bin/zabbix_get -s 192.168.1.12 -k nginx.active




Nginx 监控项解释

Active connections: 1

server accepts handled requests

 1 1 1

Reading: 0 Writing: 1 Waiting: 0

## Active connections: 对后端发起的活动连接数

## Server accepts handled requests: Nginx 总共处理了 1 个连接,成功创建了 1 次握手(没有失败次数),总共处理了 1 个请求

## Reading: Nginx 读取到客户端的 Header 信息数

## Writing: Nginx 返回给客户端的 Header 信息数

## Waiting: 开启 keep-alive 的情况下,这个值等于 active - ( reading + writing ), 意思是 Nginx 已经处理完成,正在等待下一次请求指令的驻留连接

## 在访问效率很高,请求很快被处理完毕的情况下,Waiting 数比较多是正常的。如果 reading + writing 数较多,则说明并发访问量很大,正在处理过程中


原文网址:http://blog.chinaunix.net/uid-30272825-id-5115194.html