安裝nginx
首先需要下載nginx安裝tar包,地址爲:http://nginx.org/download/,並將其上傳至機器,對其進行解壓
> tar -zxvf nginx-1.2.6.tar.gz
> yum -y install pcre pcre-devel zlib zlib-devel
創建nginx用戶:#useradd -s /sbin/nologin -M nginx
開始安裝:
#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
#make && make install
測試是否安裝成功:
echo "hadoop" >>/usr/local/nginx/html/index.html
/usr/local/nginx/sbin/nginx
curl localhost
修改vi /usr/local/nginx/conf/nginx.conf配置文件
檢測語法是否正常:/usr/local/nginx/sbin/nginx -t
重載:kill -HUP $(cat /usr/local/nginx/logs/nginx.pid)
從上圖可以看到連接數
編寫shell腳本:
#!/bin/bash
HOST="127.0.0.1"
PORT="80"
#nginx if not exeit
function ping {
/sbin/pidof nginx |wc -l
}
#nginx performance
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
賦予執行權限:chmod a+x nginx-status.sh
在客戶端添加自定義腳本規則
mv nginx-status.sh /etc/zabbix/zabbix_agentd.d
vi /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1 #表示開啓自定義腳本
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx-status.sh $
systemctl restart zabbix-agent
再其他某一機器(192.168.1.173)執行命令:while 2>1;do curl 192.168.1.172;done
在服務端使用zabbix-get測試腳本獲取數據情況
在192.168.1.171機器上安裝zabbix-get:yum -y install zabbix_get
zabbix_get -s 192.168.1.172 -k 'nginx.status[requests]' #192.168.1.171機器執行
開始配置zabbix頁面:
查看是否導入成功
將之前的172主機刪除,重新創建主機,添加nginx模板,
至此,nginx併發監控已完成。