nagios 监控硬盘RAID
背景:由于线上服务器硬盘故障,导致服务,数据失效;
目的:保证第一时间发现硬盘信息是否正常;
方案:使用Nagios 自定义脚本来监控硬盘状态;
注意:下面脚本只提供已经安装hpacucli megacli 软件使用;
#!/bin/bash#Marc.wang2014/06/17exportPATH=$PATH:/usr/sbin/:/sbin/:/usr/bin/Get_localhost_Hostname=`hostname-I|awk'{print$1}'`Nagios="nagios.org"SERVER_TYPE=$(/usr/sbin/dmidecode|grep"Vendor"|awk-F\:'NR==1{print$2}'|awk'{print$1}')#ThenagioscommandrunnscaSend_nsca_ssl_message(){/usr/local/nagios/bin/send_nsca-H${Nagios}-d";"-c/usr/local/nagios/etc/send_nsca.cfg}#hpcommandrunHP_DISK_STATUS_COMMAND(){rpm-qa|grephpacucli>>/dev/null2>&1echo$?}#dellcommandrunDELL_IBM_DISK_STATUS_COMMAND(){rpm-qa|grepMegaCli>>/dev/null2>&1echo$?}bug_test=$(psax|grephpacucli|grep-vgrep|wc-l)if["${bug_test}"!="0"]thenecho"$Get_localhost_Hostname;check_raid;2;hpacuclicommandrunnotdata."|Send_nsca_ssl_messageexit2fiCHECK_RAID_STATUS_HP(){/usr/sbin/hpacuclictrlallshowconfigdetail|grepphysicaldrive-A4|sed's///g'|grep"Status:"|grep-v"Status:OK"|wc-l}case$SERVER_TYPEinHP|hp|Hp|Hewlett-Packard)TEST_HP_COMMAND(){hpacuclictrlallshowconfigdetail>>/dev/null2>&1echo$?}HP_RPM=$(HP_DISK_STATUS_COMMAND)sleep3if[${HP_RPM}!="0"]thenecho"$Get_localhost_Hostname;check_raid;2;$SERVER_TYPEcommandhpacucliNotFound"|Send_nsca_ssl_messageexit2elif[[${HP_RPM}=="0"]];thenHP_RAID_STATUS_NUMBER=$(CHECK_RAID_STATUS_HP)sleep3TEST_HP=$(TEST_HP_COMMAND)if["$HP_RAID_STATUS_NUMBER"=="0"]&&["$TEST_HP"=="0"];thenecho"$Get_localhost_Hostname;check_raid;0;Check_Raid_status:OK"|Send_nsca_ssl_messageexit0elif["${TEST_HP}"!="0"]thenecho"$Get_localhost_Hostname;check_raid;2;Check_Raid_status:runcommandhpacucliError"|Send_nsca_ssl_messageexit2elif["$HP_RAID_STATUS_NUMBER"!="0"]&&["$TEST_HP"=="0"]thenecho"$Get_localhost_Hostname;check_raid;2;Check_Raid_status:Critical"|Send_nsca_ssl_messageexit2fifi;;DELL|Dell|DEll|DeLL|dell|IBM|ibm|Ibm|IBm)if[-f"/opt/MegaRAID/MegaCli/MegaCli64"];thenCHECK_RAID_STATUS_IBM_DELL(){/opt/MegaRAID/MegaCli/MegaCli64-LdPdInfo-a0|grep-E"(MediaErrorCount:|OtherErrorCount:)"|awk-F:'{sum1+=$2}END{printsum1}'}TEST_DELL_COMMAND(){/opt/MegaRAID/MegaCli/MegaCli64-LdPdInfo-a0>>/dev/nullecho$?}elseCHECK_RAID_STATUS_IBM_DELL(){MegaCli-LdPdInfo-a0|grep-E"(MediaErrorCount:|OtherErrorCount:)"|awk-F:'{sum1+=$2}END{printsum1}'}TEST_DELL_COMMAND(){MegaCli-LdPdInfo-a0>>/dev/nullecho$?}fiIBM_DELL_RPM=$(DELL_IBM_DISK_STATUS_COMMAND)if[[${IBM_DELL_RPM}=="0"]]thenTEST_OTHER_COMMAND=$(TEST_DELL_COMMAND)DELL_IBM_STATUS_NUMBER=$(CHECK_RAID_STATUS_IBM_DELL)if[[-z"$DELL_IBM_STATUS_NUMBER"]]thenecho"$Get_localhost_Hostname;check_raid;2;Check_Raid_status:MegaCliCommandNotFound!"|Send_nsca_ssl_messageexit2elif[["$DELL_IBM_STATUS_NUMBER"-gt"2000"]];thenecho"$Get_localhost_Hostname;check_raid;2;Check_Raid_status:Critical"|Send_nsca_ssl_messageexit2elif[["$DELL_IBM_STATUS_NUMBER"-lt"2000"]]&&[["$TEST_OTHER_COMMAND"=="0"]]thenecho"$Get_localhost_Hostname;check_raid;0;Check_Raid_status:OK"|Send_nsca_ssl_messageexit0fifi;;*)echo"$Get_localhost_Hostname;check_raid;2;ThismachineisnotIBMDELLorHP!"|Send_nsca_ssl_message;;esac
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。