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。併發
location /nginx_status {
運維
stub_status on;
curl
access_log off;
測試
allow 127.0.0.1;
fetch
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.建立圖形
zabbix 客戶端 不要選 主動式
13.關聯模板。
選擇須要配置的主機,點擊模板。切記要點擊添加,而後點擊更新。
14.查看動態
監測中—>圖形—>選擇主機—>圖形
若是數據量比較小,能夠經過ab進行測試。
ab -n 10000 -c 1000 http://ip