nagios 監控硬碟RAID

來源:互聯網
上載者:User

標籤:nagios   監控   硬碟   raid   

背景:由於線上伺服器硬碟故障,導致服務,資料失效;


目的:保證第一時間發現硬碟資訊是否正常;


方案:使用Nagios 自訂指令碼來監控硬碟狀態;


注意:下面指令碼只提供已經安裝hpacucli megacli 軟體使用;

#!/bin/bash#Marc.wang 2014/06/17export PATH=$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}‘)#The nagios command run nscaSend_nsca_ssl_message (){ /usr/local/nagios/bin/send_nsca  -H ${Nagios} -d ";" -c /usr/local/nagios/etc/send_nsca.cfg  }#hp command runHP_DISK_STATUS_COMMAND() {rpm  -qa |grep  hpacucli >> /dev/null 2>&1echo $?}# dell command runDELL_IBM_DISK_STATUS_COMMAND() {rpm -qa |grep MegaCli >> /dev/null 2>&1 echo $?}bug_test=$(ps ax |grep hpacucli |grep -v grep |wc -l)if [ "${bug_test}" != "0" ]then        echo "$Get_localhost_Hostname;check_raid;2; hpacucli command run not data." | Send_nsca_ssl_message        exit 2fiCHECK_RAID_STATUS_HP () {  /usr/sbin/hpacucli  ctrl all show config detail |grep physicaldrive  -A 4 |sed ‘s/ //g‘|grep "Status:"  |grep -v  "Status:OK" | wc -l}case $SERVER_TYPE inHP|hp|Hp|Hewlett-Packard)TEST_HP_COMMAND () {hpacucli  ctrl all show config detail >> /dev/null 2>&1echo $?}HP_RPM=$(HP_DISK_STATUS_COMMAND)sleep 3if  [ ${HP_RPM}  != "0" ]     then    echo "$Get_localhost_Hostname;check_raid;2; $SERVER_TYPE  command hpacucli Not Found" | Send_nsca_ssl_message    exit 2elif [[ ${HP_RPM}  == "0"  ]];     then    HP_RAID_STATUS_NUMBER=$(CHECK_RAID_STATUS_HP)    sleep 3    TEST_HP=$(TEST_HP_COMMAND)        if [ "$HP_RAID_STATUS_NUMBER" == "0" ] && [ "$TEST_HP"   == "0" ];         then        echo "$Get_localhost_Hostname;check_raid;0;Check_Raid_status:OK" | Send_nsca_ssl_message        exit 0    elif [ "${TEST_HP}" != "0" ]          then          echo "$Get_localhost_Hostname;check_raid;2;Check_Raid_status: run command hpacucli Error" | Send_nsca_ssl_message          exit 2              elif  [ "$HP_RAID_STATUS_NUMBER" != "0"  ] && [ "$TEST_HP" == "0" ]          then           echo "$Get_localhost_Hostname;check_raid;2;Check_Raid_status:Critical" | Send_nsca_ssl_message           exit 2    fi  fi    ;; 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 "(Media Error Count:|Other Error Count:)"  |awk -F: ‘{sum1 += $2} END {print sum1}‘ }TEST_DELL_COMMAND (){/opt/MegaRAID/MegaCli/MegaCli64 -LdPdInfo -a0  >> /dev/null  echo $?}elseCHECK_RAID_STATUS_IBM_DELL () { MegaCli -LdPdInfo -a0  |  grep -E "(Media Error Count:|Other Error Count:)"  |awk -F: ‘{sum1 += $2} END {print sum1}‘ }TEST_DELL_COMMAND (){MegaCli -LdPdInfo -a0  >> /dev/null  echo $?}fiIBM_DELL_RPM=$(DELL_IBM_DISK_STATUS_COMMAND) if  [[ ${IBM_DELL_RPM}  ==  "0" ]]    then     TEST_OTHER_COMMAND=$(TEST_DELL_COMMAND)     DELL_IBM_STATUS_NUMBER=$(CHECK_RAID_STATUS_IBM_DELL)      if [[  -z "$DELL_IBM_STATUS_NUMBER" ]]              then            echo "$Get_localhost_Hostname;check_raid;2;Check_Raid_status:MegaCli Command  Not Found!" | Send_nsca_ssl_message            exit 2      elif [[ "$DELL_IBM_STATUS_NUMBER" -gt "2000" ]] ;               then                    echo "$Get_localhost_Hostname;check_raid;2;Check_Raid_status:Critical" | Send_nsca_ssl_message            exit 2               elif  [[  "$DELL_IBM_STATUS_NUMBER"  -lt  "2000" ]] && [[ "$TEST_OTHER_COMMAND" == "0" ]]              then              echo "$Get_localhost_Hostname;check_raid;0;Check_Raid_status:OK" | Send_nsca_ssl_message              exit 0        fi      fi;;*)  echo "$Get_localhost_Hostname;check_raid;2;This machine is not IBM DELL or HP!" | Send_nsca_ssl_message  ;;esac


本文出自 “chinaops” 部落格,請務必保留此出處http://cnops.blog.51cto.com/9374660/1551793

nagios 監控硬碟RAID

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.