Zabbix 監控Nginx連接的狀態

一、爲nginx開啓status狀態

在server中添加如下代碼,xxx.xxx.xxx.xxx填寫你的監控服務器地址。

location /nginx_status{  
      stub_status on;  
      access_log off;  
      allow 127.0.0.1;  
      allow xxx.xxx.xxx.xxx;  
      deny all;  
}


二、寫監控腳本

大家可以根據要監控的主機地址及端口進行調節腳本。

# vim /usr/local/zabbix/scripts/nginx

#!/bin/bash
HOST="10.0.0.10"
PORT="80"
function active {
  /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
  }
function reading {
  /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
       }
function writing {
  /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
       }
function waiting {
  /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
       }
function accepts {
  /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
       }
function handled {
  /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
       }
function requests {
  /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
       }
# Run the requested function
$1

三、配置Key

# vim /etc/zabbix/zabbix_agentd.conf

# monitor nginx status
UserParameter=nginx[*],/usr/local/zabbix/scripts/nginx $1

四、導入模版

模版在我的附件中,導入即可直接使用。

五、結果查看

wKiom1YoT1CRa0PlAAXIRcVspfI739.jpg


wKioL1YoT3zQOwG9AAXmo-fhpQA234.jpg


wKiom1YoT1Ggm6BAAAWHk16zOUU873.jpg


六、狀態參數講解

Active connections: 11921
server accepts handled requests
 11989 11989 11991
Reading: 0 Writing: 7 Waiting: 42

active connections – 活躍的連接數量
server accepts handled requests — 總共處理了11989個連接 , 成功創建11989次握手, 總共處理了11991個請求
reading — 讀取客戶端的連接數.
writing — 響應數據到客戶端的數量
waiting — 開啓 keep-alive 的情況下,這個值等於 active – (reading+writing), 意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留連接.

    所以,在訪問效率高,請求很快被處理完畢的情況下,Waiting數比較多是正常的.如果reading +writing數較多,則說明併發訪問量。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章