宕机监控报警程序

一.  
需求来源

宕机对运维人员来说,最痛苦了。怎样检測一台server是否还在正常执行,假设该server宕机,怎样在第一时间监測到并通知一线运维人员进行维护,最大化降低损失。

二.  
程序功能

对指定server进行宕机监測,假设确实宕机,则发送email到139邮箱(绑定手机,实现短信报警)

三.源程序

#!/bin/bash
#author longxibendi
#blog http://blog.csdn.net/longxibendi
#function ping a host and output to file ping_longxibendi.log
#ping destination
function_ping ()
{
ping -c 3 172.29.141.115 > ping_longxibendi.log
}
#downtime detection and send email to SA
function_downtime_detection_AND_sendemail ()
{
if [ "`cat ping_longxibendi.log | grep Unreachable`" != "" ] ; then
/usr/local/bin/sendEmail -f monitor_sys@163.com -t longxibendi@139.com -s smtp.163.com -u "Server downtime" -xu monitor_sys -xp 123456789 -m "`date;echo "172.29.141.115" ` "
fi
}
#main function
function_main ()
{
while true
do
function_ping ;
sleep 2
function_downtime_detection_AND_sendemail ;
sleep 2

done
}
function_main ;

四.程序说明

1.通过  function_ping    ,每隔4秒对 主机 172.29.141.115 进行ping 操作,(当然,假设主机172.29.141.115的防火墙,或者内过滤ICMP包,那么这个程序显然不能用)将输出重定向到ping_longxibendi.log 文件里

2.通过 function_downtime_detection_AND_sendemail  ,每隔4秒,通过ping_longxibendi.log推断是否有没有ping通的迹象,假设有,则调用 sendEmail 邮件(手机短信)报警。

3.监控间隔时间说明  ,能够将 第一个 sleep 改为   150   ,第二个 sleep 改为  150  ,这样每隔5分钟监控一次。

四.使用环境说明

1.主机 A(172.29.141.112)   主机B (172.29.141.115)    ,

在A上部署该监控程序(monitor_down.sh),用于监控B

2.正常情况下A能ping通B

由于用的ping命令,所以假设使用该程序,须要在正常情况下A ping 通 B  。对企业来说,这可能就须要防火墙和Linux内核參数(当然,假设之前没有改动net.ipv4.icmp_echo_ignore_all,则不须要调整)

3.安装了 sendEmail  并 在139邮箱注冊(绑定手机),方可有邮件(短信)报警提示

五.程序測试

[root@localhost monitor]# sh  monitor_down.sh

May 21 20:33:46 localhost sendEmail[9175]: Email was sent successfully!

May 21 20:33:56 localhost sendEmail[9204]: Email was sent successfully!

Terminated

[root@localhost monitor]#

六.程序扩展

这个程序,仅仅是实现宕机监控并报警,但没有实现故障转移,自己主动切换功能。事实上,仅仅要略微改动一下程序就能够实现故障转移,自己主动切换。故障转移,比方能够通过在热备机A上部署该程序,监控B,一旦B宕机,则A运行浮动改IP和更新下层serverarp列表就可以。能够參考

http://blog.csdn.net/longxibendi/archive/2011/05/21/6436606.aspx

声明:本文档能够任意更改,但必须署名原作者

作者:凤凰舞者 qq:578989855

server宕机监控、检測、报警程序(139绑定手机短信报警)monitor_down.sh的更多相关文章

  1. zabbix学习笔记:zabbix监控之短信报警

    zabbix学习笔记:zabbix监控之短信报警 zabbix的报警方式有多种,除了常见的邮件报警外,特殊情况下还需要设置短信报警和微信报警等额外方式.本篇文章向大家介绍短信报警. 短信报警设置 短信 ...

  2. CactiEZ 中文版V10.1安装使用以及139邮箱短信报警设置

    说明:CactiEZ中文版V10.1是基于CentOS 6.0系统,整合Cacti等相关软件,重新编译而成的一个操作系统!   说明:CactiEZ中文版V10.1是基于CentOS 6.0系统,整合 ...

  3. Grafana 短信报警

    一.分析 需求 Grafana支持短信渠道报警 要求 使用开发提供的短信API接口 请求url: http://192.168.1.1:8088/alerting/sendSms?mobile=手机号 ...

  4. centos7之zabbix邮件报警(短信报警)

    前言 前面我们介绍了zabbix的基本linux和window及SNMP流量的简单监控,我们知道作为运维人员,需要7x24小时待命,但是我们不可能时时刻刻都坐在电脑旁边查看监控上的各个主机状态,所以我 ...

  5. zabbix 短信报警

    使用的短信平台是云片网,接口请看官网短信接口API文档,有示例 进入server服务器存放脚本的文件夹,默认路径是 [root@test zabbix]# cat zabbix_server.conf ...

  6. mysubmail 短信报警

    https://www.mysubmail.com/chs/documents/developer/YPWD84   文本文档  官网:www.mysubmail.com 操作流程:快速接入短信 AP ...

  7. zabbix3配置短信报警

    需求:在zabbix服务器配置短信报警,当服务出现故障达到预警级别是通过发送短信的形式告诉运维人员,以便及时处理. 一.zabbix服务器端配置短信脚本 我的短信脚本放置位置为 /etc/zabbix ...

  8. Ios拦截手机短信程序

    引用 1.手机要越狱,没有越狱的话,下面的可以不用看了!  2.IOS 要5.0以上,4.xx的同上  首先,声明下!由于公司移动开发的项目中,需要根据手机的内容进行逻辑处理,也就是要实现手机短信拦截 ...

  9. Matlab 程序结束后发送短信或者邮件

    近期,在服务器上运行matlab程序,由于数据比较多,程序比较复杂,运行时间不固定,而且需要经常改变参数,重复运行几次,所以不清楚程序何时结束,以便于修改参数,继续运行.开始有时间就看看程序是否运行结 ...

随机推荐

  1. 如何修改Struts2 FiledError样式

    有时候,使用Struts2的<s:fielderror />标签还是比较好的.但是这个标签本来的样式实在很难看,不但换行,而且有个大大的黑点.一看就知道用了<ui><li ...

  2. CloudEra Email Search

    http://blog.cloudera.com/blog/2013/09/email-indexing-using-cloudera-search/ http://blog.cloudera.com ...

  3. docker 数据管理<1>

    1. 挂载本地的目录到容器里: docker run -itd -v /data/:/data1 centos bash // -v 用来指定挂载目录, :前面的/data为本地目录,:后面的/dat ...

  4. git创建与合并分支

    创建与合并分支 在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分 支,即master分支.HEAD严格来 ...

  5. poj3062---输入什么输出什么

    #include <stdio.h> #include <stdlib.h> int main() { ]; while(gets(str) != NULL) { printf ...

  6. Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字

    想要快速的学会一个Python的模块和方法,两个函数必须要知道,那就是dir()和help() dir():能够快速的以集合的型式列出该模块下的所有内容(类.常量.方法)例: #--encoding: ...

  7. wx.BookCtrlBase

    wx.BookCtrlBase A book control is a convenient way of displaying multiple pages of information, disp ...

  8. php使用NuSoap调用java/C# webservice乱码问题

    今天调用了一个 NuSoap 的接口程序,一切流程操作都很正常,就是最后接收返回值的时候出现了乱码问题(我这边是做一个越南项目固然返回越南语,不过认为中文应该同样实用,需要的人可以尝试下)   许多使 ...

  9. 跨文档消息传递----postMessage()

    HTML5 规范中,提出了XDM,又称为 跨文档消息传递,其核心是 postMessage()方法,进行跨域和跨文档消息传递,示例如下: <div class="CrossDocume ...

  10. SSIS之Foreach循环容器用法

    要实现的业务:A数据库服务器上某库的T_GOODS_DECL的状态字段“Is_Delete”标记为“1”的时候删除B数据库服务器上对应库的T_GOODS_DECL表中的记录,二者的主键为“DECL_N ...