ZABBIX 3.4 (一) 監測Nginx狀態及腳本

ZABBIX 3.4 (一) 監測Nginx狀態及腳本

2018年08月31日 16:56:48 YoFog 閱讀數:106 標籤: zabbix agentzabbix nginxnginx_status監控nginxzabbix腳本更多nginx

我的分類: 運維web

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/YoFog/article/details/82256137後端

安裝了zabbix用來監測agent端的lnmp環境,先整理了一下配置nginx監測的步驟。bash

1.修改nginx配置文件服務器

/etc/nginx/nginx.conf,能夠新寫一個server或者在舊的server裏面新增一個localtion。保存以後重啓nginx。併發

 
  1. location /nginx_status {運維

  2. stub_status on;curl

  3. access_log off;測試

  4. allow 127.0.0.1;fetch

  5. allow 192.168.*.*;

  6. #zabbix服務器的IP地址,通常是內網地址

  7. deny all;

  8. }

  9.  
  10.  
  11. systemctl restart nginx

stub_status模塊主要用於查看Nginx的一些狀態信息,zabbix監測的就是status裏面的一些基本數據。

使用allow能夠運行該ip訪問,用deny all 禁止其餘機器訪問地址,便於測試。個人zabbix分在兩個機子上部署了,使用完畢能夠把deny註釋掉。

2.訪問nginx_status

Activeconnections:對後端發起的活動鏈接數;

server accepts:處理的鏈接數;

handled:成功建立的握手次數;

requests:總共處理的請求數。

Reading:讀取客戶端的header數;

Writing: 返回給客戶端的header數;

Waiting: 請求處理完成,正在等待下一請求指令的鏈接。

在訪問效率很高,請求很快被處理完畢的狀況下,Waiting 數比較可能是正常的。若是 reading + writing 數較多,則說明併發訪問量很大,正在處理過程當中

 3.zabbix-agent配置文件開始自定義參數

 
  1. vi /etc/zabbix/zabbix_agentd.conf

  2.  
  3. Include=/etc/zabbix/zabbix_agentd.d/*.conf

  4.  
  5. UnsafeUserParameters=1

4.新增腳本配置文件

agent配置文件中已經說明腳本存在於/etc/zabbix/zabbix_agentd.d/目錄。

 
  1. cd /etc/zabbix/zabbix_agentd.d/

  2.  
  3. vi nginx_status.conf

  4.  
  5. UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh $1

5.編寫腳本

 
  1. #!/bin/bash

  2. #Script to fetch nginx statuses for monitoring systems

  3.  
  4. HOST="127.0.0.1"

  5. PORT="80"

  6.  
  7. function ping {

  8. /sbin/pidof nginx | wc -l

  9. }

  10.  
  11. function active {

  12. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'

  13. }

  14. function reading {

  15. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'

  16. }

  17. function writing {

  18. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'

  19. }

  20. function waiting {

  21. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'

  22. }

  23. function accepts {

  24. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'

  25. }

  26. function handled {

  27. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'

  28. }

  29. function requests {

  30. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'

  31. }

  32. $1

 6.賦權

chmod a+x nginx_status.sh

 7.重啓zabbix-agent服務

systemctl restart zabbix-agent

8.在zabbix-server端測試鏈接

 
  1. zabbix_get -s 192.168.236.130 -p 10050 -k nginx.status[accepts]

  2.  
  3. zabbix_get -s 192.168.236.130 -p 10050 -k nginx.status[handled]

  4.  
  5. zabbix_get -s 192.168.236.130 -p 10050 -k nginx.status[requests]

9.zabbix-web端建立模板 

10.建立應用集

11.建立監控項

建立監控項時,鍵值要手動輸入,選擇裏面是找不到的。網上好多文章沒有說明是手輸的。nginx.status[*]就是上面nginx_status.conf裏面的參數,*是腳本里面的function名稱。

12.建立圖形

13.關聯模板。

選擇須要配置的主機,點擊模板。切記要點擊添加,而後點擊更新。

 14.查看動態

監測中—>圖形—>選擇主機—>圖形

若是數據量比較小,能夠經過ab進行測試。

ab -n 10000 -c 1000 http://ip

相關文章
相關標籤/搜索