监控Nginx服务的Shell脚本
- Nginx 虽然处理并发量比 apache 确实要强点,但它这种 php-cgi 模式不是太稳定,这点网上也有朋友总结了,我在实现项目中也感受到了。
 - 我们一台支付机,偶尔会出现以下情况的:php-cgi 进程突然消失了,造成PHP脚本无法访问;更不可思议的是明明是php-cgi 打开有两个端口在监听的,莫名其秒的突然有一个php-cgi 的端口被关闭了,造成所有请求全积在一个端口上,
 - 结果造成PHP脚本访问异常。
 - 基本这种情况,我写了个监控shell脚本的解决方案,不管以上出现那种情况,都自动恢复Nginx的服务.该脚本在生产环境上运行正常:
 - #!/bin/bash
 - #
 - # filename: webservermonitor.sh
 - # 功能:监控 nginx 的 php-cgi 是否正常
 - # 作者:V哥
 - # 运行: webservermonitor.sh &
 - #
 - # php-cgi 监听的IP和端口
 - V_PHP_CGI_PORT="127.0.0.1:9000 127.0.0.1:9001"
 - # nginx重启的脚本
 - V_NGINX="/usr/local/nginx/sbin/restart.sh"
 - # 日志文件
 - V_LOG="/tmp/webservermonitor.log"
 - # 函数定义:重启nginx
 - function restart_nginx(){
 - echo "----- `date` -----" >> $V_LOG
 - echo "------------------" >> $V_LOG
 - echo "`ps aux |grep 'nginx'`" >> $V_LOG
 - echo "------------------" >> $V_LOG
 - echo "`ps aux |grep 'php-cgi'`" >> $V_LOG
 - echo "------------------" >> $V_LOG
 - echo "`netstat -nlpt | grep 'php-cgi'`" >> $V_LOG
 - echo "------------------" >> $V_LOG
 - $V_NGINX >> $V_LOG
 - }
 - # 循环执行,不采用 crontab ,国为 crontab 最小单位是分钟,时间太长了
 - while :
 - do
 - # 1:先检测 nginx 主进程是否存在
 - V_NGINX_NUM=`ps axu |grep 'nginx' |grep -v 'grep' |wc -l`
 - if [ $V_NGINX_NUM -lt 1 ];then
 - restart_nginx
 - continue
 - fi
 - # 2:再检查php-cgi是否有进程存在
 - V_PHP_CGI_NUM=`ps axu |grep 'php-cgi' |grep -v 'grep' |wc -l`
 - if [ $V_PHP_CGI_NUM -lt 1 ];then
 - restart_nginx
 - continue
 - fi
 - # 3:再判断端口是否正常
 - for PORT in $V_PHP_CGI_PORT
 - do
 - V_NUM=`eval "netstat -nlpt | grep '${PORT}' | wc -l"`
 - if [ $V_NUM -lt 1 ];then
 - restart_nginx
 - continue
 - fi
 - done
 - # 休眠
 - sleep 5
 - done
 
监控Nginx服务的Shell脚本的更多相关文章
- 监测NGINX服务的shell脚本
		
Nginx 虽然处理并发量比 apache 确实要强点,但它这种 php-cgi 模式不是太稳定,这点网上也有朋友总结了,我在实现项目中也感受到了. 偶尔会出现以下情况的:php-cgi 进程突然消失 ...
 - Nagios监控nginx服务具体过程
		
