安裝了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