天天看點

使用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,如需轉載請自行聯系原作者

繼續閱讀