天天看點

zabbix 監控nginx狀态:

   很久沒有寫部落格了,今天遇到個麻煩事,網站的通路量突然加大,監控報警是把我的機房帶寬全部跑滿了,最後把硬體防火牆的政策改動之後才恢複正常。然後負責人要關于nginx網站,和帶寬的狀态,于是就想起要做這個了,主要是監控nginx的一些連結狀态:

1、首先開啟nginx_status子產品監控功能:

1

2

3

4

5

6

7

8

9

10

<code>server {</code>

<code>        </code><code>listen      </code><code>8067</code><code>;</code>

<code>        </code><code>server_name localhost; </code>

<code>        </code><code>root       html; </code>

<code>        </code><code>index  index.html;</code>

<code>        </code><code>access_log off;</code>

<code>        </code><code>location </code><code>/</code><code>status {</code>

<code>          </code><code>stub_status on;</code>

<code>        </code><code>}</code>

<code>}</code>

2、測試:

<code>[root@WEB_007 vhosts]</code><code># curl http://192.168.10.7:8067/status</code>

<code>Active connections: </code><code>3</code> 

<code>server accepts handled requests</code>

<code> </code><code>1305214152</code> <code>1305214152</code> <code>1305204005</code> 

<code>Reading: </code><code>0</code> <code>Writing: </code><code>3</code> <code>Waiting: </code><code>0</code>

3、編寫腳本過濾資料:(zabbix主要有資料就能出圖):

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<code>[root@WEB_007 vhosts]</code><code># cat /usr/local/zabbix/scripts/nginx_status </code>

<code>#!/bin/bash  </code>

<code># Script to fetch nginx statuses for tribily monitoring systems  </code>

<code># Author: xiaoluo</code>

<code># License: GPLv2 </code>

<code> </code> 

<code>function active {  </code>

<code>/</code><code>usr</code><code>/</code><code>bin</code><code>/</code><code>curl </code><code>"http://192.168.10.7:8067/status"</code> <code>2</code><code>&gt;</code><code>/</code><code>dev</code><code>/</code><code>null| grep </code><code>'Active'</code> <code>| awk </code><code>'{print $NF}'</code>  

<code>} </code>

<code>function reading {  </code>

<code>/</code><code>usr</code><code>/</code><code>bin</code><code>/</code><code>curl </code><code>"http://192.168.10.7:8067/status"</code> <code>2</code><code>&gt;</code><code>/</code><code>dev</code><code>/</code><code>null| grep </code><code>'Reading'</code> <code>| awk </code><code>'{print $2}'</code>  

<code>function writing {  </code>

<code>/</code><code>usr</code><code>/</code><code>bin</code><code>/</code><code>curl </code><code>"http://192.168.10.7:8067/status"</code> <code>2</code><code>&gt;</code><code>/</code><code>dev</code><code>/</code><code>null| grep </code><code>'Writing'</code> <code>| awk </code><code>'{print $4}'</code>  

<code>function waiting {  </code>

<code>/</code><code>usr</code><code>/</code><code>bin</code><code>/</code><code>curl </code><code>"http://192.168.10.7:8067/status"</code> <code>2</code><code>&gt;</code><code>/</code><code>dev</code><code>/</code><code>null| grep </code><code>'Waiting'</code> <code>| awk </code><code>'{print $6}'</code>  

<code>function accepts {  </code>

<code>/</code><code>usr</code><code>/</code><code>bin</code><code>/</code><code>curl </code><code>"http://192.168.10.7:8067/status"</code> <code>2</code><code>&gt;</code><code>/</code><code>dev</code><code>/</code><code>null| awk NR</code><code>=</code><code>=</code><code>3</code> <code>| awk </code><code>'{print $1}'</code>  

<code>function handled {  </code>

<code>/</code><code>usr</code><code>/</code><code>bin</code><code>/</code><code>curl </code><code>"http://192.168.10.7:8067/status"</code> <code>2</code><code>&gt;</code><code>/</code><code>dev</code><code>/</code><code>null| awk NR</code><code>=</code><code>=</code><code>3</code> <code>| awk </code><code>'{print $2}'</code>  

<code>function requests {  </code>

<code>/</code><code>usr</code><code>/</code><code>bin</code><code>/</code><code>curl </code><code>"http://192.168.10.7:8067/status"</code> <code>2</code><code>&gt;</code><code>/</code><code>dev</code><code>/</code><code>null| awk NR</code><code>=</code><code>=</code><code>3</code> <code>| awk </code><code>'{print $3}'</code>  

<code># Run the requested function  </code>

<code>$</code><code>1</code>

4、開啟zabbix腳本功能、我現在是習慣把執行的key,放在另一個路徑下,以後檔案多了好區分,大家應該也建議這麼做:

<code>[root@WEB_007 zabbix_agentd.conf.d]</code><code># vi /usr/local/zabbix/etc/zabbix_agentd.conf </code>

<code>UnsafeUserParameters</code><code>=</code><code>1</code>

<code>Include</code><code>=</code><code>/</code><code>usr</code><code>/</code><code>local</code><code>/</code><code>zabbix</code><code>/</code><code>etc</code><code>/</code><code>zabbix_agentd.conf.d</code><code>/</code>

<code>[root@WEB_007 zabbix_agentd.conf.d]</code><code>#cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/</code>

<code>[root@WEB_007 zabbix_agentd.conf.d]</code><code>#vi nginx</code>

<code>#monitor nginx</code>

<code>UserParameter</code><code>=</code><code>nginx[</code><code>*</code><code>],</code><code>/</code><code>usr</code><code>/</code><code>local</code><code>/</code><code>zabbix</code><code>/</code><code>scripts</code><code>/</code><code>nginx_status $</code><code>1</code>

5、導入模闆:子產品在我的附件可以自己下載下傳:

這裡示範,在那個時候我第一次制作,是以忘記添加圖形了,大家可以自己根據模闆添加圖形,還有觸發器我也沒有建立,大家根據自己的需要進行建立

6、圖形檢視效果:

<a href="http://down.51cto.com/data/2365647" target="_blank">附件:http://down.51cto.com/data/2365647</a>

本文轉自 小羅ge11 51CTO部落格,原文連結:http://blog.51cto.com/xiaoluoge/1642194,如需轉載請自行聯系原作者

繼續閱讀