php 进程数 并发连接数,Shell脚本查看Nginx并发连接数、进程数和常驻内存占用情况...

该博客分享了一段用于监控Nginx连接数、进程数和内存使用情况的Shell脚本,并修复了原有脚本的错误。此外,还提供了将这些监控功能转换为Python代码的示例,方便在CentOS 5.7环境下进行系统监控。
摘要由CSDN通过智能技术生成

http://xiaoyongxing1.blog.163.com/blog/static/642807522015144302240/

该脚本针对网上已有解决方案(google一下nginx状态监控shell脚本),修改内存总数计算bug,修改字符错误。在CentOs5.7系统环境下测试可用。

cbef093dcc044b2793832001e2365e43.png#/bin/bashcbef093dcc044b2793832001e2365e43.pnghost=`hostname`

cbef093dcc044b2793832001e2365e43.pngip=`ifconfig eth0|grep'inet addr'|sed's/.*addr://g'|sed's/B.*//g'`

cbef093dcc044b2793832001e2365e43.png#监控nginx的连接数cbef093dcc044b2793832001e2365e43.pnghttp_req=`netstat-nat|grep-i"80"|wc-l `

cbef093dcc044b2793832001e2365e43.pngtime_stamp=`date"+%Y/%m/%d %T"`

cbef093dcc044b2793832001e2365e43.pngif[ ${http_req}-ge300];

cbef093dcc044b2793832001e2365e43.pngthen

cbef093dcc044b2793832001e2365e43.pngecho"alert ==> ${host}@${ip}: http connection ${http_req} >= 300 @${time_stamp}"cbef093dcc044b2793832001e2365e43.pngelsecbef093dcc044b2793832001e2365e43.pngecho"${host}@${ip}: http connection ${http_req} @ ${time_stamp}"cbef093dcc044b2793832001e2365e43.pngfi

cbef093dcc044b2793832001e2365e43.png##监控nginx的进程cbef093dcc044b2793832001e2365e43.pngnginx_proc=`ps-C nginx-no-header|wc-l `

cbef093dcc044b2793832001e2365e43.pngtime_stamp=`date"+%Y/%m/%d %T"`

cbef093dcc044b2793832001e2365e43.pngif[ ${nginx_proc}-ge100]

cbef093dcc044b2793832001e2365e43.pngthen

cbef093dcc044b2793832001e2365e43.pngecho"alert ==> ${host}@${ip}: nginx process ${nginx_proc} >= 100 @${time_stamp}"cbef093dcc044b2793832001e2365e43.pngelsecbef093dcc044b2793832001e2365e43.pngecho"${host}@${ip}: nginx process ${nginx_proc} @ ${time_stamp}"cbef093dcc044b2793832001e2365e43.pngfi

cbef093dcc044b2793832001e2365e43.png#监控nginx所占用的内存总数cbef093dcc044b2793832001e2365e43.pngnginx_mem=`top-b-n1|grep nginx|gawk'{if($6~/m$/) {sum+=$6*1024} else {sum+=$6} }; END {print int(sum/1024)}'`

cbef093dcc044b2793832001e2365e43.pngtime_stamp=`date"+%Y/%m/%d %T"`

cbef093dcc044b2793832001e2365e43.pngif[ ${nginx_mem}-ge500]

cbef093dcc044b2793832001e2365e43.pngthen

cbef093dcc044b2793832001e2365e43.pngecho"alert ==> ${host}@${ip}: nginx memory usage ${nginx_mem} MB >= 500 @${time_stamp}"cbef093dcc044b2793832001e2365e43.pngelsecbef093dcc044b2793832001e2365e43.pngecho"${host}@${ip}: nginx memory ${nginx_mem}MB @ ${time_stamp}"cbef093dcc044b2793832001e2365e43.pngfi

由此可推导出相应的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 思月行云 阅读(442) 评论(0)  编辑 收藏 引用 所属分类: Nginx\Openresty

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值