<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • nagios監(jiān)控硬盤RAID

            背景:由于線上服務(wù)器硬盤故障,導致服務(wù),數(shù)據(jù)失效;

            網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了德興免費建站歡迎大家使用!


            目的:保證第一時間發(fā)現(xiàn)硬盤信息是否正常;


            方案:使用Nagios 自定義腳本來監(jiān)控硬盤狀態(tài);


            注意:下面腳本只提供已經(jīng)安裝hpacucli megacli 軟件使用;

            #!/bin/bash
            #Marc.wang 2014/06/17
            
            
            export 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 nsca
            Send_nsca_ssl_message (){ 
            
            
            /usr/local/nagios/bin/send_nsca  -H ${Nagios} -d ";" -c /usr/local/nagios/etc/send_nsca.cfg 
            
             }
            
            
            
            #hp command run
            
            HP_DISK_STATUS_COMMAND() {
            
            rpm  -qa |grep  hpacucli >> /dev/null 2>&1
            echo $?
            }
            
            # dell command run
            
            DELL_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 2
            fi
            
            
            CHECK_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 in
            
            HP|hp|Hp|Hewlett-Packard)
            
            TEST_HP_COMMAND () {
            
            hpacucli  ctrl all show config detail >> /dev/null 2>&1
            
            echo $?
            }
            
            HP_RPM=$(HP_DISK_STATUS_COMMAND)
            sleep 3
            
            
            
            if  [ ${HP_RPM}  != "0" ] 
            
            
                then
            
                echo "$Get_localhost_Hostname;check_raid;2; $SERVER_TYPE  command hpacucli Not Found" | Send_nsca_ssl_message
            
                exit 2
            
            elif [[ ${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" ];
            
                    then
            
            
            CHECK_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 $?
            }
            
            else
            
            CHECK_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 $?
            }
            
            fi
            
            
            IBM_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

            分享題目:nagios監(jiān)控硬盤RAID
            分享網(wǎng)址:http://www.jbt999.com/article4/jhdiie.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊服務(wù)器托管建站公司網(wǎng)站策劃面包屑導航

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

            成都網(wǎng)站建設(shè)公司

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 国产激情视频久久久久久久 | 精品韩国一区二区三区 | 精品一线| 视频三区在线观看 | 第九色伊人|