1在nginx 服务器上安装nrpe客户端: Nginx的服务须要监控起来.不然万一down了而不及时修复,会影响web应用.例如以下web应用上面启动的nginx后台进程[root@lb-net-2 ...
 - 使用Zabbix监控Nginx服务实战案例
		
使用Zabbix监控Nginx服务实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编译安装nginx步骤详解并开启状态页 博主推荐阅读: https://www.cn ...
 - Python 监控nginx服务是否正常
		
Python 监控nginx服务是否正常 #!/usr/bin/env python import os, sys, time from time import strftime while True ...
 - tomcat监控,自动重启shell脚本
		
tomcat监控,自动重启shell脚本如下,取名 monitor_tomcat.sh: #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作 # 获取tomcat进程ID(其中 ...
 - Tomcat集群 Nginx负载均衡  shell脚本实时监控Nginx
		
第一步,安装Tomcat 系统环境:Centos7 第1步:下载tomcat安装包 tomcat官网:https://tomcat.apache.org/ 第2步:安装包上传至linux中 第3步:下 ...
 - 【zabbix告警监控】配置zabbix监控nginx服务
		
zabbix监控nginx,nginx需要添加--with-http_stub_status模块 使用zabbix监控nginx,首先nginx需要配置开启ngx_status.但是我这边nginx安 ...
 - Dubbo入门到精通学习笔记(二):Dubbo管理控制台、使用Maven构建Dubbo的jar包、在Linux上部署Dubbo privider服务(shell脚本)、部署consumer服务
		
文章目录 Dubbo管理控制台 1.Dubbo管理控制台的主要作用: 2.管理控制台主要包含: 3.管理控制台版本: 安装 Dubbo 管理控制台 使用Maven构建Dubbo服务的可执行jar包 D ...
 - zabbix4.2配置监控nginx服务
		
1.监控原理 通过status模块监控(--with-http_stub_status_module) 2.修改nginx配置(/etc/nginx/conf.d/default.conf) 在被监 ...
 
随机推荐
- 【例题 7-10 UVA - 11212】Editing a Book
			
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 迭代加深搜. 很容易想到,最多只要搜8层就可以得到答案了 ->最多8下肯定可以还原. 则枚举一下最大层数.然后做个深搜就好. ...
 - Android 解决RecyclerView删除Item导致位置错乱的问题
			
RecyclerView的刷新分为内容变化和结构变化,结构变化比如remove和insert等并不会导致viewholder的更新,所以有时候我们使用 notifyItemRemoved(positi ...
 - css结构设计思想
			
本文摘自博客园-予沁安的文章:结构化CSS设计思维,作为学习笔记记录一下 1.LESS.SASS等预处理器给CSS开发带来了语法的灵活和便利,其本身却没有给我们带来结构化设计思维.很少有人讨论CSS的 ...
 - (素材源代码) 猫猫学IOS(五)UI之360等下载管理器九宫格UI
			
猫猫分享,必须精品 先看效果 代码学习地址: 猫猫学IOS(五)UI之360等下载管理器九宫格UI 猫猫学IOS(五)UI之360等下载管理器九宫格UI http://blog.csdn.net/u0 ...
 - js进阶 13-2 jquery动画滑动效果哪些注意事项
			
js进阶 13-2 jquery动画滑动效果哪些注意事项 一.总结 一句话总结:滑动里面这里up是隐藏,down是显示. 1.jquery动画默认的两个切换效果是什么(swing默认和linear的区 ...
 - chrome-extensions -- copytables. verygood
			
https://www.crx4chrome.com/extensions/ekdpkppgmlalfkphpibadldikjimijon/,通过设置快捷键,一般是拷贝多行
 - hprof教程                                                    分类:            B1_JAVA             2015-03-02 12:18    444人阅读    评论(0)    收藏
			
大部分内容参考http://www.linuxidc.com/Linux/2012-04/58178.htm J2SE中提供了一个简单的命令行工具来对java程序的cpu和heap进行 profili ...
 - js进阶ajax基本用法(创建对象,连接服务器,发送请求,获取服务器传过来的数据)
			
js进阶ajax基本用法(创建对象,连接服务器,发送请求,获取服务器传过来的数据) 一.总结 1.ajax的浏览器的window对象的XMLHtmlRequest对象的两个重要方法:open(),se ...
 - TEMPDB
			
TEMPDB暴涨 阅读目录 前言 正文 原因 解决 补充 回到顶部 前言 tempdb暴增,造成磁盘空间不足,甚至影响业务运行. 回到顶部 正文 如图,tempdb log文件从7.4 ...
 - angular之Http服务
			
原文 https://www.jianshu.com/p/53e4a4bfad7d 大纲 1.什么是angular服务 2.服务的类别 3.认识angular的Http请求 4.简单实例 5.angu ...