該腳本針對(duì)網(wǎng)上已有解決方案(google一下nginx狀態(tài)監(jiān)控shell腳本),,修改內(nèi)存總數(shù)計(jì)算bug,,修改字符錯(cuò)誤。在CentOs5.7系統(tǒng)環(huán)境下測(cè)試可用,。
#/bin/bash
host=`hostname`
ip=`ifconfig eth0 | grep 'inet addr'|sed 's/.*addr://g'|sed 's/B.*//g'`
#監(jiān)控nginx的連接數(shù)
http_req=`netstat -nat|grep -i "80"|wc -l `
time_stamp=`date "+%Y/%m/%d %T"`
if [ ${http_req} -ge 300 ];
then
echo "alert ==> ${host}@${ip}: http connection ${http_req} >= 300 @${time_stamp} "
else
echo "${host}@${ip}: http connection ${http_req} @ ${time_stamp}"
fi
##監(jiān)控nginx的進(jìn)程
nginx_proc=`ps -C nginx -no-header | wc -l `
time_stamp=`date "+%Y/%m/%d %T"`
if [ ${nginx_proc} -ge 100 ]
then
echo "alert ==> ${host}@${ip}: nginx process ${nginx_proc} >= 100 @${time_stamp} "
else
echo "${host}@${ip}: nginx process ${nginx_proc} @ ${time_stamp}"
fi
#監(jiān)控nginx所占用的內(nèi)存總數(shù)
nginx_mem=`top -b -n1 | grep nginx |gawk '{if($6~/m$/) {sum+=$6*1024} else {sum+=$6} }; END {print int(sum/1024)}' `
time_stamp=`date "+%Y/%m/%d %T"`
if [ ${nginx_mem} -ge 500 ]
then
echo "alert ==> ${host}@${ip}: nginx memory usage ${nginx_mem} MB >= 500 @${time_stamp} "
else
echo "${host}@${ip}: nginx memory ${nginx_mem}MB @ ${time_stamp}"
fi
本文轉(zhuǎn)載自:http://www.guofang.me/article/index/aid/80