1、获取 Nginx 状态( HTTP Stub Status )
1
<code>/usr/local/nginx/sbin/nginx</code> <code>-V</code>
2、配置 nginx.conf
2
3
4
5
6
7
8
<code>vim </code><code>/usr/local/nginx/conf/nginx</code><code>.conf</code>
<code>location ~ </code><code>/nginx_status</code> <code>{</code>
<code> </code><code>stub_status on;</code>
<code> </code><code>access_log off;</code>
<code> </code><code>allow 127.0.0.1;</code>
<code> </code><code>allow 192.168.1.14;</code>
<code> </code><code>deny all;</code>
<code>}</code>
3、编写脚本获取上面的 key 值
9
10
11
12
13
14
15
16
17
18
19
20
21
<code>vim </code><code>/script/nginx_status</code><code>.sh</code>
<code>#!/bin/bash</code>
<code>case</code> <code>$1 </code><code>in</code>
<code> </code><code>active)</code>
<code> </code><code>curl -s http:</code><code>//127</code><code>.0.0.1</code><code>/nginx_status</code> <code>| </code><code>awk</code> <code>'/Active/ {print $3}'</code> <code>;;</code>
<code> </code><code>accepts)</code>
<code> </code><code>curl -s http:</code><code>//127</code><code>.0.0.1</code><code>/nginx_status</code> <code>| </code><code>awk</code> <code>'NR==3 {print $1}'</code> <code>;;</code>
<code> </code><code>handled)</code>
<code> </code><code>curl -s http:</code><code>//127</code><code>.0.0.1</code><code>/nginx_status</code> <code>| </code><code>awk</code> <code>'NR==3 {print $2}'</code> <code>;;</code>
<code> </code><code>requests)</code>
<code> </code><code>curl -s http:</code><code>//127</code><code>.0.0.1</code><code>/nginx_status</code> <code>| </code><code>awk</code> <code>'NR==3 {print $3}'</code> <code>;;</code>
<code> </code><code>reading)</code>
<code> </code><code>curl -s http:</code><code>//127</code><code>.0.0.1</code><code>/nginx_status</code> <code>| </code><code>awk</code> <code>'/Reading/ {print $2}'</code> <code>;;</code>
<code> </code><code>writing)</code>
<code> </code><code>curl -s http:</code><code>//127</code><code>.0.0.1</code><code>/nginx_status</code> <code>| </code><code>awk</code> <code>'/Writing/ {print $4}'</code> <code>;;</code>
<code> </code><code>waiting)</code>
<code> </code><code>curl -s http:</code><code>//127</code><code>.0.0.1</code><code>/nginx_status</code> <code>| </code><code>awk</code> <code>'/Waiting/ {print $6}'</code> <code>;;</code>
<code> </code><code>*)</code>
<code> </code><code>echo</code> <code>"Usage: $0 { active | accepts | handled | requests | reading | writing | waiting }"</code> <code>;;</code>
<code>esac</code>
<code>chmod</code> <code>a+x </code><code>/script/nginx_status</code><code>.sh</code>
4、添加自定义 key 配置文件
<code>vim </code><code>/usr/local/zabbix/etc/zabbix_agentd</code><code>.conf.d</code><code>/nginx_status</code><code>.conf</code>
<code># Nginx_status</code>
<code>UserParameter=nginx.active,</code><code>/script/nginx_status</code><code>.sh active</code>
<code>UserParameter=nginx.accepts,</code><code>/script/nginx_status</code><code>.sh accepts</code>
<code>UserParameter=nginx.handled,</code><code>/script/nginx_status</code><code>.sh handled</code>
<code>UserParameter=nginx.requests,</code><code>/script/nginx_status</code><code>.sh requests</code>
<code>UserParameter=nginx.reading,</code><code>/script/nginx_status</code><code>.sh reading</code>
<code>UserParameter=nginx.writing,</code><code>/script/nginx_status</code><code>.sh writing</code>
<code>UserParameter=nginx.waiting,</code><code>/script/nginx_status</code><code>.sh waiting</code>
<code>5、修改zabbix_agentd.conf</code>
<code>vim </code><code>/usr/local/zabbix/etc/zabbix_agentd</code><code>.conf</code>
<code>LogFile=</code><code>/tmp/zabbix_agentd</code><code>.log</code>
<code>Server=192.168.1.14</code>
<code>ServerActive=192.168.1.14</code>
<code>Hostname=Zabbix server</code>
<code>Include=</code><code>/usr/local/zabbix/etc/zabbix_agentd</code><code>.conf.d/</code>
<code>EnableRemoteCommands=1</code>
<code>UnsafeUserParameters=1</code>
6、Zabbix 服务端测试能否拿到 Key
<code>/usr/local/zabbix/bin/zabbix_get</code> <code>-s 192.168.1.12 -k nginx.active</code>
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
本文转自1321385590 51CTO博客,原文链接:http://blog.51cto.com/linux10000/1727963,如需转载请自行联系原作者