一、爲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
四、導入模版
模版在我的附件中,導入即可直接使用。
五、結果查看
六、狀態參數講解
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數較多,則說明併發訪問量。