天天看点

使用zabbix 2.4 监控nginx

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,如需转载请自行联系原作者

继续阅读