注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

涅槃

文档收藏

 
 
 

日志

 
 
 
 

nagios监控NFS是否被正确的挂载  

2013-06-17 17:16:20|  分类: 监控_nagios |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

nagios监控NFS是否被正确的挂载[原创]

八月 19th, 2009 发表在 系统监控类 本文作者:深夜的蚊子

本文作者:深夜的蚊子
本文链接:http://www.wenzizone.cn/?p=244
版权所有。转载时请以链接形式注明作者和原始出处及本声明,谢谢

今天蚊子与大家分享的nagios监控脚本是监控NFS是否被挂载上的脚本

先说下我写这个脚本的初衷吧,事情还是因为上次网络部调整我服务器机柜位置引起的,当时蚊子自信满满的认为服务器上我已经配置好了自动挂载NFS,所以我根本不用担心NFS挂载的情况,当服务器启动恢复后,我的nagios给我发了一个recovery的邮件,我就想当然的认为好了,也就没管。第二天开发人员居然找到我,问我昨天是不是有两台机器重启了,我说是呀,他们就说NFS没有挂载上,我当时还很强调说不可能呢,结果我手动重启了一下昨天的机器,发现真的没有自动挂载上,让我很是郁闷。

没有自动挂载到还不是让人最郁闷,那个我已经通过技术问题解决了,郁闷的是有了问题居然不是nagios第一时间通知我。由于之前我使用的是nagios的check_disk这个脚本,在NFS磁盘有问题,不可读写或空间不足的时候给我报过警,但我经过测试发现,这个脚本只能监控本地磁盘(包括挂载好的NFS)可用性,而不管是否NFS被正确挂载了,所以才有了今天这个脚本。

脚本名称:check_nfsmount
脚本作用:
1,检查NFS磁盘是否被挂载
2,报告哪些NFS没有被挂载
使用方法:
1,将需要mount的NFS磁盘写入到fstab,如下

# cat /etc/fstab
/dev/VolGroup00/LogVol00 /                       ext3    defaults,usrquota,grpquota        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0
192.168.211.129:/home/tst       /data/tst       nfs     defaults        0 0
192.168.211.129:/home/tst02     /data/tst02     nfs     defaults        0 0
192.168.211.129:/home/tst03     /data/tst03     nfs     defaults        0 0

2,将脚本nagios安装目录的libexec下,并赋予可执行权限
3,配置nrpe配置文件,添加相应的command
4,nagios监控机上添加相应的服务
脚本内容:

Download download.txt
#!/bin/bash
 
#VERSION="1.0"
#AUTHOR by wenzizone.cn
 
. /usr/local/nagios/libexec/utils.sh
 
CHECKNAME="Mount NFS"
 
RESULT=""
EXIT_STATUS=$STATE_OK
 
NFSFSTAB=`LC_ALL=C awk '!/^#/ && $3 ~ /^nfs/ && $3 != "nfsd" && $4 !~ /noauto/ { print $1 }' /etc/fstab`
NFSMTAB=`LC_ALL=C awk '$3 ~ /^nfs/ && $3 != "nfsd" && $2 != "/" { print $1 }' /proc/mounts`
 
theend() {
    echo $RESULT
    exit $EXIT_STATUS
}
 
CHECK_MOUNT(){
    LIST=""
    for list in $NFSFSTAB
    do
        NFS_MOUNT=$(LC_ALL=C cat /proc/mounts |cut -d " " -f 1|grep "${list}$")
        if [ -z "${NFS_MOUNT}" ];then
            LIST="$LIST$list "
        fi
    done
    return $LIST
}
if [ -n "${NFSMTAB}" ];then
    if [ "${NFSFSTAB}" = "${NFSMTAB}" ];then
            RESULT="$CHECKNAME OK - NFS BE MOUNTED PROPERLY"
            EXIT_STATUS=$STATE_OK
    else
            CHECK_MOUNT
            RESULT="$CHECKNAME WARNING - ${LIST} NOT BE MOUNTED"
            EXIT_STATUS=$STATE_WARNING
    fi
else
    RESULT="$CHECKNAME CRITICAL - ALL NFS NOT BE MOUNTED"
    EXIT_STATUS=$STATE_CRITICAL
fi
 
theend

对于脚本中还没有考虑到的还希望各位指出。

? 2009 - 2011, 深夜的蚊子. 版权所有. 如转载,请注明:转载自 蚊子空间[http://www.wenzizone.cn]


nagios监控NFS挂载脚本更新[原创]

九月 1st, 2009 发表在 系统监控类 本文作者:深夜的蚊子

本文作者:深夜的蚊子
本文链接:http://www.wenzizone.cn/?p=247
版权所有。转载时请以链接形式注明作者和原始出处及本声明,谢谢

蚊子上篇文章《nagios监控NFS是否被正确的挂载》中,介绍了一个脚本,是用了监控nfs是否被正常挂载的,在这几天使用过程中还是发现了一些小问题。

如果nfs挂载的顺序没有按照fstab中写的顺序进行挂载,监控就会发出warning的警告,但报警信息中没挂载的硬盘信息是空的,实际查看机器确是所有挂载正常。

于是对我的脚本进行了调整,将check_mount函数提前运行,然后根据LIST变量内容判断是否挂载正常,调整后脚本的如下,同时后面提供了脚本下载地址。

Download download.txt
#!/bin/bash
#VERSION="1.1"
#AUTHOR by wenzizone.cn
 
. /usr/local/nagios/libexec/utils.sh
 
CHECKNAME="Mount NFS"
 
RESULT=""
EXIT_STATUS=$STATE_OK
 
NFSFSTAB=`LC_ALL=C awk '!/^#/ && $3 ~ /^nfs/ && $3 != "nfsd" && $4 !~ /noauto/ { print $1 }' /etc/fstab`
NFSMTAB=`LC_ALL=C awk '$3 ~ /^nfs/ && $3 != "nfsd" && $2 != "/" { print $1 }' /proc/mounts`
 
theend() {
    echo $RESULT
    exit $EXIT_STATUS
}
 
CHECK_MOUNT(){
    LIST=""
    for list in $NFSFSTAB
    do
        NFS_MOUNT=$(LC_ALL=C cat /proc/mounts |cut -d " " -f 1|grep "${list}$")
        if [ -z "${NFS_MOUNT}" ];then
            LIST="$LIST$list "
        fi
    done
}
 
if [ -n "${NFSMTAB}" ];then
    CHECK_MOUNT
    if [ -z "${LIST}" ];then
        RESULT="$CHECKNAME OK - NFS BE MOUNTED PROPERLY"
        EXIT_STATUS=$STATE_OK
    else
        RESULT="$CHECKNAME WARNING - ${LIST} NOT BE MOUNTED"
        EXIT_STATUS=$STATE_WARNING
    fi
else
    RESULT="$CHECKNAME CRITICAL - ALL NFS NOT BE MOUNTED"
    EXIT_STATUS=$STATE_CRITICAL
fi
 
theend

有需要的朋友可以去下面的地址下载

下载check_nfsmount文件

? 2009 - 2011, 深夜的蚊子. 版权所有. 如转载,请注明:转载自 蚊子空间[http://www.wenzizone.cn]

  评论这张
 
阅读(1175)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018