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

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

2011-01-05 15:09 447 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息