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

DIY nagios插件check_haproxy_cur

2011-06-03 20:21 363 查看
公司用的haproxy有一个监控页面,上面有所有realserver的状态,因为有nagios,所有服务器的状态都已经做好了监控,不过领导要求让我们时刻注意haproxy 给各个服务器分发请求数的总和,就是图片里这个





上面图片里面红圈的数字就是上面所有值的总和,只不过暂时没有请求而已^_^。

因为如果有攻击的话可以从那个上面直接体现出来,好了开始干吧,首先因为这是个页面,需要用curl 把整个页面都抓下来进行分析,强大的curl,

打开html代码一看,够乱的,不过还是有章可循的,我们要过滤出来下面这个值

</th><th colspan=2>Denied</th>

tal</th><th>LbTot</th><th>In</

><td>-</td><td>9</td><td>77</t

-</td><td>9</td><td>60</td><td

-</td><td>13</td><td>69</td><t

-</td><td>7</td><td>62</td><td

-</td><td>20</td><td>64</td><t

-</td><td>10</td><td>63</td><t

</td><td></td><td>69</td><td>2

就是深颜色的那个数字

呵呵,然后用awk进行过滤得到cur的值,最后进行比对。好了大家看脚本吧!很简单的脚本,不过测试却花了一下午,不是很完美呵呵

vim check_haproxy_cur.sh

#!/bin/bash

#The author storoysky
cur=`curl http://192.168.1.199/haproxy-status -uufo:xman -s |awk -F '(</td>|<td>)' '/www_server\/Backend/ {print $9}'`
warn=130
crit=200
if [[ $cur =~ '^[0-9]+$' ]];
then
if [ "$cur" -le "$warn" ];
then
echo "Haproxy check is OK cur is $cur |cur= $cur;160;260;0;1000"
exit 0

elif [ "$cur" -ge "$warn" -a "$cur" -lt "$crit" ];
then
echo "Haproxy check is Warning cur is $cur |cur= $cur;160;260;0;1000"
exit 1
elif [ "$cur" -ge "$warn" -a "$cur" -ge "$crit" ];
then
echo "Haproxy check is Critical cur is $cur |cur= $cur;160;260;0;1000"
exit 2
fi
else echo "Can't get Haproxy's cur $cur is know!!!"
exit 3
fi


我在这里感谢蜗牛的热情帮助O(∩_∩)O~

好了,至于怎么加到nagios上我就不多说了,希望对用到haproxy的朋友有帮助 ^_^

之前在出图的部分没有加上 cur is $cur |cur= $cur;160;260;0;260 ,现在补上
本文出自 “story的天空” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: