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

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

1.修改nginx配置文件

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

location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    allow 192.168.*.*;
    #zabbix服務器的IP地址,一般是內網地址
    deny all;
    }


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配置文件開始自定義參數

vi /etc/zabbix/zabbix_agentd.conf

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

UnsafeUserParameters=1

4.新增腳本配置文件

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

cd /etc/zabbix/zabbix_agentd.d/

vi  nginx_status.conf

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

5.編寫腳本

#!/bin/bash
#Script to fetch nginx statuses for monitoring systems

HOST="127.0.0.1"
PORT="80"

function ping {
    /sbin/pidof nginx | wc -l
}

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}'
}
$1

 6.賦權

chmod a+x nginx_status.sh

 7.重啓zabbix-agent服務

systemctl restart zabbix-agent

8.在zabbix-server端測試連接

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

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

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

 

 

 

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