nagios用监控dell服务器硬盘或scsi卡连接的盘阵的脚本

nagios硬盘或scsi卡连接的盘阵地硬件状态监控脚本

Dell 各系列的机器,只要是 PERC 的RAID控制器,都可以用这个脚本

check_disk_array.sh脚本内容如下:

#!/bin/sh
Array_card="a0" #盘阵控制器号
STATUS=0
for a in "$Array_card"
do
Disk_munber=`/opt/MegaRAID/MegaCli/MegaCli64  -AdpAllInfo -$a   |grep "Disks"|head -1| cut -d: -f2`
Firmware_state=`/opt/MegaRAID/MegaCli/MegaCli64  -cfgdsply -$a  |grep "Firmware state" | awk '{print $3}'|cut -d, -f1|sed -n "$Firmware_state_munber p"`
Firmware_state_munber=`/opt/MegaRAID/MegaCli/MegaCli64  -cfgdsply -$a  |grep "Firmware state" | awk '{print $3}'|cut -d, -f1|sed -n '/Online/!='`
Physical_disk=`/opt/MegaRAID/MegaCli/MegaCli64  -cfgdsply -$a |grep "Physical Disk:"|awk '{print $3}'|sed -n "$Firmware_state_munber p"`
Inquiry_data=` /opt/MegaRAID/MegaCli/MegaCli64  -cfgdsply -$a  |grep "Inquiry Data" | awk '{print $3}'|sed -n "$Firmware_state_munber p"`
if [ "$Firmware_state_munber" != "" ]
then
echo "CRITICAL,DELL Disk Array,disk $Physical_disk is $Firmware_state,SN is $Inquiry_data" && STATUS=2
elif [ "$Disk_munber" -ne "15" ]
then
echo "CRITICAL,DELL Disk Array Some Disks is unonline!!!" && STATUS=2
else
echo "OK,DELL Disk Array is OK" && STATUS=0
fi
done
exit $STATUS

被监控的客户端
1,安装LSI的命令行工具:MegaCliLin
   Lib_Utils-1.00-08.noarch.rpm
   MegaCli-8.00.29-1.i386.rpm
2,设置sudo,让脚本可以用root权限不用密码进行执行(安装sudo部分就不介绍了,请自行google)
       vi sudo配置文件,在56行附近的“Defaults    requiretty”下面添加“Defaults:nagios !requiretty”
          在76行附近的“root    ALL=(ALL)       ALL”下面添加“nagios  ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_disk_array.sh”
3,在客户端尝试查看盘阵所在控制器名及物理硬盘数量来调整脚本
4,使用NRPE设置脚本check_disk_array.sh
   在配置文件相应位置里添加
   command[check_disk_array]=/usr/bin/sudo /usr/local/nagios/libexec/check_disk_array.sh
5,重启xinetd


监控的服务端
1,添加nagios配置文件内check_disk_array.sh的设置

实例:
检测的服务器:
define host {
    use             neiwang-server
    host_name       192.168.36.231
    alias           Dell_disk_array
    address         192.168.36.231
}

check_disk_array的service写法
define service{
        use                             neiwang-service         ; Name of service template to use
        host_name                       linux-28-slaveldap
        service_description             check_disk_array
        check_command                   check_nrpe!check_disk_array
        }

此文直接是基于网上的raid监控文章,要有些部分不明白的,还是Google学习下就好。我也就算个站在巨人的肩膀上的猪。大家要是有用就拿去用,或者当看个乐子看,呵呵!

资料链接:http://space.itpub.net/13379967/viewspace-675021

你可能感兴趣的:(职场,raid,nagios,休闲,硬件监控)