今天真点背,上午调试站点,把监控报警给关了,中午忘记开启,结果吃饭的时候,来电话了,说有两台服务器莫名其妙的down机了,这个把我吓的,down机还好说,问题是为什么没有报警了,吃完饭回去一问同事,说esxi存储磁盘满了,我了个去,赶紧想招登上服务器一看,上面开了5个虚拟机,都是线上生成报告的,目前是业务高峰期,磁盘那是蹭蹭往上涨啊,再一看,不对,每个虚拟机上还都跑着一个快照,我晕,赶紧叫同事把机器切换下来,删除快照,这一删不要紧,一删就删了将近6个小时,再次晕倒,完事赶紧挂上去,磁盘紧张问题是算处理好了,但是esxi本身存储监控是个问题啊,如果不监控,这事还得复现,赶紧想招,最初想在esxi机器上通过shell 定时抓取磁盘信息,然后调用报警服务去报警,结果上面连bash都没有,而且安装都相当费劲,线上服务器都跑着呢,还是不搞的好,再次寻思,在nagios官网找了一个监控esxi disk的perl插件脚本,看了一下,哎,还真好使,至少能抓到esxi的磁盘信息了,接下来只需集成到nagios中就行了,上干就干,一调试,哎,不对啊了,比如设置警告为%90,结果磁盘空间压根没到90%就报警,反而到了90% 返回的却是OK状态,这可摸不着头脑了,我想问题肯定出在perl脚本里面,于是从头过滤了一下perl里面的代码,发现
#my $value1 = simplify_number(convert_number($store->summary->freeSpace) / 1024 / 1024); 这样一行代码,这是计算剩余空间的代码
于是简单修改了一下:
my $value1 = simplify_number(convert_number($store->summary->capacity) /1024/1024 - convert_number($store->info->freeSpace) /1024 /1024);
换成计算已经使用量的代码。结果一运行,OK。 算是解决问题了。其他代码由于对perl不是很熟,所以也顾不上细看了。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。