您的位置:首页 > 移动开发 > IOS开发

懒人nagios页面监控脚本

2011-09-15 18:39 267 查看
写这个脚本的目的是这样的:虽然公司用的是nagios来监控所有的服务器信息并且设置了检查3次后会发送短信报警,但是觉得3次后在报警问题已经发生了半天了,这时响应就慢了... (什么?你说改成1分钟一次而且出一次问题就报警,那好吧!祝您的短信收件箱早日爆掉,晚上被报警烦的不能睡觉。有很多报警其实不是因为服务真的出问题了,不是吗!),那么有没有折中的办法呢?写这么一个脚本用他来帮忙去盯着nagios的页面,只要页面上的 出现WARNING CRITICAL Unhandled 等字样就立刻发邮件,这时可以通过邮件提醒或者别的什么方法通知你,这样就可以在第一时间去查看哪个服务出了问题。(如果非要找一个人上班时间一直盯着 监控页面我也不反对...当然有的公司弄了面电视墙上面全是监控信息的例外)

好了废话不多说,nagios的web上一般都有一个能看到所有服务页面,我把所有服务器都定义了hostgroup组,这样在summary页面上可以看到所有服务器的概况,如下图:





这个页面的地址为:http://www.xman.com/nagios/cgi-bin/status.cgi?hostgroup=all&style=summary

(修改了原始地址如有雷同纯属巧合)

下面就简单了,用curl获取网页信息 并进行过滤,得到我们要的结果就ok了,具体脚本如下:

#!/bin/bash

#Author: storysky

#This script will test the nagios page and get Warning or Critical's number

curla=$(curl "http://www.xman.com/nagios/cgi-bin/status.cgi?hostgroup=all&style=summary" -uxman:xman123 -s |awk '/WARNING|CRITICAL|Unhandled/' |wc -l)

if [ $curla -gt 0 ];

then

echo "The xman have Warning or Critical" | mail -s "The xman page have Warning or Critical" storysky@gmail.com

fi

curlb=$(curl "http://www.UFO.com/nagios/cgi-bin/status.cgi?hostgroup=all&style=summary" -uUFO:UFO123 -s |awk '/WARNING|CRITICAL|Unhandled/' |wc -l)

if [ $curlb -gt 0 ];

then

echo "The UFO have Warning or Critical" | mail -s "The UFO page have Warning or Critical" storysky@gmail.com

fi

至于担心mail 发不出去邮件请看我之前的一篇文章 《你的mail 经常发不出去邮件吗》
http://storysky.blog.51cto.com/628458/631267
把他放到 计划任务里面 在上班时间分钟执行一次,(为什么下班时间不用?,因为下班时间给我发了也看不到)

*/1 10-19 * * 1-5 /scripts/auto_nagios.sh

就这么简单... 我下载了一个《邮件提醒专家》 绑定了上面的邮箱进行提醒。好了,有这个东西帮忙去刷nagios web页面能为做监控的同事省点事。脚本写的简陋但希望对大家有用 有问题的地方欢迎大家指正。O(∩_∩)O~

本文出自 “story的天空” 博客,请务必保留此出处http://storysky.blog.51cto.com/628458/663491
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: