Fork me on GitHub
随笔 - 215  文章 - 13  trackbacks - 0
<2017年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011


专注即时通讯及网游服务端编程
------------------------------------
Openresty 官方模块
Openresty 标准模块(Opm)
Openresty 三方模块
------------------------------------
本博收藏大部分文章为转载,并在文章开头给出了原文出处,如有再转,敬请保留相关信息,这是大家对原创作者劳动成果的自觉尊重!!如为您带来不便,请于本博下留言,谢谢配合。

常用链接

留言簿(1)

随笔分类

随笔档案

相册

Awesome

Blog

Book

GitHub

Link

搜索

  •  

积分与排名

  • 积分 - 211162
  • 排名 - 118

最新评论

阅读排行榜

http://xiaoyongxing1.blog.163.com/blog/static/642807522015144302240/
该脚本针对网上已有解决方案(google一下nginx状态监控shell脚本),修改内存总数计算bug,修改字符错误。在CentOs5.7系统环境下测试可用。
#/bin/bash
host=`hostname`
ip
=`ifconfig eth0 | grep 'inet addr'|sed 's/.*addr://g'|sed 's/B.*//g'`
#监控nginx的连接数
http_req=`netstat -nat|grep -"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
##监控nginx的进程
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
#监控nginx所占用的内存总数
nginx_mem=`top --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

由此可推导出相应的python版:

#coding=utf-8
__author__ = 'kenkao'

import os

def getNginxProcess():
    p = os.popen('ps -C nginx -no-header | wc -l')
    return p.read()

def getNginxMemory():
    p = os.popen('top -b -n1 | grep nginx |gawk \'{if($6~/m$/) {sum+=$6*1024} else {sum+=$6} }; END {print int(sum/1024)}\'')
    return p.read()

def getNginxConnect():
    p = os.popen('netstat -nat|grep -i "80"|wc -l')
    return p.read()

def getPhpfpmProcess():
    p = os.popen('ps -C php-fpm -no-header | wc -l')
    return p.read()

def getPhpfpmMemory():
    p = os.popen('top -b -n1 | grep php-fpm |gawk \'{if($6~/m$/) {sum+=$6*1024} else {sum+=$6} }; END {print int(sum/1024)}\'')
    return p.read()

if __name__ == '__main__':
    print "NginxProcess:" + getNginxProcess()
    print "NginxMemory:" + getNginxMemory()
    print "NginxConnect:" + getNginxConnect()
    print "PhpfpmProcess:" + getPhpfpmProcess()
    print "PhpfpmMemory:" + getPhpfpmMemory()


posted on 2017-03-30 18:09 思月行云 阅读(779) 评论(0)  编辑 收藏 引用 所属分类: Nginx\Openresty

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理