ZABBIX自定義key監控nginx狀態
阿新 • • 發佈:2019-01-08
1. 先把zabbix_agent監控指令碼貼上來:
cat nginx_status.sh #!/bin/bash NGINX_PORT=8000 NGINX_COMMAND=$1 case $NGINX_COMMAND in connect) if $(/usr/bin/which pidof) -s nginx &>/dev/null;then echo "0" else echo "1" fi ;; active) curl -s localhost:8000/nginx_status|grep -i 'Active connections'|awk '{print $NF}' ;; reading) curl -s localhost:8000/nginx_status|grep -i 'reading'|awk '{print $2}' ;; writing) curl -s localhost:8000/nginx_status|grep -i 'Writing'|awk '{print $4}' ;; waiting) curl -s localhost:8000/nginx_status|grep -i 'waiting'|awk '{print $6}' ;; accepts) curl -s localhost:8000/nginx_status|awk 'NR==3{print $1}' ;; handled) curl -s localhost:8000/nginx_status|awk 'NR==3{print $2}' ;; requests) curl -s localhost:8000/nginx_status|awk 'NR==3{print $3}' ;; *) echo "USAGE: $0 {active|reading|writing|waiting|accepts|handled|requests}" esac # Active connections # 當前活動客戶端連線數,包括Waiting連線數。 # accepts # 已接受的客戶端連線總數。 # handled # 處理的連線總數。通常,引數值與accepts 除非已達到某些資源限制(例如: worker_connections限制)相同。 # requests # 客戶端請求的總數。 # Reading # nginx正在讀取請求標頭的當前連線數。 # Writing # nginx將響應寫回客戶端的當前連線數。 # Waiting # 當前等待請求的空閒客戶端連線數(開啟keep-alive的情況下,這個值等於 Active - (Reading+Writing))
2. 編輯zabbix_agentd.conf檔案
# UserParameter= # 找到這一行在下面新增自定義key
UserParameter=nginx_status[*],/bin/bash /home/changchun/scripts/nginx_status.sh $1
# zabbix_server端可通過zabbix_get測試: zabbix -s agent_ip -p10050 -k "nginx_status[connect]"
3.建立模板
4.新增監控項
a)找到剛才新建的模板--->選擇監控項
b)建立監控項
c)取active為例,其他相同配置即可(因為我是配置的agent主動模式,所以配置的主動模式,想了解的可以參考我之前的文章)
5.新增觸發器,選擇模板--->觸發器
a)建立觸發器
b)這裡的觸發器為了,監控nginx_connect的
c)接下來就可以在最新資料中看到結果了
# 因為這邊是線上環境,就不進行測試了,自己感興趣的話則使用虛擬機器進行測試吧